ccip-router 0.1.0

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 (97) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +528 -0
  3. package/contracts/AttestationIndex.sol +125 -0
  4. package/contracts/NodeRegistry.sol +85 -0
  5. package/dist/attestation/eip712.d.ts +50 -0
  6. package/dist/attestation/eip712.d.ts.map +1 -0
  7. package/dist/attestation/eip712.js +31 -0
  8. package/dist/attestation/eip712.js.map +1 -0
  9. package/dist/attestation/ocp.d.ts +9 -0
  10. package/dist/attestation/ocp.d.ts.map +1 -0
  11. package/dist/attestation/ocp.js +11 -0
  12. package/dist/attestation/ocp.js.map +1 -0
  13. package/dist/attestation/withWyriwe.d.ts +11 -0
  14. package/dist/attestation/withWyriwe.d.ts.map +1 -0
  15. package/dist/attestation/withWyriwe.js +92 -0
  16. package/dist/attestation/withWyriwe.js.map +1 -0
  17. package/dist/chain/abi.d.ts +178 -0
  18. package/dist/chain/abi.d.ts.map +1 -0
  19. package/dist/chain/abi.js +94 -0
  20. package/dist/chain/abi.js.map +1 -0
  21. package/dist/chain/client.d.ts +16762 -0
  22. package/dist/chain/client.d.ts.map +1 -0
  23. package/dist/chain/client.js +21 -0
  24. package/dist/chain/client.js.map +1 -0
  25. package/dist/chain/publish.d.ts +26 -0
  26. package/dist/chain/publish.d.ts.map +1 -0
  27. package/dist/chain/publish.js +66 -0
  28. package/dist/chain/publish.js.map +1 -0
  29. package/dist/chain/register.d.ts +9 -0
  30. package/dist/chain/register.d.ts.map +1 -0
  31. package/dist/chain/register.js +20 -0
  32. package/dist/chain/register.js.map +1 -0
  33. package/dist/crypto/hash.d.ts +3 -0
  34. package/dist/crypto/hash.d.ts.map +1 -0
  35. package/dist/crypto/hash.js +12 -0
  36. package/dist/crypto/hash.js.map +1 -0
  37. package/dist/crypto/index.d.ts +3 -0
  38. package/dist/crypto/index.d.ts.map +1 -0
  39. package/dist/crypto/index.js +3 -0
  40. package/dist/crypto/index.js.map +1 -0
  41. package/dist/crypto/sign.d.ts +6 -0
  42. package/dist/crypto/sign.d.ts.map +1 -0
  43. package/dist/crypto/sign.js +60 -0
  44. package/dist/crypto/sign.js.map +1 -0
  45. package/dist/db/index.d.ts +5 -0
  46. package/dist/db/index.d.ts.map +1 -0
  47. package/dist/db/index.js +13 -0
  48. package/dist/db/index.js.map +1 -0
  49. package/dist/db/schema.d.ts +6 -0
  50. package/dist/db/schema.d.ts.map +1 -0
  51. package/dist/db/schema.js +41 -0
  52. package/dist/db/schema.js.map +1 -0
  53. package/dist/db/sqlite.d.ts +19 -0
  54. package/dist/db/sqlite.d.ts.map +1 -0
  55. package/dist/db/sqlite.js +196 -0
  56. package/dist/db/sqlite.js.map +1 -0
  57. package/dist/db/types.d.ts +34 -0
  58. package/dist/db/types.d.ts.map +1 -0
  59. package/dist/db/types.js +5 -0
  60. package/dist/db/types.js.map +1 -0
  61. package/dist/gateway/__tests__/eip3668.test.d.ts +2 -0
  62. package/dist/gateway/__tests__/eip3668.test.d.ts.map +1 -0
  63. package/dist/gateway/__tests__/eip3668.test.js +31 -0
  64. package/dist/gateway/__tests__/eip3668.test.js.map +1 -0
  65. package/dist/gateway/eip3668.d.ts +14 -0
  66. package/dist/gateway/eip3668.d.ts.map +1 -0
  67. package/dist/gateway/eip3668.js +28 -0
  68. package/dist/gateway/eip3668.js.map +1 -0
  69. package/dist/lib.d.ts +12 -0
  70. package/dist/lib.d.ts.map +1 -0
  71. package/dist/lib.js +8 -0
  72. package/dist/lib.js.map +1 -0
  73. package/dist/mesh/cron.d.ts +4 -0
  74. package/dist/mesh/cron.d.ts.map +1 -0
  75. package/dist/mesh/cron.js +22 -0
  76. package/dist/mesh/cron.js.map +1 -0
  77. package/dist/mesh/records.d.ts +4 -0
  78. package/dist/mesh/records.d.ts.map +1 -0
  79. package/dist/mesh/records.js +47 -0
  80. package/dist/mesh/records.js.map +1 -0
  81. package/dist/mesh/sync.d.ts +5 -0
  82. package/dist/mesh/sync.d.ts.map +1 -0
  83. package/dist/mesh/sync.js +154 -0
  84. package/dist/mesh/sync.js.map +1 -0
  85. package/dist/mesh/vni.d.ts +14 -0
  86. package/dist/mesh/vni.d.ts.map +1 -0
  87. package/dist/mesh/vni.js +52 -0
  88. package/dist/mesh/vni.js.map +1 -0
  89. package/dist/router/CcipRouter.d.ts +26 -0
  90. package/dist/router/CcipRouter.d.ts.map +1 -0
  91. package/dist/router/CcipRouter.js +85 -0
  92. package/dist/router/CcipRouter.js.map +1 -0
  93. package/dist/router/index.d.ts +3 -0
  94. package/dist/router/index.d.ts.map +1 -0
  95. package/dist/router/index.js +2 -0
  96. package/dist/router/index.js.map +1 -0
  97. package/package.json +63 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../src/chain/client.ts"],"names":[],"mappings":"AAYA,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;irBAWkrY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yBAA4iT,CAAC;mCAA6lC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;yeAAumoB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EATp+1C;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,MAAM,EAAE;;;;;;;;;;;wTAO+qB,CAAC;sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wTAAxB,CAAC;sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wTAAxB,CAAC;sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oEAA68O,CAAC;;;;;;;;;;;;;wTAAt+O,CAAC;sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wTAAxB,CAAC;sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wTAAxB,CAAC;sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wTAAxB,CAAC;sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wTAAxB,CAAC;sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wTAAxB,CAAC;sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wTAAxB,CAAC;sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wTAAxB,CAAC;sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wTAAxB,CAAC;sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wTAAxB,CAAC;sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wTAAxB,CAAC;sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wTAAxB,CAAC;sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wTAAxB,CAAC;sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wTAAxB,CAAC;sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wTAAxB,CAAC;sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wTAAxB,CAAC;sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wTAAxB,CAAC;sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wTAAxB,CAAC;sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wTAAxB,CAAC;sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wTAAxB,CAAC;sBAAsB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EADhyB"}
@@ -0,0 +1,21 @@
1
+ import { createPublicClient, createWalletClient, defineChain, http } from 'viem';
2
+ import { privateKeyToAccount } from 'viem/accounts';
3
+ function makeChain(chainId, rpcUrl) {
4
+ return defineChain({
5
+ id: chainId,
6
+ name: `chain-${chainId}`,
7
+ nativeCurrency: { name: 'Ether', symbol: 'ETH', decimals: 18 },
8
+ rpcUrls: { default: { http: [rpcUrl] } },
9
+ });
10
+ }
11
+ export function getPublicClient(rpcUrl, chainId) {
12
+ return createPublicClient({ chain: makeChain(chainId, rpcUrl), transport: http(rpcUrl) });
13
+ }
14
+ export function getWalletClient(rpcUrl, chainId, privateKey) {
15
+ return createWalletClient({
16
+ account: privateKeyToAccount(privateKey),
17
+ chain: makeChain(chainId, rpcUrl),
18
+ transport: http(rpcUrl),
19
+ });
20
+ }
21
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../src/chain/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,MAAM,CAAA;AAChF,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AAEnD,SAAS,SAAS,CAAC,OAAe,EAAE,MAAc;IAChD,OAAO,WAAW,CAAC;QACjB,EAAE,EAAE,OAAO;QACX,IAAI,EAAE,SAAS,OAAO,EAAE;QACxB,cAAc,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,QAAQ,EAAE,EAAE,EAAE;QAC9D,OAAO,EAAE,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,MAAM,CAAC,EAAE,EAAE;KACzC,CAAC,CAAA;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,OAAe;IAC7D,OAAO,kBAAkB,CAAC,EAAE,KAAK,EAAE,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AAC3F,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,OAAe,EAAE,UAAyB;IACxF,OAAO,kBAAkB,CAAC;QACxB,OAAO,EAAI,mBAAmB,CAAC,UAAU,CAAC;QAC1C,KAAK,EAAM,SAAS,CAAC,OAAO,EAAE,MAAM,CAAC;QACrC,SAAS,EAAE,IAAI,CAAC,MAAM,CAAC;KACxB,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,26 @@
1
+ import type { MeshRecord } from '../db/types.js';
2
+ export type ChainOpts = {
3
+ rpcUrl: string;
4
+ chainId: number;
5
+ gatewayKey: `0x${string}`;
6
+ contractAddress: `0x${string}`;
7
+ };
8
+ export type PublishResult = {
9
+ status: 'published';
10
+ txHash: `0x${string}`;
11
+ } | {
12
+ status: 'skipped';
13
+ } | {
14
+ status: 'error';
15
+ reason: string;
16
+ };
17
+ export type OnChainProof = {
18
+ found: false;
19
+ } | {
20
+ found: true;
21
+ commitmentHash: `0x${string}`;
22
+ signer: `0x${string}`;
23
+ };
24
+ export declare function publishAttestation(record: MeshRecord, opts: ChainOpts): Promise<PublishResult>;
25
+ export declare function checkOnChain(inputHash: string, opts: Pick<ChainOpts, 'rpcUrl' | 'chainId' | 'contractAddress'>): Promise<OnChainProof>;
26
+ //# sourceMappingURL=publish.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.d.ts","sourceRoot":"","sources":["../../src/chain/publish.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAMhD,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAW,MAAM,CAAA;IACvB,OAAO,EAAU,MAAM,CAAA;IACvB,UAAU,EAAO,KAAK,MAAM,EAAE,CAAA;IAC9B,eAAe,EAAE,KAAK,MAAM,EAAE,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,aAAa,GACrB;IAAE,MAAM,EAAE,WAAW,CAAC;IAAC,MAAM,EAAE,KAAK,MAAM,EAAE,CAAA;CAAE,GAC9C;IAAE,MAAM,EAAE,SAAS,CAAA;CAAE,GACrB;IAAE,MAAM,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAA;AAEvC,MAAM,MAAM,YAAY,GACpB;IAAE,KAAK,EAAE,KAAK,CAAA;CAAE,GAChB;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,cAAc,EAAE,KAAK,MAAM,EAAE,CAAC;IAAC,MAAM,EAAE,KAAK,MAAM,EAAE,CAAA;CAAE,CAAA;AAIzE,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,UAAU,EAClB,IAAI,EAAE,SAAS,GACd,OAAO,CAAC,aAAa,CAAC,CA0CxB;AAID,wBAAsB,YAAY,CAChC,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,GAAG,SAAS,GAAG,iBAAiB,CAAC,GAC9D,OAAO,CAAC,YAAY,CAAC,CAoBvB"}
@@ -0,0 +1,66 @@
1
+ import { ATTESTATION_INDEX_ABI } from './abi.js';
2
+ import { getPublicClient, getWalletClient } from './client.js';
3
+ const ZERO_HASH = '0x0000000000000000000000000000000000000000000000000000000000000000';
4
+ // Anchor a single WYRIWE attestation record on-chain.
5
+ // Checks isRecorded() first — skips if already anchored to avoid wasted gas.
6
+ export async function publishAttestation(record, opts) {
7
+ let parsed;
8
+ try {
9
+ parsed = JSON.parse(record.value);
10
+ }
11
+ catch {
12
+ return { status: 'error', reason: 'malformed attestation JSON' };
13
+ }
14
+ const commitmentHash = parsed.commitmentHash;
15
+ if (!commitmentHash)
16
+ return { status: 'error', reason: 'missing commitmentHash' };
17
+ const publicClient = getPublicClient(opts.rpcUrl, opts.chainId);
18
+ const already = await publicClient.readContract({
19
+ address: opts.contractAddress,
20
+ abi: ATTESTATION_INDEX_ABI,
21
+ functionName: 'isRecorded',
22
+ args: [commitmentHash],
23
+ });
24
+ if (already)
25
+ return { status: 'skipped' };
26
+ const a = {
27
+ agentId: parsed.agentId,
28
+ registry: parsed.registry,
29
+ modelHash: parsed.modelHash,
30
+ rawInputHash: parsed.rawInputHash,
31
+ sanitizationPipelineHash: parsed.sanitizationPipelineHash,
32
+ inputHash: parsed.inputHash,
33
+ outputHash: parsed.outputHash,
34
+ commitmentHash,
35
+ timestamp: BigInt(parsed.timestamp),
36
+ };
37
+ const walletClient = getWalletClient(opts.rpcUrl, opts.chainId, opts.gatewayKey);
38
+ const txHash = await walletClient.writeContract({
39
+ address: opts.contractAddress,
40
+ abi: ATTESTATION_INDEX_ABI,
41
+ functionName: 'record',
42
+ args: [a, record.signature],
43
+ });
44
+ return { status: 'published', txHash };
45
+ }
46
+ // Check whether an inputHash is anchored on-chain.
47
+ // Returns the commitmentHash + signer if found, or { found: false }.
48
+ export async function checkOnChain(inputHash, opts) {
49
+ const publicClient = getPublicClient(opts.rpcUrl, opts.chainId);
50
+ const commitmentHash = await publicClient.readContract({
51
+ address: opts.contractAddress,
52
+ abi: ATTESTATION_INDEX_ABI,
53
+ functionName: 'commitmentOf',
54
+ args: [inputHash],
55
+ });
56
+ if (commitmentHash === ZERO_HASH)
57
+ return { found: false };
58
+ const signer = await publicClient.readContract({
59
+ address: opts.contractAddress,
60
+ abi: ATTESTATION_INDEX_ABI,
61
+ functionName: 'signerOf',
62
+ args: [commitmentHash],
63
+ });
64
+ return { found: true, commitmentHash, signer };
65
+ }
66
+ //# sourceMappingURL=publish.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"publish.js","sourceRoot":"","sources":["../../src/chain/publish.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,9 @@
1
+ type RegisterOpts = {
2
+ rpcUrl: string;
3
+ chainId: number;
4
+ gatewayKey: `0x${string}`;
5
+ contractAddress: `0x${string}`;
6
+ };
7
+ export declare function registerNode(url: string, opts: RegisterOpts): Promise<`0x${string}`>;
8
+ export {};
9
+ //# sourceMappingURL=register.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.d.ts","sourceRoot":"","sources":["../../src/chain/register.ts"],"names":[],"mappings":"AAKA,KAAK,YAAY,GAAG;IAClB,MAAM,EAAW,MAAM,CAAA;IACvB,OAAO,EAAU,MAAM,CAAA;IACvB,UAAU,EAAO,KAAK,MAAM,EAAE,CAAA;IAC9B,eAAe,EAAE,KAAK,MAAM,EAAE,CAAA;CAC/B,CAAA;AAKD,wBAAsB,YAAY,CAChC,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAYxB"}
@@ -0,0 +1,20 @@
1
+ import { keccak256, toBytes } from 'viem';
2
+ import { privateKeyToAccount } from 'viem/accounts';
3
+ import { NODE_REGISTRY_ABI } from './abi.js';
4
+ import { getWalletClient } from './client.js';
5
+ // Sign and submit a node registration to NodeRegistry.
6
+ // The signing key proves ownership — the signing key does not need ETH.
7
+ // The caller (opts.gatewayKey) pays gas, but the registered signer is derived from the sig.
8
+ export async function registerNode(url, opts) {
9
+ const account = privateKeyToAccount(opts.gatewayKey);
10
+ const msgHash = keccak256(toBytes('ccip-router:node:' + url));
11
+ const signature = await account.signMessage({ message: { raw: msgHash } });
12
+ const walletClient = getWalletClient(opts.rpcUrl, opts.chainId, opts.gatewayKey);
13
+ return walletClient.writeContract({
14
+ address: opts.contractAddress,
15
+ abi: NODE_REGISTRY_ABI,
16
+ functionName: 'register',
17
+ args: [url, signature],
18
+ });
19
+ }
20
+ //# sourceMappingURL=register.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"register.js","sourceRoot":"","sources":["../../src/chain/register.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AACzC,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAA;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAA;AAS7C,uDAAuD;AACvD,wEAAwE;AACxE,4FAA4F;AAC5F,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,GAAW,EACX,IAAkB;IAElB,MAAM,OAAO,GAAK,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAA;IACtD,MAAM,OAAO,GAAK,SAAS,CAAC,OAAO,CAAC,mBAAmB,GAAG,GAAG,CAAC,CAAC,CAAA;IAC/D,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,CAAC,CAAA;IAE1E,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CAAA;IAChF,OAAO,YAAY,CAAC,aAAa,CAAC;QAChC,OAAO,EAAO,IAAI,CAAC,eAAe;QAClC,GAAG,EAAW,iBAAiB;QAC/B,YAAY,EAAE,UAAU;QACxB,IAAI,EAAU,CAAC,GAAG,EAAE,SAAS,CAAC;KAC/B,CAAC,CAAA;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export declare function hashCalldata(calldata: `0x${string}`): `0x${string}`;
2
+ export declare function hashRecordPayload(inputHash: `0x${string}`, namespace: string, value: `0x${string}`, timestamp: number): `0x${string}`;
3
+ //# sourceMappingURL=hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../src/crypto/hash.ts"],"names":[],"mappings":"AAIA,wBAAgB,YAAY,CAAC,QAAQ,EAAE,KAAK,MAAM,EAAE,GAAG,KAAK,MAAM,EAAE,CAEnE;AAID,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,KAAK,MAAM,EAAE,EACxB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,KAAK,MAAM,EAAE,EACpB,SAAS,EAAE,MAAM,GAChB,KAAK,MAAM,EAAE,CAOf"}
@@ -0,0 +1,12 @@
1
+ import { keccak256, encodePacked } from 'viem';
2
+ // Basic tier: input_hash = keccak256(calldata)
3
+ // Advanced tier (withWyriwe): full triple-hash chain lives in attestation/withWyriwe.ts
4
+ export function hashCalldata(calldata) {
5
+ return keccak256(calldata);
6
+ }
7
+ // Hash the fields that a record signature must cover.
8
+ // Any peer receiving a record recomputes this before verifying the signature.
9
+ export function hashRecordPayload(inputHash, namespace, value, timestamp) {
10
+ return keccak256(encodePacked(['bytes32', 'string', 'bytes32', 'uint64'], [inputHash, namespace, keccak256(value), BigInt(timestamp)]));
11
+ }
12
+ //# sourceMappingURL=hash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.js","sourceRoot":"","sources":["../../src/crypto/hash.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,MAAM,CAAA;AAE9C,+CAA+C;AAC/C,wFAAwF;AACxF,MAAM,UAAU,YAAY,CAAC,QAAuB;IAClD,OAAO,SAAS,CAAC,QAAQ,CAAC,CAAA;AAC5B,CAAC;AAED,sDAAsD;AACtD,8EAA8E;AAC9E,MAAM,UAAU,iBAAiB,CAC/B,SAAwB,EACxB,SAAiB,EACjB,KAAoB,EACpB,SAAiB;IAEjB,OAAO,SAAS,CACd,YAAY,CACV,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,EAC1C,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAC5D,CACF,CAAA;AACH,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { hashCalldata, hashRecordPayload } from './hash.js';
2
+ export { signRecord, recoverRecordSigner, verifyRecord } from './sign.js';
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/crypto/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA"}
@@ -0,0 +1,3 @@
1
+ export { hashCalldata, hashRecordPayload } from './hash.js';
2
+ export { signRecord, recoverRecordSigner, verifyRecord } from './sign.js';
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/crypto/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC3D,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA"}
@@ -0,0 +1,6 @@
1
+ import type { MeshRecord } from '../db/types.js';
2
+ export declare function signRecord(inputHash: `0x${string}`, namespace: string, value: `0x${string}`, timestamp: number, gatewayKey: `0x${string}`): Promise<`0x${string}`>;
3
+ export declare function recoverRecordSigner(record: MeshRecord): Promise<`0x${string}`>;
4
+ export declare function verifyRecord(record: MeshRecord, expectedSigner: `0x${string}`): Promise<boolean>;
5
+ export declare function recoverWyriweAttestation(record: MeshRecord): Promise<`0x${string}` | null>;
6
+ //# sourceMappingURL=sign.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sign.d.ts","sourceRoot":"","sources":["../../src/crypto/sign.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAIhD,wBAAsB,UAAU,CAC9B,SAAS,EAAE,KAAK,MAAM,EAAE,EACxB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,KAAK,MAAM,EAAE,EACpB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,KAAK,MAAM,EAAE,GACxB,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAIxB;AAID,wBAAsB,mBAAmB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAWpF;AAID,wBAAsB,YAAY,CAChC,MAAM,EAAE,UAAU,EAClB,cAAc,EAAE,KAAK,MAAM,EAAE,GAC5B,OAAO,CAAC,OAAO,CAAC,CAOlB;AAKD,wBAAsB,wBAAwB,CAC5C,MAAM,EAAE,UAAU,GACjB,OAAO,CAAC,KAAK,MAAM,EAAE,GAAG,IAAI,CAAC,CAmC/B"}
@@ -0,0 +1,60 @@
1
+ import { recoverMessageAddress, recoverTypedDataAddress } from 'viem';
2
+ import { privateKeyToAccount } from 'viem/accounts';
3
+ import { hashRecordPayload } from './hash.js';
4
+ import { buildDomain, WYRIWE_TYPES } from '../attestation/eip712.js';
5
+ // Sign a record payload with the gateway hot key.
6
+ // Returns EIP-191 personal_sign signature over the record hash.
7
+ export async function signRecord(inputHash, namespace, value, timestamp, gatewayKey) {
8
+ const account = privateKeyToAccount(gatewayKey);
9
+ const payloadHash = hashRecordPayload(inputHash, namespace, value, timestamp);
10
+ return account.signMessage({ message: { raw: payloadHash } });
11
+ }
12
+ // Recover the signer address from a record signature.
13
+ // Returns the address that signed — caller decides if it's trusted.
14
+ export async function recoverRecordSigner(record) {
15
+ const payloadHash = hashRecordPayload(record.inputHash, record.namespace, record.value, record.timestamp);
16
+ return recoverMessageAddress({
17
+ message: { raw: payloadHash },
18
+ signature: record.signature,
19
+ });
20
+ }
21
+ // Verify a record signature against an expected signer address.
22
+ // Used by peer sync before every db.insertRecord().
23
+ export async function verifyRecord(record, expectedSigner) {
24
+ try {
25
+ const signer = await recoverRecordSigner(record);
26
+ return signer.toLowerCase() === expectedSigner.toLowerCase();
27
+ }
28
+ catch {
29
+ return false;
30
+ }
31
+ }
32
+ // Recover signer from a WYRIWE attestation record (EIP-712 signed).
33
+ // The record value must be the JSON produced by withWyriwe() — includes chainId.
34
+ // Returns null if the record is malformed or missing required fields.
35
+ export async function recoverWyriweAttestation(record) {
36
+ try {
37
+ const att = JSON.parse(record.value);
38
+ return recoverTypedDataAddress({
39
+ domain: buildDomain(att.chainId, att.registry),
40
+ types: WYRIWE_TYPES,
41
+ primaryType: 'WyriweAttestation',
42
+ message: {
43
+ agentId: att.agentId,
44
+ registry: att.registry,
45
+ modelHash: att.modelHash,
46
+ rawInputHash: att.rawInputHash,
47
+ sanitizationPipelineHash: att.sanitizationPipelineHash,
48
+ inputHash: att.inputHash,
49
+ outputHash: att.outputHash,
50
+ commitmentHash: att.commitmentHash,
51
+ timestamp: BigInt(att.timestamp),
52
+ },
53
+ signature: record.signature,
54
+ });
55
+ }
56
+ catch {
57
+ return null;
58
+ }
59
+ }
60
+ //# sourceMappingURL=sign.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sign.js","sourceRoot":"","sources":["../../src/crypto/sign.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,MAAM,CAAA;AACrE,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAA;AAC7C,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAGpE,kDAAkD;AAClD,gEAAgE;AAChE,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,SAAwB,EACxB,SAAiB,EACjB,KAAoB,EACpB,SAAiB,EACjB,UAAyB;IAEzB,MAAM,OAAO,GAAG,mBAAmB,CAAC,UAAU,CAAC,CAAA;IAC/C,MAAM,WAAW,GAAG,iBAAiB,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,SAAS,CAAC,CAAA;IAC7E,OAAO,OAAO,CAAC,WAAW,CAAC,EAAE,OAAO,EAAE,EAAE,GAAG,EAAE,WAAW,EAAE,EAAE,CAAC,CAAA;AAC/D,CAAC;AAED,sDAAsD;AACtD,oEAAoE;AACpE,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAC,MAAkB;IAC1D,MAAM,WAAW,GAAG,iBAAiB,CACnC,MAAM,CAAC,SAA0B,EACjC,MAAM,CAAC,SAAS,EAChB,MAAM,CAAC,KAAsB,EAC7B,MAAM,CAAC,SAAS,CACjB,CAAA;IACD,OAAO,qBAAqB,CAAC;QAC3B,OAAO,EAAI,EAAE,GAAG,EAAE,WAAW,EAAE;QAC/B,SAAS,EAAE,MAAM,CAAC,SAA0B;KAC7C,CAAC,CAAA;AACJ,CAAC;AAED,gEAAgE;AAChE,oDAAoD;AACpD,MAAM,CAAC,KAAK,UAAU,YAAY,CAChC,MAAkB,EAClB,cAA6B;IAE7B,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,mBAAmB,CAAC,MAAM,CAAC,CAAA;QAChD,OAAO,MAAM,CAAC,WAAW,EAAE,KAAK,cAAc,CAAC,WAAW,EAAE,CAAA;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAA;IACd,CAAC;AACH,CAAC;AAED,oEAAoE;AACpE,iFAAiF;AACjF,sEAAsE;AACtE,MAAM,CAAC,KAAK,UAAU,wBAAwB,CAC5C,MAAkB;IAElB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,CAWlC,CAAA;QAED,OAAO,uBAAuB,CAAC;YAC7B,MAAM,EAAO,WAAW,CAAC,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,QAAQ,CAAC;YACnD,KAAK,EAAQ,YAAY;YACzB,WAAW,EAAE,mBAAmB;YAChC,OAAO,EAAE;gBACP,OAAO,EAAmB,GAAG,CAAC,OAAO;gBACrC,QAAQ,EAAkB,GAAG,CAAC,QAAQ;gBACtC,SAAS,EAAiB,GAAG,CAAC,SAAS;gBACvC,YAAY,EAAc,GAAG,CAAC,YAAY;gBAC1C,wBAAwB,EAAE,GAAG,CAAC,wBAAwB;gBACtD,SAAS,EAAiB,GAAG,CAAC,SAAS;gBACvC,UAAU,EAAgB,GAAG,CAAC,UAAU;gBACxC,cAAc,EAAY,GAAG,CAAC,cAAc;gBAC5C,SAAS,EAAiB,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;aAChD;YACD,SAAS,EAAE,MAAM,CAAC,SAA0B;SAC7C,CAAC,CAAA;IACJ,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAA;IACb,CAAC;AACH,CAAC"}
@@ -0,0 +1,5 @@
1
+ import type { DB } from './types.js';
2
+ export { SQLiteDB } from './sqlite.js';
3
+ export type { DB, MeshRecord, PeerState } from './types.js';
4
+ export declare function getDB(path?: string): DB;
5
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,EAAE,MAAM,YAAY,CAAA;AAEpC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACtC,YAAY,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,YAAY,CAAA;AAK3D,wBAAgB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,EAAE,CAMvC"}
@@ -0,0 +1,13 @@
1
+ import { SQLiteDB } from './sqlite.js';
2
+ export { SQLiteDB } from './sqlite.js';
3
+ let _db = null;
4
+ // Singleton — call with path once at boot (index.ts), then call without args everywhere else.
5
+ export function getDB(path) {
6
+ if (!_db) {
7
+ if (!path)
8
+ throw new Error('getDB() called before DB was initialised — pass path on first call');
9
+ _db = new SQLiteDB(path);
10
+ }
11
+ return _db;
12
+ }
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/db/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAGtC,OAAO,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAGtC,IAAI,GAAG,GAAoB,IAAI,CAAA;AAE/B,8FAA8F;AAC9F,MAAM,UAAU,KAAK,CAAC,IAAa;IACjC,IAAI,CAAC,GAAG,EAAE,CAAC;QACT,IAAI,CAAC,IAAI;YAAE,MAAM,IAAI,KAAK,CAAC,oEAAoE,CAAC,CAAA;QAChG,GAAG,GAAG,IAAI,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC1B,CAAC;IACD,OAAO,GAAG,CAAA;AACZ,CAAC"}
@@ -0,0 +1,6 @@
1
+ export declare const SCHEMA = "\n CREATE TABLE IF NOT EXISTS schema_version (\n version INTEGER PRIMARY KEY,\n applied_at INTEGER NOT NULL DEFAULT (strftime('%s','now'))\n );\n\n CREATE TABLE IF NOT EXISTS peers (\n url TEXT PRIMARY KEY,\n last_sync_at INTEGER NOT NULL DEFAULT 0,\n healthy INTEGER NOT NULL DEFAULT 1,\n node_version TEXT,\n signer_address TEXT\n );\n";
2
+ export declare const MIGRATIONS: {
3
+ version: number;
4
+ sql: string;
5
+ }[];
6
+ //# sourceMappingURL=schema.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.d.ts","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,MAAM,8YAalB,CAAA;AAMD,eAAO,MAAM,UAAU,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,EAmBxD,CAAA"}
@@ -0,0 +1,41 @@
1
+ // schema_version tracks applied migrations.
2
+ // Run SCHEMA first (creates the version table if missing), then runMigrations().
3
+ export const SCHEMA = `
4
+ CREATE TABLE IF NOT EXISTS schema_version (
5
+ version INTEGER PRIMARY KEY,
6
+ applied_at INTEGER NOT NULL DEFAULT (strftime('%s','now'))
7
+ );
8
+
9
+ CREATE TABLE IF NOT EXISTS peers (
10
+ url TEXT PRIMARY KEY,
11
+ last_sync_at INTEGER NOT NULL DEFAULT 0,
12
+ healthy INTEGER NOT NULL DEFAULT 1,
13
+ node_version TEXT,
14
+ signer_address TEXT
15
+ );
16
+ `;
17
+ // Ordered migrations — each runs exactly once, gated by schema_version.
18
+ // v1: composite PK (input_hash, namespace) replaces single-column input_hash PK,
19
+ // allowing WYRIWE attestation records to coexist with basic records
20
+ // for the same calldata in a different namespace.
21
+ export const MIGRATIONS = [
22
+ {
23
+ version: 1,
24
+ sql: `
25
+ DROP TABLE IF EXISTS records;
26
+ CREATE TABLE records (
27
+ input_hash TEXT NOT NULL,
28
+ namespace TEXT NOT NULL,
29
+ key TEXT NOT NULL,
30
+ value TEXT NOT NULL,
31
+ timestamp INTEGER NOT NULL,
32
+ signature TEXT NOT NULL,
33
+ source_peer TEXT,
34
+ PRIMARY KEY (input_hash, namespace)
35
+ );
36
+ CREATE INDEX IF NOT EXISTS idx_records_ns_ts
37
+ ON records (namespace, timestamp);
38
+ `,
39
+ },
40
+ ];
41
+ //# sourceMappingURL=schema.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"schema.js","sourceRoot":"","sources":["../../src/db/schema.ts"],"names":[],"mappings":"AAAA,4CAA4C;AAC5C,iFAAiF;AACjF,MAAM,CAAC,MAAM,MAAM,GAAG;;;;;;;;;;;;;CAarB,CAAA;AAED,wEAAwE;AACxE,iFAAiF;AACjF,wEAAwE;AACxE,sDAAsD;AACtD,MAAM,CAAC,MAAM,UAAU,GAAuC;IAC5D;QACE,OAAO,EAAE,CAAC;QACV,GAAG,EAAE;;;;;;;;;;;;;;KAcJ;KACF;CACF,CAAA"}
@@ -0,0 +1,19 @@
1
+ import type { DB, MeshRecord, PeerState, Contribution } from './types.js';
2
+ export declare class SQLiteDB implements DB {
3
+ private db;
4
+ private stmts;
5
+ constructor(path: string);
6
+ private runMigrations;
7
+ insertRecord(record: MeshRecord): Promise<void>;
8
+ getRecordsSince(namespace: string, since: number, limit: number, cursor?: string): Promise<MeshRecord[]>;
9
+ getRecord(inputHash: string, namespace?: string): Promise<MeshRecord | null>;
10
+ getRecordsByInputHash(inputHash: string): Promise<MeshRecord[]>;
11
+ upsertPeer(peer: PeerState): Promise<void>;
12
+ getPeers(): Promise<PeerState[]>;
13
+ recordCount(namespace: string): Promise<number>;
14
+ getRecentRecords(namespace: string, limit: number): Promise<MeshRecord[]>;
15
+ getContributions(namespace: string): Promise<Contribution[]>;
16
+ removePeer(url: string): Promise<void>;
17
+ close(): void;
18
+ }
19
+ //# sourceMappingURL=sqlite.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sqlite.d.ts","sourceRoot":"","sources":["../../src/db/sqlite.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAE,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AAoBzE,qBAAa,QAAS,YAAW,EAAE;IACjC,OAAO,CAAC,EAAE,CAAmB;IAE7B,OAAO,CAAC,KAAK,CAcZ;gBAEW,IAAI,EAAE,MAAM;IA4FxB,OAAO,CAAC,aAAa;IAgBf,YAAY,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,IAAI,CAAC;IAqB/C,eAAe,CACnB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,GACd,OAAO,CAAC,UAAU,EAAE,CAAC;IAkBlB,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IAO5E,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAK/D,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAU1C,QAAQ,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAKhC,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK/C,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;IAKzE,gBAAgB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAK5D,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C,KAAK,IAAI,IAAI;CAGd"}