sablier 3.12.0 → 3.12.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 (63) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/dist/cjs/evm/chains/builder.js +1 -1
  3. package/dist/cjs/evm/chains/builder.js.map +1 -1
  4. package/dist/cjs/evm/chains/custom.js +9 -9
  5. package/dist/cjs/evm/chains/custom.js.map +1 -1
  6. package/dist/cjs/evm/contracts/queries.js +1 -1
  7. package/dist/cjs/evm/contracts/queries.js.map +1 -1
  8. package/dist/cjs/evm/releases/lockup/v2.0/deployments.js +1 -1
  9. package/dist/cjs/evm/releases/lockup/v2.0/deployments.js.map +1 -1
  10. package/dist/cjs/evm/releases/resolvers.js +14 -22
  11. package/dist/cjs/evm/releases/resolvers.js.map +1 -1
  12. package/dist/cjs/internal/factories/chains.js +5 -15
  13. package/dist/cjs/internal/factories/chains.js.map +1 -1
  14. package/dist/cjs/internal/factories/queries.js +3 -9
  15. package/dist/cjs/internal/factories/queries.js.map +1 -1
  16. package/dist/cjs/internal/utils/object-path.js +3 -3
  17. package/dist/cjs/internal/utils/object-path.js.map +1 -1
  18. package/dist/cjs/sablier.js +2 -6
  19. package/dist/cjs/sablier.js.map +1 -1
  20. package/dist/cjs/solana/chains/chains.js +13 -13
  21. package/dist/cjs/solana/chains/chains.js.map +1 -1
  22. package/dist/cjs/solana/programs/catalog.js +1 -1
  23. package/dist/cjs/solana/programs/catalog.js.map +1 -1
  24. package/dist/cjs/solana/programs/queries.js +1 -1
  25. package/dist/cjs/solana/programs/queries.js.map +1 -1
  26. package/dist/cjs/solana/releases/resolvers.js +5 -6
  27. package/dist/cjs/solana/releases/resolvers.js.map +1 -1
  28. package/dist/esm/evm/chains/builder.js +1 -1
  29. package/dist/esm/evm/chains/builder.js.map +1 -1
  30. package/dist/esm/evm/chains/custom.js +9 -9
  31. package/dist/esm/evm/chains/custom.js.map +1 -1
  32. package/dist/esm/evm/contracts/queries.js +1 -1
  33. package/dist/esm/evm/contracts/queries.js.map +1 -1
  34. package/dist/esm/evm/releases/lockup/v2.0/deployments.js +1 -1
  35. package/dist/esm/evm/releases/lockup/v2.0/deployments.js.map +1 -1
  36. package/dist/esm/evm/releases/resolvers.js +14 -22
  37. package/dist/esm/evm/releases/resolvers.js.map +1 -1
  38. package/dist/esm/internal/factories/chains.js +5 -15
  39. package/dist/esm/internal/factories/chains.js.map +1 -1
  40. package/dist/esm/internal/factories/queries.js +3 -9
  41. package/dist/esm/internal/factories/queries.js.map +1 -1
  42. package/dist/esm/internal/utils/object-path.js +3 -3
  43. package/dist/esm/internal/utils/object-path.js.map +1 -1
  44. package/dist/esm/sablier.js +2 -6
  45. package/dist/esm/sablier.js.map +1 -1
  46. package/dist/esm/solana/chains/chains.js +13 -13
  47. package/dist/esm/solana/chains/chains.js.map +1 -1
  48. package/dist/esm/solana/programs/catalog.js +1 -1
  49. package/dist/esm/solana/programs/catalog.js.map +1 -1
  50. package/dist/esm/solana/programs/queries.js +1 -1
  51. package/dist/esm/solana/programs/queries.js.map +1 -1
  52. package/dist/esm/solana/releases/resolvers.js +5 -6
  53. package/dist/esm/solana/releases/resolvers.js.map +1 -1
  54. package/dist/types/evm/chains/custom.d.ts +10 -1
  55. package/dist/types/evm/chains/custom.d.ts.map +1 -1
  56. package/dist/types/evm/chains/specs.d.ts +245 -21
  57. package/dist/types/evm/chains/specs.d.ts.map +1 -1
  58. package/dist/types/evm/releases/resolvers.d.ts.map +1 -1
  59. package/dist/types/internal/factories/chains.d.ts.map +1 -1
  60. package/dist/types/internal/factories/queries.d.ts.map +1 -1
  61. package/dist/types/sablier.d.ts.map +1 -1
  62. package/dist/types/solana/releases/resolvers.d.ts.map +1 -1
  63. package/package.json +63 -63
package/CHANGELOG.md CHANGED
@@ -9,6 +9,8 @@ The format is based on [Common Changelog](https://common-changelog.org/).
9
9
  > Starting with v2.0.0, this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). In v1.x, it
10
10
  > did not always follow Semantic Versioning.
11
11
 
12
+ [3.12.2]: https://github.com/sablier-labs/sdk/releases/tag/v3.12.2
13
+ [3.12.1]: https://github.com/sablier-labs/sdk/releases/tag/v3.12.1
12
14
  [3.12.0]: https://github.com/sablier-labs/sdk/releases/tag/v3.12.0
13
15
  [3.11.3]: https://github.com/sablier-labs/sdk/releases/tag/v3.11.3
14
16
  [3.11.2]: https://github.com/sablier-labs/sdk/releases/tag/v3.11.2
@@ -56,6 +58,19 @@ The format is based on [Common Changelog](https://common-changelog.org/).
56
58
  [1.1.0]: https://github.com/sablier-labs/sdk/releases/tag/v1.1.0
57
59
  [1.0.0]: https://github.com/sablier-labs/sdk/releases/tag/v1.0.0
58
60
 
61
+ ## [3.12.2] - 2026-07-22
62
+
63
+ ### Fixed
64
+
65
+ - Correct the Morph deployment block number for Lockup v2.0
66
+ ([`28ad0c2`](https://github.com/sablier-labs/sdk/commit/28ad0c2))
67
+
68
+ ## [3.12.1] - 2026-07-15
69
+
70
+ ### Fixed
71
+
72
+ - Rename the Robinhood chain to "Robinhood" ([`5fb4e48`](https://github.com/sablier-labs/sdk/commit/5fb4e48))
73
+
59
74
  ## [3.12.0] - 2026-07-15
60
75
 
61
76
  ### Added
@@ -42,6 +42,7 @@ const buildChain = (key, spec) => {
42
42
  isTestnet,
43
43
  isZK: Boolean(spec.meta.isZk),
44
44
  name: spec.meta.name ?? chain.name,
45
+ slug: spec.meta.slug ?? key,
45
46
  nativeCurrency: {
46
47
  ...chain.nativeCurrency,
47
48
  coinGeckoId: spec.nativeCurrency.coinGeckoId,
@@ -53,7 +54,6 @@ const buildChain = (key, spec) => {
53
54
  infura: infuraNetwork ? (apiKey) => (0, providers_js_1.infuraUrl)(infuraNetwork, apiKey) : undefined,
54
55
  routemesh: routemeshEnabled ? (apiKey) => (0, providers_js_1.routemeshUrl)(chain.id, apiKey) : undefined,
55
56
  },
56
- slug: spec.meta.slug ?? key,
57
57
  };
58
58
  };
59
59
  const buildChains = (specs) => {
@@ -1 +1 @@
1
- {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../../src/evm/chains/builder.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Chain as ViemChain } from \"viem\";\nimport { defineChain as viemDefine } from \"viem\";\nimport type { Sablier } from \"@/src/types.js\";\nimport { alchemyUrl, infuraUrl, routemeshUrl } from \"./providers.js\";\n\nexport type ChainSpec = {\n base: ViemChain;\n meta: {\n // Optional display overrides and metadata specific to Sablier.\n coinGeckoPlatformId?: string;\n name?: string;\n isZk?: boolean;\n ui?: \"SUPPORTED\" | \"NOT_SUPPORTED\";\n slug?: string;\n };\n nativeCurrency: {\n // CoinGecko API ID for price lookups.\n coinGeckoId: string;\n // Wrapper contract for native token (if applicable).\n wrapperContract?: string;\n };\n rpc?: {\n alchemy?: string;\n infura?: string;\n routemesh?: boolean;\n };\n overrides?: Partial<ViemChain>;\n};\n\n/**\n * Merge a base viem chain with overrides while preserving core structure.\n *\n * We use `viemDefine` to keep any derived properties consistent with viem's\n * expected shape, while also allowing us to override partial fields like\n * block explorers or RPC URLs without losing the base chain data.\n */\nconst mergeChain = (base: ViemChain, overrides?: Partial<ViemChain>): ViemChain => {\n if (!overrides) {\n return base;\n }\n\n // Shallow merge: nested objects like blockExplorers are replaced, not deep-merged.\n // viemDefine normalizes the chain object and preserves derived fields.\n return viemDefine({\n ...base,\n ...overrides,\n blockExplorers: overrides.blockExplorers ?? base.blockExplorers,\n contracts: overrides.contracts ?? base.contracts,\n nativeCurrency: overrides.nativeCurrency ?? base.nativeCurrency,\n rpcUrls: overrides.rpcUrls ?? base.rpcUrls,\n });\n};\n\n/**\n * Build a Sablier chain from a spec, enforcing required metadata invariants.\n *\n * This centralizes validation (e.g. CoinGecko id presence), derives UI support\n * defaults, and wires provider RPC generators so the spec table can stay lean.\n */\nconst buildChain = (key: string, spec: ChainSpec): Sablier.EVM.Chain => {\n const chain = mergeChain(spec.base, spec.overrides);\n\n // Ensure viem-provided fields we rely on are present.\n if (!chain.blockExplorers) {\n throw new Error(`Chain ${chain.name} has no block explorers`);\n }\n\n const defaultRPCs = chain.rpcUrls.default.http;\n if (!defaultRPCs) {\n throw new Error(`Chain ${chain.name} has no default RPC`);\n }\n\n // CoinGecko id is required for pricing across the SDK.\n if (!spec.nativeCurrency.coinGeckoId) {\n throw new Error(`Chain ${chain.name} has no coinGecko ID`);\n }\n\n const alchemyNetwork = spec.rpc?.alchemy;\n const infuraNetwork = spec.rpc?.infura;\n const routemeshEnabled = spec.rpc?.routemesh !== false;\n\n // UI support is opt-in for testnets. Mainnets are supported by default unless flagged.\n const isTestnet = Boolean(chain.testnet);\n const uiOverride = spec.meta.ui;\n const isSupportedByUI = uiOverride ? uiOverride === \"SUPPORTED\" : !isTestnet;\n\n return {\n ...chain,\n blockExplorers: chain.blockExplorers,\n coinGeckoPlatformId: spec.meta.coinGeckoPlatformId,\n isSupportedByUI,\n isTestnet,\n isZK: Boolean(spec.meta.isZk),\n name: spec.meta.name ?? chain.name,\n nativeCurrency: {\n ...chain.nativeCurrency,\n coinGeckoId: spec.nativeCurrency.coinGeckoId,\n wrapperContract: spec.nativeCurrency.wrapperContract,\n },\n rpc: {\n // Provider URLs are generated from network slugs to avoid duplication.\n alchemy: alchemyNetwork ? (apiKey) => alchemyUrl(alchemyNetwork, apiKey) : undefined,\n defaults: defaultRPCs as string[],\n infura: infuraNetwork ? (apiKey) => infuraUrl(infuraNetwork, apiKey) : undefined,\n routemesh: routemeshEnabled ? (apiKey) => routemeshUrl(chain.id, apiKey) : undefined,\n },\n slug: spec.meta.slug ?? key,\n };\n};\n\n/**\n * Build the full chain registry from the specs object.\n *\n * We intentionally derive the registry from a single spec source so the type,\n * metadata, and provider configuration are assembled in one pass. This keeps\n * exports consistent and makes it hard to forget required metadata when a new\n * chain is added.\n */\nexport const buildChains = <T extends Record<string, ChainSpec>>(\n specs: T\n): { [K in keyof T]: Sablier.EVM.Chain } => {\n const entries = Object.entries(specs).map(([key, spec]) => [key, buildChain(key, spec)]);\n\n return Object.fromEntries(entries) as { [K in keyof T]: Sablier.EVM.Chain };\n};\n"]}
1
+ {"version":3,"file":"builder.js","sourceRoot":"","sources":["../../../../src/evm/chains/builder.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Chain as ViemChain } from \"viem\";\nimport { defineChain as viemDefine } from \"viem\";\nimport type { Sablier } from \"@/src/types.js\";\nimport { alchemyUrl, infuraUrl, routemeshUrl } from \"./providers.js\";\n\nexport type ChainSpec = {\n base: ViemChain;\n meta: {\n // Optional display overrides and metadata specific to Sablier.\n coinGeckoPlatformId?: string;\n name?: string;\n isZk?: boolean;\n ui?: \"SUPPORTED\" | \"NOT_SUPPORTED\";\n slug?: string;\n };\n nativeCurrency: {\n // CoinGecko API ID for price lookups.\n coinGeckoId: string;\n // Wrapper contract for native token (if applicable).\n wrapperContract?: string;\n };\n rpc?: {\n alchemy?: string;\n infura?: string;\n routemesh?: boolean;\n };\n overrides?: Partial<ViemChain>;\n};\n\n/**\n * Merge a base viem chain with overrides while preserving core structure.\n *\n * We use `viemDefine` to keep any derived properties consistent with viem's\n * expected shape, while also allowing us to override partial fields like\n * block explorers or RPC URLs without losing the base chain data.\n */\nconst mergeChain = (base: ViemChain, overrides?: Partial<ViemChain>): ViemChain => {\n if (!overrides) {\n return base;\n }\n\n // Shallow merge: nested objects like blockExplorers are replaced, not deep-merged.\n // viemDefine normalizes the chain object and preserves derived fields.\n return viemDefine({\n ...base,\n ...overrides,\n blockExplorers: overrides.blockExplorers ?? base.blockExplorers,\n contracts: overrides.contracts ?? base.contracts,\n nativeCurrency: overrides.nativeCurrency ?? base.nativeCurrency,\n rpcUrls: overrides.rpcUrls ?? base.rpcUrls,\n });\n};\n\n/**\n * Build a Sablier chain from a spec, enforcing required metadata invariants.\n *\n * This centralizes validation (e.g. CoinGecko id presence), derives UI support\n * defaults, and wires provider RPC generators so the spec table can stay lean.\n */\nconst buildChain = (key: string, spec: ChainSpec): Sablier.EVM.Chain => {\n const chain = mergeChain(spec.base, spec.overrides);\n\n // Ensure viem-provided fields we rely on are present.\n if (!chain.blockExplorers) {\n throw new Error(`Chain ${chain.name} has no block explorers`);\n }\n\n const defaultRPCs = chain.rpcUrls.default.http;\n if (!defaultRPCs) {\n throw new Error(`Chain ${chain.name} has no default RPC`);\n }\n\n // CoinGecko id is required for pricing across the SDK.\n if (!spec.nativeCurrency.coinGeckoId) {\n throw new Error(`Chain ${chain.name} has no coinGecko ID`);\n }\n\n const alchemyNetwork = spec.rpc?.alchemy;\n const infuraNetwork = spec.rpc?.infura;\n const routemeshEnabled = spec.rpc?.routemesh !== false;\n\n // UI support is opt-in for testnets. Mainnets are supported by default unless flagged.\n const isTestnet = Boolean(chain.testnet);\n const uiOverride = spec.meta.ui;\n const isSupportedByUI = uiOverride ? uiOverride === \"SUPPORTED\" : !isTestnet;\n\n return {\n ...chain,\n blockExplorers: chain.blockExplorers,\n coinGeckoPlatformId: spec.meta.coinGeckoPlatformId,\n isSupportedByUI,\n isTestnet,\n isZK: Boolean(spec.meta.isZk),\n name: spec.meta.name ?? chain.name,\n slug: spec.meta.slug ?? key,\n nativeCurrency: {\n ...chain.nativeCurrency,\n coinGeckoId: spec.nativeCurrency.coinGeckoId,\n wrapperContract: spec.nativeCurrency.wrapperContract,\n },\n rpc: {\n // Provider URLs are generated from network slugs to avoid duplication.\n alchemy: alchemyNetwork ? (apiKey) => alchemyUrl(alchemyNetwork, apiKey) : undefined,\n defaults: defaultRPCs as string[],\n infura: infuraNetwork ? (apiKey) => infuraUrl(infuraNetwork, apiKey) : undefined,\n routemesh: routemeshEnabled ? (apiKey) => routemeshUrl(chain.id, apiKey) : undefined,\n },\n };\n};\n\n/**\n * Build the full chain registry from the specs object.\n *\n * We intentionally derive the registry from a single spec source so the type,\n * metadata, and provider configuration are assembled in one pass. This keeps\n * exports consistent and makes it hard to forget required metadata when a new\n * chain is added.\n */\nexport const buildChains = <T extends Record<string, ChainSpec>>(\n specs: T\n): { [K in keyof T]: Sablier.EVM.Chain } => {\n const entries = Object.entries(specs).map(([key, spec]) => [key, buildChain(key, spec)]);\n\n return Object.fromEntries(entries) as { [K in keyof T]: Sablier.EVM.Chain };\n};\n"]}
@@ -7,11 +7,12 @@ const DENERGY_NATIVE_CURRENCY_SYMBOL = "WATT";
7
7
  const ROBINHOOD_CHAIN_ID = 4663;
8
8
  const TANGLE_NATIVE_CURRENCY_SYMBOL = "TNT";
9
9
  exports.denergy = (0, viem_1.defineChain)({
10
+ id: DENERGY_CHAIN_ID,
11
+ name: "Denergy",
12
+ testnet: false,
10
13
  blockExplorers: {
11
14
  default: { name: "Explorer", url: "https://explorer.denergychain.com" },
12
15
  },
13
- id: DENERGY_CHAIN_ID,
14
- name: "Denergy",
15
16
  nativeCurrency: {
16
17
  decimals: 18,
17
18
  name: "Watt",
@@ -22,9 +23,11 @@ exports.denergy = (0, viem_1.defineChain)({
22
23
  http: ["https://rpc.d.energy"],
23
24
  },
24
25
  },
25
- testnet: false,
26
26
  });
27
27
  exports.robinhood = (0, viem_1.defineChain)({
28
+ id: ROBINHOOD_CHAIN_ID,
29
+ name: "Robinhood",
30
+ testnet: false,
28
31
  blockExplorers: {
29
32
  default: {
30
33
  apiUrl: "https://robinhoodchain.blockscout.com/api",
@@ -32,8 +35,6 @@ exports.robinhood = (0, viem_1.defineChain)({
32
35
  url: "https://robinhoodchain.blockscout.com",
33
36
  },
34
37
  },
35
- id: ROBINHOOD_CHAIN_ID,
36
- name: "Robinhood Chain",
37
38
  nativeCurrency: {
38
39
  decimals: 18,
39
40
  name: "Ether",
@@ -44,9 +45,11 @@ exports.robinhood = (0, viem_1.defineChain)({
44
45
  http: ["https://rpc.mainnet.chain.robinhood.com"],
45
46
  },
46
47
  },
47
- testnet: false,
48
48
  });
49
49
  exports.tangle = (0, viem_1.defineChain)({
50
+ id: 5845,
51
+ name: "Tangle",
52
+ testnet: false,
50
53
  blockExplorers: {
51
54
  default: { name: "Explorer", url: "https://explorer.tangle.tools" },
52
55
  },
@@ -56,8 +59,6 @@ exports.tangle = (0, viem_1.defineChain)({
56
59
  blockCreated: 2_790_914,
57
60
  },
58
61
  },
59
- id: 5845,
60
- name: "Tangle",
61
62
  nativeCurrency: {
62
63
  decimals: 18,
63
64
  name: "Tangle",
@@ -68,6 +69,5 @@ exports.tangle = (0, viem_1.defineChain)({
68
69
  http: ["https://rpc.tangle.tools"],
69
70
  },
70
71
  },
71
- testnet: false,
72
72
  });
73
73
  //# sourceMappingURL=custom.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"custom.js","sourceRoot":"","sources":["../../../../src/evm/chains/custom.ts"],"names":[],"mappings":";;;AAAA,+BAAiD;AAEjD,MAAM,gBAAgB,GAAG,OAAO,CAAC;AACjC,MAAM,8BAA8B,GAAG,MAAM,CAAC;AAC9C,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAChC,MAAM,6BAA6B,GAAG,KAAK,CAAC;AAE/B,QAAA,OAAO,GAAG,IAAA,kBAAU,EAAC;IAChC,cAAc,EAAE;QACd,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,mCAAmC,EAAE;KACxE;IACD,EAAE,EAAE,gBAAgB;IACpB,IAAI,EAAE,SAAS;IACf,cAAc,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,8BAA8B;KACvC;IACD,OAAO,EAAE;QACP,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,sBAAsB,CAAC;SAC/B;KACF;IACD,OAAO,EAAE,KAAK;CACf,CAAC,CAAC;AAEU,QAAA,SAAS,GAAG,IAAA,kBAAU,EAAC;IAClC,cAAc,EAAE;QACd,OAAO,EAAE;YACP,MAAM,EAAE,2CAA2C;YACnD,IAAI,EAAE,0BAA0B;YAChC,GAAG,EAAE,uCAAuC;SAC7C;KACF;IACD,EAAE,EAAE,kBAAkB;IACtB,IAAI,EAAE,iBAAiB;IACvB,cAAc,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,KAAK;KACd;IACD,OAAO,EAAE;QACP,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,yCAAyC,CAAC;SAClD;KACF;IACD,OAAO,EAAE,KAAK;CACf,CAAC,CAAC;AAEU,QAAA,MAAM,GAAG,IAAA,kBAAU,EAAC;IAC/B,cAAc,EAAE;QACd,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,+BAA+B,EAAE;KACpE;IACD,SAAS,EAAE;QACT,UAAU,EAAE;YACV,OAAO,EAAE,4CAA4C;YACrD,YAAY,EAAE,SAAS;SACxB;KACF;IACD,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,QAAQ;IACd,cAAc,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,6BAA6B;KACtC;IACD,OAAO,EAAE;QACP,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,0BAA0B,CAAC;SACnC;KACF;IACD,OAAO,EAAE,KAAK;CACf,CAAC,CAAC","sourcesContent":["import { defineChain as viemDefine } from \"viem\";\n\nconst DENERGY_CHAIN_ID = 369_369;\nconst DENERGY_NATIVE_CURRENCY_SYMBOL = \"WATT\";\nconst ROBINHOOD_CHAIN_ID = 4663;\nconst TANGLE_NATIVE_CURRENCY_SYMBOL = \"TNT\";\n\nexport const denergy = viemDefine({\n blockExplorers: {\n default: { name: \"Explorer\", url: \"https://explorer.denergychain.com\" },\n },\n id: DENERGY_CHAIN_ID,\n name: \"Denergy\",\n nativeCurrency: {\n decimals: 18,\n name: \"Watt\",\n symbol: DENERGY_NATIVE_CURRENCY_SYMBOL,\n },\n rpcUrls: {\n default: {\n http: [\"https://rpc.d.energy\"],\n },\n },\n testnet: false,\n});\n\nexport const robinhood = viemDefine({\n blockExplorers: {\n default: {\n apiUrl: \"https://robinhoodchain.blockscout.com/api\",\n name: \"Robinhood Chain Explorer\",\n url: \"https://robinhoodchain.blockscout.com\",\n },\n },\n id: ROBINHOOD_CHAIN_ID,\n name: \"Robinhood Chain\",\n nativeCurrency: {\n decimals: 18,\n name: \"Ether\",\n symbol: \"ETH\",\n },\n rpcUrls: {\n default: {\n http: [\"https://rpc.mainnet.chain.robinhood.com\"],\n },\n },\n testnet: false,\n});\n\nexport const tangle = viemDefine({\n blockExplorers: {\n default: { name: \"Explorer\", url: \"https://explorer.tangle.tools\" },\n },\n contracts: {\n multicall3: {\n address: \"0xd595D34ed96b253E7c7a934a7624F330a8411953\",\n blockCreated: 2_790_914,\n },\n },\n id: 5845,\n name: \"Tangle\",\n nativeCurrency: {\n decimals: 18,\n name: \"Tangle\",\n symbol: TANGLE_NATIVE_CURRENCY_SYMBOL,\n },\n rpcUrls: {\n default: {\n http: [\"https://rpc.tangle.tools\"],\n },\n },\n testnet: false,\n});\n"]}
1
+ {"version":3,"file":"custom.js","sourceRoot":"","sources":["../../../../src/evm/chains/custom.ts"],"names":[],"mappings":";;;AAAA,+BAAiD;AAEjD,MAAM,gBAAgB,GAAG,OAAO,CAAC;AACjC,MAAM,8BAA8B,GAAG,MAAM,CAAC;AAC9C,MAAM,kBAAkB,GAAG,IAAI,CAAC;AAChC,MAAM,6BAA6B,GAAG,KAAK,CAAC;AAE/B,QAAA,OAAO,GAAG,IAAA,kBAAU,EAAC;IAChC,EAAE,EAAE,gBAAgB;IACpB,IAAI,EAAE,SAAS;IACf,OAAO,EAAE,KAAK;IACd,cAAc,EAAE;QACd,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,mCAAmC,EAAE;KACxE;IACD,cAAc,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,MAAM;QACZ,MAAM,EAAE,8BAA8B;KACvC;IACD,OAAO,EAAE;QACP,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,sBAAsB,CAAC;SAC/B;KACF;CACF,CAAC,CAAC;AAEU,QAAA,SAAS,GAAG,IAAA,kBAAU,EAAC;IAClC,EAAE,EAAE,kBAAkB;IACtB,IAAI,EAAE,WAAW;IACjB,OAAO,EAAE,KAAK;IACd,cAAc,EAAE;QACd,OAAO,EAAE;YACP,MAAM,EAAE,2CAA2C;YACnD,IAAI,EAAE,0BAA0B;YAChC,GAAG,EAAE,uCAAuC;SAC7C;KACF;IACD,cAAc,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,KAAK;KACd;IACD,OAAO,EAAE;QACP,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,yCAAyC,CAAC;SAClD;KACF;CACF,CAAC,CAAC;AAEU,QAAA,MAAM,GAAG,IAAA,kBAAU,EAAC;IAC/B,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,QAAQ;IACd,OAAO,EAAE,KAAK;IACd,cAAc,EAAE;QACd,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,+BAA+B,EAAE;KACpE;IACD,SAAS,EAAE;QACT,UAAU,EAAE;YACV,OAAO,EAAE,4CAA4C;YACrD,YAAY,EAAE,SAAS;SACxB;KACF;IACD,cAAc,EAAE;QACd,QAAQ,EAAE,EAAE;QACZ,IAAI,EAAE,QAAQ;QACd,MAAM,EAAE,6BAA6B;KACtC;IACD,OAAO,EAAE;QACP,OAAO,EAAE;YACP,IAAI,EAAE,CAAC,0BAA0B,CAAC;SACnC;KACF;CACF,CAAC,CAAC","sourcesContent":["import { defineChain as viemDefine } from \"viem\";\n\nconst DENERGY_CHAIN_ID = 369_369;\nconst DENERGY_NATIVE_CURRENCY_SYMBOL = \"WATT\";\nconst ROBINHOOD_CHAIN_ID = 4663;\nconst TANGLE_NATIVE_CURRENCY_SYMBOL = \"TNT\";\n\nexport const denergy = viemDefine({\n id: DENERGY_CHAIN_ID,\n name: \"Denergy\",\n testnet: false,\n blockExplorers: {\n default: { name: \"Explorer\", url: \"https://explorer.denergychain.com\" },\n },\n nativeCurrency: {\n decimals: 18,\n name: \"Watt\",\n symbol: DENERGY_NATIVE_CURRENCY_SYMBOL,\n },\n rpcUrls: {\n default: {\n http: [\"https://rpc.d.energy\"],\n },\n },\n});\n\nexport const robinhood = viemDefine({\n id: ROBINHOOD_CHAIN_ID,\n name: \"Robinhood\",\n testnet: false,\n blockExplorers: {\n default: {\n apiUrl: \"https://robinhoodchain.blockscout.com/api\",\n name: \"Robinhood Chain Explorer\",\n url: \"https://robinhoodchain.blockscout.com\",\n },\n },\n nativeCurrency: {\n decimals: 18,\n name: \"Ether\",\n symbol: \"ETH\",\n },\n rpcUrls: {\n default: {\n http: [\"https://rpc.mainnet.chain.robinhood.com\"],\n },\n },\n});\n\nexport const tangle = viemDefine({\n id: 5845,\n name: \"Tangle\",\n testnet: false,\n blockExplorers: {\n default: { name: \"Explorer\", url: \"https://explorer.tangle.tools\" },\n },\n contracts: {\n multicall3: {\n address: \"0xd595D34ed96b253E7c7a934a7624F330a8411953\",\n blockCreated: 2_790_914,\n },\n },\n nativeCurrency: {\n decimals: 18,\n name: \"Tangle\",\n symbol: TANGLE_NATIVE_CURRENCY_SYMBOL,\n },\n rpcUrls: {\n default: {\n http: [\"https://rpc.tangle.tools\"],\n },\n },\n});\n"]}
@@ -10,8 +10,8 @@ exports.contractsQueries = (0, queries_js_2.createContractsQueries)({
10
10
  catalog: catalog_js_1.catalog,
11
11
  contractsField: "contracts",
12
12
  getAliasCatalog: alias_catalog_js_1.getAliasCatalog,
13
- normalizeAddress: (address) => address.toLowerCase(),
14
13
  protocols: [enums_js_1.Protocol.Airdrops, enums_js_1.Protocol.Flow, enums_js_1.Protocol.Legacy, enums_js_1.Protocol.Lockup],
14
+ normalizeAddress: (address) => address.toLowerCase(),
15
15
  releasesQueries: queries_js_1.releasesQueries,
16
16
  });
17
17
  //# sourceMappingURL=queries.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../../src/evm/contracts/queries.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAC9C,8DAAgE;AAChE,oEAA6E;AAE7E,yDAAqD;AACrD,6CAAuC;AAE1B,QAAA,gBAAgB,GAAG,IAAA,mCAAsB,EAOpD;IACA,OAAO,EAAP,oBAAO;IACP,cAAc,EAAE,WAAW;IAC3B,eAAe,EAAf,kCAAe;IACf,gBAAgB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE;IACpD,SAAS,EAAE,CAAC,mBAAQ,CAAC,QAAQ,EAAE,mBAAQ,CAAC,IAAI,EAAE,mBAAQ,CAAC,MAAM,EAAE,mBAAQ,CAAC,MAAM,CAAC;IAC/E,eAAe,EAAf,4BAAe;CAChB,CAAC,CAAC","sourcesContent":["import { Protocol } from \"@/src/evm/enums.js\";\nimport { releasesQueries } from \"@/src/evm/releases/queries.js\";\nimport { createContractsQueries } from \"@/src/internal/factories/queries.js\";\nimport type { Sablier } from \"@/src/types.js\";\nimport { getAliasCatalog } from \"./alias-catalog.js\";\nimport { catalog } from \"./catalog.js\";\n\nexport const contractsQueries = createContractsQueries<\n Sablier.EVM.Protocol,\n Sablier.EVM.Contract,\n Sablier.EVM.Deployment,\n Sablier.EVM.Release,\n Sablier.EVM.ContractCatalog,\n Sablier.EVM.AliasCatalog\n>({\n catalog,\n contractsField: \"contracts\",\n getAliasCatalog,\n normalizeAddress: (address) => address.toLowerCase(),\n protocols: [Protocol.Airdrops, Protocol.Flow, Protocol.Legacy, Protocol.Lockup],\n releasesQueries,\n});\n"]}
1
+ {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../../src/evm/contracts/queries.ts"],"names":[],"mappings":";;;AAAA,iDAA8C;AAC9C,8DAAgE;AAChE,oEAA6E;AAE7E,yDAAqD;AACrD,6CAAuC;AAE1B,QAAA,gBAAgB,GAAG,IAAA,mCAAsB,EAOpD;IACA,OAAO,EAAP,oBAAO;IACP,cAAc,EAAE,WAAW;IAC3B,eAAe,EAAf,kCAAe;IACf,SAAS,EAAE,CAAC,mBAAQ,CAAC,QAAQ,EAAE,mBAAQ,CAAC,IAAI,EAAE,mBAAQ,CAAC,MAAM,EAAE,mBAAQ,CAAC,MAAM,CAAC;IAC/E,gBAAgB,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,WAAW,EAAE;IACpD,eAAe,EAAf,4BAAe;CAChB,CAAC,CAAC","sourcesContent":["import { Protocol } from \"@/src/evm/enums.js\";\nimport { releasesQueries } from \"@/src/evm/releases/queries.js\";\nimport { createContractsQueries } from \"@/src/internal/factories/queries.js\";\nimport type { Sablier } from \"@/src/types.js\";\nimport { getAliasCatalog } from \"./alias-catalog.js\";\nimport { catalog } from \"./catalog.js\";\n\nexport const contractsQueries = createContractsQueries<\n Sablier.EVM.Protocol,\n Sablier.EVM.Contract,\n Sablier.EVM.Deployment,\n Sablier.EVM.Release,\n Sablier.EVM.ContractCatalog,\n Sablier.EVM.AliasCatalog\n>({\n catalog,\n contractsField: \"contracts\",\n getAliasCatalog,\n protocols: [Protocol.Airdrops, Protocol.Flow, Protocol.Legacy, Protocol.Lockup],\n normalizeAddress: (address) => address.toLowerCase(),\n releasesQueries,\n});\n"]}
@@ -128,7 +128,7 @@ exports.mainnets = [
128
128
  [manifest_js_1.default.HELPERS]: "0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc",
129
129
  [manifest_js_1.default.LOCKUP_NFT_DESCRIPTOR]: "0x660314f09ac3B65E216B6De288aAdc2599AF14e2",
130
130
  [manifest_js_1.default.SABLIER_BATCH_LOCKUP]: "0x081BBbd4861BaBACE3E7eDC8a45741129DfC02fE",
131
- [manifest_js_1.default.SABLIER_LOCKUP]: ["0xF3cd08105b6745965149eF02b8aBdCEa0Ae51241", 38_256_772],
131
+ [manifest_js_1.default.SABLIER_LOCKUP]: ["0xF3cd08105b6745965149eF02b8aBdCEa0Ae51241", 4_034_472],
132
132
  [manifest_js_1.default.VESTING_MATH]: "0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d",
133
133
  }),
134
134
  get(index_js_1.chains.optimism.id, {
@@ -1 +1 @@
1
- {"version":3,"file":"deployments.js","sourceRoot":"","sources":["../../../../../../src/evm/releases/lockup/v2.0/deployments.ts"],"names":[],"mappings":"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","sourcesContent":["import { chains } from \"@/src/evm/chains/index.js\";\nimport { Protocol } from \"@/src/evm/enums.js\";\nimport { resolvers } from \"@/src/evm/releases/resolvers.js\";\nimport type { Sablier } from \"@/src/types.js\";\nimport aliases from \"./aliases.js\";\nimport manifest from \"./manifest.js\";\n\nfunction get(chainId: number, contractMap: Sablier.EVM.ContractMap): Sablier.EVM.Deployment {\n return resolvers.deployment.standard({\n aliasMap: aliases,\n chainId,\n contractMap,\n protocol: Protocol.Lockup,\n version: \"v2.0\",\n });\n}\n\n/**\n * @description Mainnet deployments for Lockup v2.0\n */\nexport const mainnets: Sablier.EVM.Deployment[] = [\n get(chains.abstract.id, {\n [manifest.HELPERS]: \"0x07c194dFE7DCe9Ae7Ffe4bF32683cf1F8CDD4aEa\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x63Ff2E370788C163D5a1909B5FCb299DB327AEF9\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x3409308357BB704f79f70d748da502F363Dc2f1D\",\n [manifest.SABLIER_LOCKUP]: [\"0x14Eb4AB47B2ec2a71763eaBa202a252E176FAE88\", 326_658],\n [manifest.VESTING_MATH]: \"0xbB2e2884AE40003BB55fd3A85A9f8f7f72Aa441F\",\n }),\n get(chains.arbitrum.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xd5c6a0Dd2E1822865c308850b8b3E2CcE762D061\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xB11Ead48F572155C5F8dB6201701e91A936896f7\",\n [manifest.SABLIER_LOCKUP]: [\"0x467D5Bf8Cfa1a5f99328fBdCb9C751c78934b725\", 299_856_292],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.avalanche.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x906A4BD5dD0EF13654eA29bFD6185d0d64A4b674\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xABDE228d84D86D78029C31A37Ae2435C8f923c8b\",\n [manifest.SABLIER_LOCKUP]: [\"0x3C81BBBe72EF8eF3fb1D19B0bd6310Ad0dd27E82\", 56_433_740],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.base.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x87e437030b7439150605a641483de98672E26317\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xC26CdAFd6ec3c91AD9aEeB237Ee1f37205ED26a4\",\n [manifest.SABLIER_LOCKUP]: [\"0xb5D78DD3276325f5FAF3106Cc4Acc56E28e0Fe3B\", 25_601_436],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.berachain.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x3bbE0a21792564604B0fDc00019532Adeffa70eb\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x75838C66Dfa2296bB9758f75fC7ad219718C8a88\",\n [manifest.SABLIER_LOCKUP]: [\"0xC19A2542156b5d7960e0eF46E9787E7d336cF428\", 780_094],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.blast.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x959c412d5919b1Ec5D07bee3443ea68c91d57dd7\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x193c2af965FEAca8D893c974712e5b6BD3cBc5ec\",\n [manifest.SABLIER_LOCKUP]: [\"0xDbB6e9653d7e41766712Db22eB08ED3F21009fdd\", 14_593_162],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.bsc.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x56831a5a932793E02251126831174Ab8Bf2f7695\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xcf990fA3267F0945bBf7cf40A0c03F9dFE6a1804\",\n [manifest.SABLIER_LOCKUP]: [\"0x6E0baD2c077d699841F1929b45bfb93FAfBEd395\", 46_137_049],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.chiliz.id, {\n [manifest.HELPERS]: \"0x6FcAB41e3b62d05aB4fC729586CB06Af2a2662D0\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x8A96f827082FB349B6e268baa0a7A5584c4Ccda6\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x179536f3289fb50076968b339C7EF0Dc0B38E3AF\",\n [manifest.SABLIER_LOCKUP]: [\"0x711900e5f55d427cd88e5E3FCAe54Ccf02De71F4\", 20_430_940],\n [manifest.VESTING_MATH]: \"0x84f092cf4D7D36C2d4987F672df81a39200a7146\",\n }),\n get(chains.coreDao.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xac0cf0f2a96ed7ec3cfa4d0be621c67adc9dd903\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x96dadeeab25413de04a1b8e40c4de41bd9d7fd29\",\n [manifest.SABLIER_LOCKUP]: [\"0x4fff53bfe86a0bd59a81c89d8ba84c67cf947764\", 21_574_032],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.gnosis.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x3140a6900AA2FF3186730741ad8255ee4e6d8Ff1\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xe89EE0b2B31A296C5cCb631C3670F94bDD64a0D2\",\n [manifest.SABLIER_LOCKUP]: [\"0x007aF5dC7b1CaA66Cf7Ebcc01E2e6ba4D55D3e92\", 38_256_772],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.hyperevm.id, {\n [manifest.HELPERS]: \"0xe2f66eEe2E227c40074668ba53021423ED7D4ea1\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x7263d77e9e872f82A15e5E1a9816440D23758708\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x5444eA1B8B636A8FdF7cE814077E664c28dE30Ec\",\n [manifest.SABLIER_LOCKUP]: [\"0x856167EE3e09Ba562d69A542Ab6A939903ad738e\", 8_594_061],\n [manifest.VESTING_MATH]: \"0xf91e1a8fA643F8062C12Ca2865f1eb2258d6422F\",\n }),\n get(chains.lightlink.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xCFB5F90370A7884DEc59C55533782B45FA24f4d1\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xe8fa70D0172BB36c952E3e20e2f3550Ca4557761\",\n [manifest.SABLIER_LOCKUP]: [\"0x6c65aAf03186d1DA60127D3d7792cF36eD99D909\", 125_509_194],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.linea.id, {\n [manifest.HELPERS]: \"0x058aD99662FE7ecB8c3109920C99439a302b6573\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x1514a869D29a8B22961e8F9eBa3DC64000b96BCe\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xEdf0A4b30defD14449604d1b97e2c39128c136CA\",\n [manifest.SABLIER_LOCKUP]: [\"0x6964252561e8762dD10267176EaC5078b6291e51\", 15_111_716],\n [manifest.VESTING_MATH]: \"0xdEe57959770667d97A90C94fE70C055496B7a791\",\n }),\n get(chains.mainnet.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xA9dC6878C979B5cc1d98a1803F0664ad725A1f56\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x3F6E8a8Cffe377c4649aCeB01e6F20c60fAA356c\",\n [manifest.SABLIER_LOCKUP]: [\"0x7C01AA3783577E15fD7e272443D44B92d5b21056\", 21_719_028],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.mode.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x64e7879558b6dfE2f510bd4b9Ad196ef0371EAA8\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x34dBab20FD097F63DDbf3092D83B1005D2573082\",\n [manifest.SABLIER_LOCKUP]: [\"0x3aEbaDFC423fD08BE4715986F68D5E9A597ec974\", 18_912_617],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.morph.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x660314f09ac3B65E216B6De288aAdc2599AF14e2\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x081BBbd4861BaBACE3E7eDC8a45741129DfC02fE\",\n [manifest.SABLIER_LOCKUP]: [\"0xF3cd08105b6745965149eF02b8aBdCEa0Ae51241\", 38_256_772],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.optimism.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x41dBa1AfBB6DF91b3330dc009842327A9858Cbae\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x0c4Cd6087DbFa3F74661BAbbFaa35273baC1c4b1\",\n [manifest.SABLIER_LOCKUP]: [\"0x822e9c4852E978104d82F0f785bFA663c2b700c1\", 131_196_856],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.polygon.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xf5e12d0bA25FCa0D738Ec57f149736B2e4C46980\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x1aDd9385F2C5c8e446bbB77c7A36839aB7743AF4\",\n [manifest.SABLIER_LOCKUP]: [\"0xE0BFe071Da104e571298f8b6e0fcE44C512C1Ff4\", 67_212_728],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.scroll.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x00Ff6443E902874924dd217c1435e3be04f57431\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x8234Ad3CC4D29a4619C36a15286dac73078672a8\",\n [manifest.SABLIER_LOCKUP]: [\"0xcB0B1f1D116eD62135848d8C90EB61afDA936Da8\", 13_007_957],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.sei.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xeaFB40669fe3523b073904De76410b46e79a56D7\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x34686937bef23c6441248Cc5A63A79a3a707e7E4\",\n [manifest.SABLIER_LOCKUP]: [\"0x736A6E895790e089aEC2Bf76B2D7f368ce6Efff5\", 138_913_911],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.sonic.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xAE8FE47765f88e0A2D7E8fbaf33583DBf0373f01\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xc91b20dC29E19120BF3f54277947327AfD50fBa2\",\n [manifest.SABLIER_LOCKUP]: [\"0xc37462eE6500D2C36c9131b921fAADBD6cb7B60b\", 43_943_890],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.sophon.id, {\n [manifest.HELPERS]: \"0x424B27529B49EF4Bfa0727aFcFE4387Ac2932944\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xAc2E42b520364940c90Ce164412Ca9BA212d014B\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x7282d83E49363f373102d195F66649eBD6C57B9B\",\n [manifest.SABLIER_LOCKUP]: [\"0x28fCAE6bda2546C93183EeC8638691B2EB184003\", 11_275_708],\n [manifest.VESTING_MATH]: \"0x9971914DA16787F6cCfb27bEfB4404e33C8b869D\",\n }),\n get(chains.superseed.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xa4576b58Ec760A8282D081dc94F3dc716DFc61e9\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x89e9F2473836d9ab7D28Df6F180E30992b8CB5d6\",\n [manifest.SABLIER_LOCKUP]: [\"0xF46D1f8C85f215A515F6D738ab3E3bA081f6C083\", 5_908_538],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.taiko.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x79F1fD8bB2D455f64010063Fc79E27561980FE10\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xcBbA08768C4a9D9131dE0467Ae136b8450dC13B2\",\n [manifest.SABLIER_LOCKUP]: [\"0x628E88cDF558c0F4796c8CeB5068a023a7159aA7\", 798_873],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.tangle.id, {\n [manifest.HELPERS]: \"0x3D664B2Da905DDD0Db931982FD9a759ea950D6e1\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x92FC05e49c27884d554D98a5C01Ff0894a9DC29a\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xF5AC60870E1CCc4Bfce23cfbb7a796A0d8dBAf47\",\n [manifest.SABLIER_LOCKUP]: [\"0x1cAe76b71913598d7664d16641CCB6037d8Ed61a\", 4_003_841],\n [manifest.VESTING_MATH]: \"0x9EfC8663cAB0e2d97ad17C9fbfc8392445517E94\",\n }),\n get(chains.unichain.id, {\n [manifest.HELPERS]: \"0xf8076e4fb5cfe8be1c26e61222dc51828db8c1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xa5F12D63E18a28C9BE27B6f3d91ce693320067ba\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xaf875A2bDb74bA8872292FC371131eb45a9b570C\",\n [manifest.SABLIER_LOCKUP]: [\"0x26C341C4D79bA8F6BFB450a49E9165c936316B14\", 13_882_080],\n [manifest.VESTING_MATH]: \"0x5522ca06ce080800ab59ba4c091e63f6f54c5e6d\",\n }),\n get(chains.xdc.id, {\n [manifest.HELPERS]: \"0xf8076e4fb5cfe8be1c26e61222dc51828db8c1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x4c1311a9d88BFb7023148aB04F7321C2E91c29bf\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x6d36227Dd84e2A3d898B192Bc82a005c3cc2320C\",\n [manifest.SABLIER_LOCKUP]: [\"0x489e0DC5E62A751A2b209f1cC03E189fd6257176\", 85_225_620],\n [manifest.VESTING_MATH]: \"0x5522ca06ce080800ab59ba4c091e63f6f54c5e6d\",\n }),\n get(chains.zksync.id, {\n [manifest.HELPERS]: \"0x37De3Fc44a07A40411AD0Cea4310990C9F88c1C1\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xCB2d53c58496C2aA114bce4ED5C7fe768ce86542\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xCC926359DBE6b6311D63f8155fcC3B57F3fAAE80\",\n [manifest.SABLIER_LOCKUP]: [\"0x7BCcB3595Aa81Dbe8A69DD8C46f5C2A3cf76594A\", 54_967_807],\n [manifest.VESTING_MATH]: \"0xEE4a32E026aC2FD6BF71d9D7eB00803576aD314d\",\n }),\n];\n\n/**\n * @description Testnet deployments for Lockup v2.0\n */\nexport const testnets: Sablier.EVM.Deployment[] = [\n get(chains.arbitrumSepolia.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x8224eb5D7d76B2D7Df43b868D875E79B11500eA8\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xbf85cD17cA59b7A2b81d3D776cE1602a7C0aF9D9\",\n [manifest.SABLIER_LOCKUP]: [\"0x83Dd52FCA44E069020b58155b761A590F12B59d3\", 119_019_039],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.baseSepolia.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xCA2593027BA24856c292Fdcb5F987E0c25e755a4\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xEdc716E9672f672456d22b02532395c1e62B8C16\",\n [manifest.SABLIER_LOCKUP]: [\"0xa4777CA525d43a7aF55D45b11b430606d7416f8d\", 21_166_223],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n\n get(chains.lineaSepolia.id, {\n [manifest.HELPERS]: \"0x058aD99662FE7ecB8c3109920C99439a302b6573\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xCE94BE25320A51Ac868d0C133c251aE10682DabD\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x9A987181BF05b7C154118A3216d522fa2407a8Be\",\n [manifest.SABLIER_LOCKUP]: [\"0xbb4A14868A4BEc78b7354582b8C818ba520d7A4E\", 8_618_209],\n [manifest.VESTING_MATH]: \"0xdEe57959770667d97A90C94fE70C055496B7a791\",\n }),\n\n get(chains.optimismSepolia.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xDf6163ddD3Ebcb552Cc1379a9c65AFe68683534e\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xF7BA8a7dc96d1939b789b91865bdb05596EBB558\",\n [manifest.SABLIER_LOCKUP]: [\"0x1f898895eAB949FfD34c29Cf859C035DC4525DF4\", 23_094_981],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.sepolia.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x08D3C81626d9Cb19760835e8730Ec0D3F1899976\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xB655ecD83D27f7c683A9605783bd2866a4dCEB04\",\n [manifest.SABLIER_LOCKUP]: [\"0xd116c275541cdBe7594A202bD6AE4DBca4578462\", 7_583_311],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.superseedSepolia.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xc5D8E4317CE4a2E323192A5d856C90372bDE1558\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xB2C6C57ee10B88E8344f34ffeCe39B0C6573c23D\",\n [manifest.SABLIER_LOCKUP]: [\"0x4E83EC1Ea3B885C1a3698dA7DC42F32575688ABE\", 13_532_748],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n];\n"]}
1
+ {"version":3,"file":"deployments.js","sourceRoot":"","sources":["../../../../../../src/evm/releases/lockup/v2.0/deployments.ts"],"names":[],"mappings":"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","sourcesContent":["import { chains } from \"@/src/evm/chains/index.js\";\nimport { Protocol } from \"@/src/evm/enums.js\";\nimport { resolvers } from \"@/src/evm/releases/resolvers.js\";\nimport type { Sablier } from \"@/src/types.js\";\nimport aliases from \"./aliases.js\";\nimport manifest from \"./manifest.js\";\n\nfunction get(chainId: number, contractMap: Sablier.EVM.ContractMap): Sablier.EVM.Deployment {\n return resolvers.deployment.standard({\n aliasMap: aliases,\n chainId,\n contractMap,\n protocol: Protocol.Lockup,\n version: \"v2.0\",\n });\n}\n\n/**\n * @description Mainnet deployments for Lockup v2.0\n */\nexport const mainnets: Sablier.EVM.Deployment[] = [\n get(chains.abstract.id, {\n [manifest.HELPERS]: \"0x07c194dFE7DCe9Ae7Ffe4bF32683cf1F8CDD4aEa\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x63Ff2E370788C163D5a1909B5FCb299DB327AEF9\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x3409308357BB704f79f70d748da502F363Dc2f1D\",\n [manifest.SABLIER_LOCKUP]: [\"0x14Eb4AB47B2ec2a71763eaBa202a252E176FAE88\", 326_658],\n [manifest.VESTING_MATH]: \"0xbB2e2884AE40003BB55fd3A85A9f8f7f72Aa441F\",\n }),\n get(chains.arbitrum.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xd5c6a0Dd2E1822865c308850b8b3E2CcE762D061\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xB11Ead48F572155C5F8dB6201701e91A936896f7\",\n [manifest.SABLIER_LOCKUP]: [\"0x467D5Bf8Cfa1a5f99328fBdCb9C751c78934b725\", 299_856_292],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.avalanche.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x906A4BD5dD0EF13654eA29bFD6185d0d64A4b674\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xABDE228d84D86D78029C31A37Ae2435C8f923c8b\",\n [manifest.SABLIER_LOCKUP]: [\"0x3C81BBBe72EF8eF3fb1D19B0bd6310Ad0dd27E82\", 56_433_740],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.base.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x87e437030b7439150605a641483de98672E26317\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xC26CdAFd6ec3c91AD9aEeB237Ee1f37205ED26a4\",\n [manifest.SABLIER_LOCKUP]: [\"0xb5D78DD3276325f5FAF3106Cc4Acc56E28e0Fe3B\", 25_601_436],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.berachain.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x3bbE0a21792564604B0fDc00019532Adeffa70eb\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x75838C66Dfa2296bB9758f75fC7ad219718C8a88\",\n [manifest.SABLIER_LOCKUP]: [\"0xC19A2542156b5d7960e0eF46E9787E7d336cF428\", 780_094],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.blast.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x959c412d5919b1Ec5D07bee3443ea68c91d57dd7\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x193c2af965FEAca8D893c974712e5b6BD3cBc5ec\",\n [manifest.SABLIER_LOCKUP]: [\"0xDbB6e9653d7e41766712Db22eB08ED3F21009fdd\", 14_593_162],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.bsc.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x56831a5a932793E02251126831174Ab8Bf2f7695\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xcf990fA3267F0945bBf7cf40A0c03F9dFE6a1804\",\n [manifest.SABLIER_LOCKUP]: [\"0x6E0baD2c077d699841F1929b45bfb93FAfBEd395\", 46_137_049],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.chiliz.id, {\n [manifest.HELPERS]: \"0x6FcAB41e3b62d05aB4fC729586CB06Af2a2662D0\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x8A96f827082FB349B6e268baa0a7A5584c4Ccda6\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x179536f3289fb50076968b339C7EF0Dc0B38E3AF\",\n [manifest.SABLIER_LOCKUP]: [\"0x711900e5f55d427cd88e5E3FCAe54Ccf02De71F4\", 20_430_940],\n [manifest.VESTING_MATH]: \"0x84f092cf4D7D36C2d4987F672df81a39200a7146\",\n }),\n get(chains.coreDao.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xac0cf0f2a96ed7ec3cfa4d0be621c67adc9dd903\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x96dadeeab25413de04a1b8e40c4de41bd9d7fd29\",\n [manifest.SABLIER_LOCKUP]: [\"0x4fff53bfe86a0bd59a81c89d8ba84c67cf947764\", 21_574_032],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.gnosis.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x3140a6900AA2FF3186730741ad8255ee4e6d8Ff1\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xe89EE0b2B31A296C5cCb631C3670F94bDD64a0D2\",\n [manifest.SABLIER_LOCKUP]: [\"0x007aF5dC7b1CaA66Cf7Ebcc01E2e6ba4D55D3e92\", 38_256_772],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.hyperevm.id, {\n [manifest.HELPERS]: \"0xe2f66eEe2E227c40074668ba53021423ED7D4ea1\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x7263d77e9e872f82A15e5E1a9816440D23758708\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x5444eA1B8B636A8FdF7cE814077E664c28dE30Ec\",\n [manifest.SABLIER_LOCKUP]: [\"0x856167EE3e09Ba562d69A542Ab6A939903ad738e\", 8_594_061],\n [manifest.VESTING_MATH]: \"0xf91e1a8fA643F8062C12Ca2865f1eb2258d6422F\",\n }),\n get(chains.lightlink.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xCFB5F90370A7884DEc59C55533782B45FA24f4d1\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xe8fa70D0172BB36c952E3e20e2f3550Ca4557761\",\n [manifest.SABLIER_LOCKUP]: [\"0x6c65aAf03186d1DA60127D3d7792cF36eD99D909\", 125_509_194],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.linea.id, {\n [manifest.HELPERS]: \"0x058aD99662FE7ecB8c3109920C99439a302b6573\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x1514a869D29a8B22961e8F9eBa3DC64000b96BCe\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xEdf0A4b30defD14449604d1b97e2c39128c136CA\",\n [manifest.SABLIER_LOCKUP]: [\"0x6964252561e8762dD10267176EaC5078b6291e51\", 15_111_716],\n [manifest.VESTING_MATH]: \"0xdEe57959770667d97A90C94fE70C055496B7a791\",\n }),\n get(chains.mainnet.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xA9dC6878C979B5cc1d98a1803F0664ad725A1f56\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x3F6E8a8Cffe377c4649aCeB01e6F20c60fAA356c\",\n [manifest.SABLIER_LOCKUP]: [\"0x7C01AA3783577E15fD7e272443D44B92d5b21056\", 21_719_028],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.mode.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x64e7879558b6dfE2f510bd4b9Ad196ef0371EAA8\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x34dBab20FD097F63DDbf3092D83B1005D2573082\",\n [manifest.SABLIER_LOCKUP]: [\"0x3aEbaDFC423fD08BE4715986F68D5E9A597ec974\", 18_912_617],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.morph.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x660314f09ac3B65E216B6De288aAdc2599AF14e2\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x081BBbd4861BaBACE3E7eDC8a45741129DfC02fE\",\n [manifest.SABLIER_LOCKUP]: [\"0xF3cd08105b6745965149eF02b8aBdCEa0Ae51241\", 4_034_472],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.optimism.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x41dBa1AfBB6DF91b3330dc009842327A9858Cbae\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x0c4Cd6087DbFa3F74661BAbbFaa35273baC1c4b1\",\n [manifest.SABLIER_LOCKUP]: [\"0x822e9c4852E978104d82F0f785bFA663c2b700c1\", 131_196_856],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.polygon.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xf5e12d0bA25FCa0D738Ec57f149736B2e4C46980\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x1aDd9385F2C5c8e446bbB77c7A36839aB7743AF4\",\n [manifest.SABLIER_LOCKUP]: [\"0xE0BFe071Da104e571298f8b6e0fcE44C512C1Ff4\", 67_212_728],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.scroll.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x00Ff6443E902874924dd217c1435e3be04f57431\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x8234Ad3CC4D29a4619C36a15286dac73078672a8\",\n [manifest.SABLIER_LOCKUP]: [\"0xcB0B1f1D116eD62135848d8C90EB61afDA936Da8\", 13_007_957],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.sei.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xeaFB40669fe3523b073904De76410b46e79a56D7\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x34686937bef23c6441248Cc5A63A79a3a707e7E4\",\n [manifest.SABLIER_LOCKUP]: [\"0x736A6E895790e089aEC2Bf76B2D7f368ce6Efff5\", 138_913_911],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.sonic.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xAE8FE47765f88e0A2D7E8fbaf33583DBf0373f01\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xc91b20dC29E19120BF3f54277947327AfD50fBa2\",\n [manifest.SABLIER_LOCKUP]: [\"0xc37462eE6500D2C36c9131b921fAADBD6cb7B60b\", 43_943_890],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.sophon.id, {\n [manifest.HELPERS]: \"0x424B27529B49EF4Bfa0727aFcFE4387Ac2932944\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xAc2E42b520364940c90Ce164412Ca9BA212d014B\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x7282d83E49363f373102d195F66649eBD6C57B9B\",\n [manifest.SABLIER_LOCKUP]: [\"0x28fCAE6bda2546C93183EeC8638691B2EB184003\", 11_275_708],\n [manifest.VESTING_MATH]: \"0x9971914DA16787F6cCfb27bEfB4404e33C8b869D\",\n }),\n get(chains.superseed.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xa4576b58Ec760A8282D081dc94F3dc716DFc61e9\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x89e9F2473836d9ab7D28Df6F180E30992b8CB5d6\",\n [manifest.SABLIER_LOCKUP]: [\"0xF46D1f8C85f215A515F6D738ab3E3bA081f6C083\", 5_908_538],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.taiko.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x79F1fD8bB2D455f64010063Fc79E27561980FE10\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xcBbA08768C4a9D9131dE0467Ae136b8450dC13B2\",\n [manifest.SABLIER_LOCKUP]: [\"0x628E88cDF558c0F4796c8CeB5068a023a7159aA7\", 798_873],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.tangle.id, {\n [manifest.HELPERS]: \"0x3D664B2Da905DDD0Db931982FD9a759ea950D6e1\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x92FC05e49c27884d554D98a5C01Ff0894a9DC29a\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xF5AC60870E1CCc4Bfce23cfbb7a796A0d8dBAf47\",\n [manifest.SABLIER_LOCKUP]: [\"0x1cAe76b71913598d7664d16641CCB6037d8Ed61a\", 4_003_841],\n [manifest.VESTING_MATH]: \"0x9EfC8663cAB0e2d97ad17C9fbfc8392445517E94\",\n }),\n get(chains.unichain.id, {\n [manifest.HELPERS]: \"0xf8076e4fb5cfe8be1c26e61222dc51828db8c1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xa5F12D63E18a28C9BE27B6f3d91ce693320067ba\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xaf875A2bDb74bA8872292FC371131eb45a9b570C\",\n [manifest.SABLIER_LOCKUP]: [\"0x26C341C4D79bA8F6BFB450a49E9165c936316B14\", 13_882_080],\n [manifest.VESTING_MATH]: \"0x5522ca06ce080800ab59ba4c091e63f6f54c5e6d\",\n }),\n get(chains.xdc.id, {\n [manifest.HELPERS]: \"0xf8076e4fb5cfe8be1c26e61222dc51828db8c1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x4c1311a9d88BFb7023148aB04F7321C2E91c29bf\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x6d36227Dd84e2A3d898B192Bc82a005c3cc2320C\",\n [manifest.SABLIER_LOCKUP]: [\"0x489e0DC5E62A751A2b209f1cC03E189fd6257176\", 85_225_620],\n [manifest.VESTING_MATH]: \"0x5522ca06ce080800ab59ba4c091e63f6f54c5e6d\",\n }),\n get(chains.zksync.id, {\n [manifest.HELPERS]: \"0x37De3Fc44a07A40411AD0Cea4310990C9F88c1C1\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xCB2d53c58496C2aA114bce4ED5C7fe768ce86542\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xCC926359DBE6b6311D63f8155fcC3B57F3fAAE80\",\n [manifest.SABLIER_LOCKUP]: [\"0x7BCcB3595Aa81Dbe8A69DD8C46f5C2A3cf76594A\", 54_967_807],\n [manifest.VESTING_MATH]: \"0xEE4a32E026aC2FD6BF71d9D7eB00803576aD314d\",\n }),\n];\n\n/**\n * @description Testnet deployments for Lockup v2.0\n */\nexport const testnets: Sablier.EVM.Deployment[] = [\n get(chains.arbitrumSepolia.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x8224eb5D7d76B2D7Df43b868D875E79B11500eA8\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xbf85cD17cA59b7A2b81d3D776cE1602a7C0aF9D9\",\n [manifest.SABLIER_LOCKUP]: [\"0x83Dd52FCA44E069020b58155b761A590F12B59d3\", 119_019_039],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.baseSepolia.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xCA2593027BA24856c292Fdcb5F987E0c25e755a4\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xEdc716E9672f672456d22b02532395c1e62B8C16\",\n [manifest.SABLIER_LOCKUP]: [\"0xa4777CA525d43a7aF55D45b11b430606d7416f8d\", 21_166_223],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n\n get(chains.lineaSepolia.id, {\n [manifest.HELPERS]: \"0x058aD99662FE7ecB8c3109920C99439a302b6573\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xCE94BE25320A51Ac868d0C133c251aE10682DabD\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0x9A987181BF05b7C154118A3216d522fa2407a8Be\",\n [manifest.SABLIER_LOCKUP]: [\"0xbb4A14868A4BEc78b7354582b8C818ba520d7A4E\", 8_618_209],\n [manifest.VESTING_MATH]: \"0xdEe57959770667d97A90C94fE70C055496B7a791\",\n }),\n\n get(chains.optimismSepolia.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xDf6163ddD3Ebcb552Cc1379a9c65AFe68683534e\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xF7BA8a7dc96d1939b789b91865bdb05596EBB558\",\n [manifest.SABLIER_LOCKUP]: [\"0x1f898895eAB949FfD34c29Cf859C035DC4525DF4\", 23_094_981],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.sepolia.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0x08D3C81626d9Cb19760835e8730Ec0D3F1899976\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xB655ecD83D27f7c683A9605783bd2866a4dCEB04\",\n [manifest.SABLIER_LOCKUP]: [\"0xd116c275541cdBe7594A202bD6AE4DBca4578462\", 7_583_311],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n get(chains.superseedSepolia.id, {\n [manifest.HELPERS]: \"0xf8076E4Fb5cfE8be1C26E61222DC51828Db8C1dc\",\n [manifest.LOCKUP_NFT_DESCRIPTOR]: \"0xc5D8E4317CE4a2E323192A5d856C90372bDE1558\",\n [manifest.SABLIER_BATCH_LOCKUP]: \"0xB2C6C57ee10B88E8344f34ffeCe39B0C6573c23D\",\n [manifest.SABLIER_LOCKUP]: [\"0x4E83EC1Ea3B885C1a3698dA7DC42F32575688ABE\", 13_532_748],\n [manifest.VESTING_MATH]: \"0x5522CA06Ce080800AB59BA4C091e63f6f54C5E6d\",\n }),\n];\n"]}
@@ -20,30 +20,22 @@ function createLockupV1Deployment(params) {
20
20
  }
21
21
  exports.resolvers = {
22
22
  deployment: {
23
- lockupV1: (params) => {
24
- return createLockupV1Deployment(params);
25
- },
26
- standard: (params) => {
27
- return standardDeploymentResolver(params);
28
- },
23
+ lockupV1: (params) => createLockupV1Deployment(params),
24
+ standard: (params) => standardDeploymentResolver(params),
29
25
  },
30
26
  release: {
31
- lockupV1: (params) => {
32
- return {
33
- ...params,
34
- contractNames: (0, nested_values_js_1.getNestedValues)(params.manifest),
35
- features: (0, features_js_1.getEvmReleaseFeatures)(params.protocol, params.version),
36
- kind: "lockupV1",
37
- };
38
- },
39
- standard: (params) => {
40
- return {
41
- ...params,
42
- contractNames: (0, nested_values_js_1.getNestedValues)(params.manifest),
43
- features: (0, features_js_1.getEvmReleaseFeatures)(params.protocol, params.version),
44
- kind: "standard",
45
- };
46
- },
27
+ lockupV1: (params) => ({
28
+ ...params,
29
+ contractNames: (0, nested_values_js_1.getNestedValues)(params.manifest),
30
+ features: (0, features_js_1.getEvmReleaseFeatures)(params.protocol, params.version),
31
+ kind: "lockupV1",
32
+ }),
33
+ standard: (params) => ({
34
+ ...params,
35
+ contractNames: (0, nested_values_js_1.getNestedValues)(params.manifest),
36
+ features: (0, features_js_1.getEvmReleaseFeatures)(params.protocol, params.version),
37
+ kind: "standard",
38
+ }),
47
39
  },
48
40
  };
49
41
  //# sourceMappingURL=resolvers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../../../../src/evm/releases/resolvers.ts"],"names":[],"mappings":";;;AAAA,4DAA4D;AAC5D,sEAG8C;AAC9C,4EAAwE;AAIxE,+CAAsD;AA0CtD,MAAM,cAAc,GAAG,IAAA,kCAAoB,EAKzC,0BAAa,CAAC,CAAC;AAEjB,MAAM,0BAA0B,GAAG,IAAA,8CAAgC,EAMjE,cAAc,EAAE,WAAW,CAAC,CAAC;AAS/B,SAAS,wBAAwB,CAC/B,MAAgC;IAEhC,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC;IAG9C,MAAM,eAAe,GAAG,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;IAC1E,MAAM,UAAU,GAAG,0BAA0B,CAAC;QAC5C,GAAG,UAAU;QACb,WAAW,EAAE,eAAe;KAC7B,CAAoC,CAAC;IAGtC,UAAU,CAAC,IAAI,GAAG,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC/D,UAAU,CAAC,SAAS,GAAG,cAAc,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAEzE,OAAO,UAAU,CAAC;AACpB,CAAC;AAMY,QAAA,SAAS,GAAG;IACvB,UAAU,EAAE;QAIV,QAAQ,EAAE,CAAC,MAAgC,EAAmC,EAAE;YAC9E,OAAO,wBAAwB,CAAC,MAAM,CAAC,CAAC;QAC1C,CAAC;QAKD,QAAQ,EAAE,CAAC,MAAgC,EAA0B,EAAE;YACrE,OAAO,0BAA0B,CAAC,MAAM,CAAC,CAAC;QAC5C,CAAC;KACF;IAED,OAAO,EAAE;QAIP,QAAQ,EAAE,CAIR,MAGC,EACyB,EAAE;YAC5B,OAAO;gBACL,GAAG,MAAM;gBACT,aAAa,EAAE,IAAA,kCAAe,EAAC,MAAM,CAAC,QAAQ,CAAC;gBAC/C,QAAQ,EAAE,IAAA,mCAAqB,EAAiB,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC;gBAChF,IAAI,EAAE,UAAU;aACjB,CAAC;QACJ,CAAC;QAKD,QAAQ,EAAE,CAKR,MAGC,EACoC,EAAE;YACvC,OAAO;gBACL,GAAG,MAAM;gBACT,aAAa,EAAE,IAAA,kCAAe,EAAC,MAAM,CAAC,QAAQ,CAAC;gBAC/C,QAAQ,EAAE,IAAA,mCAAqB,EAAY,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC;gBAC3E,IAAI,EAAE,UAAU;aACjB,CAAC;QACJ,CAAC;KACF;CACF,CAAC","sourcesContent":["import { chainsQueries } from \"@/src/evm/chains/queries.js\";\nimport {\n createContractMapper,\n createStandardDeploymentResolver,\n} from \"@/src/internal/factories/resolver.js\";\nimport { getNestedValues } from \"@/src/internal/utils/nested-values.js\";\nimport type { AliasMap } from \"@/src/shared/types.js\";\nimport type { Sablier } from \"@/src/types.js\";\nimport type { EvmReleaseVersionByProtocol, ReleaseFeaturesForProtocol } from \"./features.js\";\nimport { getEvmReleaseFeatures } from \"./features.js\";\n\n/* -------------------------------------------------------------------------- */\n/* TYPES */\n/* -------------------------------------------------------------------------- */\n\ntype DeploymentBaseParams = {\n protocol: Sablier.EVM.Protocol;\n version: Sablier.EVM.Version;\n chainId: number;\n aliasMap: AliasMap;\n};\n\ntype DeploymentLockupV1Params = DeploymentBaseParams & {\n contractMap: {\n core: Sablier.EVM.ContractMap;\n periphery: Sablier.EVM.ContractMap;\n };\n};\n\ntype DeploymentStandardParams = DeploymentBaseParams & {\n contractMap: Sablier.EVM.ContractMap;\n};\n\ntype ReleaseParams<T> = Omit<T, \"kind\" | \"contractNames\" | \"features\" | \"protocol\" | \"version\">;\n\ntype StandardRelease<\n TProtocol extends keyof EvmReleaseVersionByProtocol,\n TAbiMap extends Sablier.EVM.AbiMap,\n> = Sablier.EVM.Release.Standard<TAbiMap, ReleaseFeaturesForProtocol<TProtocol>>;\n\ntype LockupProtocol = Extract<keyof EvmReleaseVersionByProtocol, \"lockup\">;\n\ntype LockupV1Release<TAbiMap extends Sablier.EVM.AbiMap> = Sablier.EVM.Release.LockupV1<\n TAbiMap,\n ReleaseFeaturesForProtocol<LockupProtocol>\n>;\n\n/* -------------------------------------------------------------------------- */\n/* PLATFORM SETUP */\n/* -------------------------------------------------------------------------- */\n\nconst contractMapper = createContractMapper<\n Sablier.EVM.Contract,\n Sablier.EVM.Protocol,\n Sablier.EVM.Version,\n Sablier.EVM.Address\n>(chainsQueries);\n\nconst standardDeploymentResolver = createStandardDeploymentResolver<\n Sablier.EVM.Deployment,\n Sablier.EVM.Contract,\n Sablier.EVM.Protocol,\n Sablier.EVM.Version,\n Sablier.EVM.Address\n>(contractMapper, \"contracts\");\n\n/* -------------------------------------------------------------------------- */\n/* EVM-SPECIFIC RESOLVERS */\n/* -------------------------------------------------------------------------- */\n\n/**\n * Creates a LockupV1 deployment with separate core and periphery contracts\n */\nfunction createLockupV1Deployment(\n params: DeploymentLockupV1Params\n): Sablier.EVM.Deployment.LockupV1 {\n const { contractMap, ...baseParams } = params;\n\n // Create standard deployment with merged contracts\n const mergedContracts = { ...contractMap.core, ...contractMap.periphery };\n const deployment = standardDeploymentResolver({\n ...baseParams,\n contractMap: mergedContracts,\n }) as Sablier.EVM.Deployment.LockupV1;\n\n // Add separated core and periphery contracts\n deployment.core = contractMapper(contractMap.core, baseParams);\n deployment.periphery = contractMapper(contractMap.periphery, baseParams);\n\n return deployment;\n}\n\n/* -------------------------------------------------------------------------- */\n/* RESOLVERS */\n/* -------------------------------------------------------------------------- */\n\nexport const resolvers = {\n deployment: {\n /**\n * Creates a LockupV1 deployment with separate core and periphery contracts\n */\n lockupV1: (params: DeploymentLockupV1Params): Sablier.EVM.Deployment.LockupV1 => {\n return createLockupV1Deployment(params);\n },\n\n /**\n * Creates a standard deployment with all contracts in a single array\n */\n standard: (params: DeploymentStandardParams): Sablier.EVM.Deployment => {\n return standardDeploymentResolver(params);\n },\n },\n\n release: {\n /**\n * Creates a LockupV1 release with contract names extracted from manifest\n */\n lockupV1: <\n TAbiMap extends Sablier.EVM.AbiMap,\n TVersion extends EvmReleaseVersionByProtocol[LockupProtocol],\n >(\n params: ReleaseParams<LockupV1Release<TAbiMap>> & {\n protocol: LockupProtocol;\n version: TVersion;\n }\n ): LockupV1Release<TAbiMap> => {\n return {\n ...params,\n contractNames: getNestedValues(params.manifest),\n features: getEvmReleaseFeatures<LockupProtocol>(params.protocol, params.version),\n kind: \"lockupV1\",\n };\n },\n\n /**\n * Creates a standard release with contract names extracted from manifest\n */\n standard: <\n TProtocol extends keyof EvmReleaseVersionByProtocol,\n TAbiMap extends Sablier.EVM.AbiMap,\n TVersion extends EvmReleaseVersionByProtocol[TProtocol],\n >(\n params: ReleaseParams<StandardRelease<TProtocol, TAbiMap>> & {\n protocol: TProtocol;\n version: TVersion;\n }\n ): StandardRelease<TProtocol, TAbiMap> => {\n return {\n ...params,\n contractNames: getNestedValues(params.manifest),\n features: getEvmReleaseFeatures<TProtocol>(params.protocol, params.version),\n kind: \"standard\",\n };\n },\n },\n};\n"]}
1
+ {"version":3,"file":"resolvers.js","sourceRoot":"","sources":["../../../../src/evm/releases/resolvers.ts"],"names":[],"mappings":";;;AAAA,4DAA4D;AAC5D,sEAG8C;AAC9C,4EAAwE;AAIxE,+CAAsD;AA0CtD,MAAM,cAAc,GAAG,IAAA,kCAAoB,EAKzC,0BAAa,CAAC,CAAC;AAEjB,MAAM,0BAA0B,GAAG,IAAA,8CAAgC,EAMjE,cAAc,EAAE,WAAW,CAAC,CAAC;AAS/B,SAAS,wBAAwB,CAC/B,MAAgC;IAEhC,MAAM,EAAE,WAAW,EAAE,GAAG,UAAU,EAAE,GAAG,MAAM,CAAC;IAG9C,MAAM,eAAe,GAAG,EAAE,GAAG,WAAW,CAAC,IAAI,EAAE,GAAG,WAAW,CAAC,SAAS,EAAE,CAAC;IAC1E,MAAM,UAAU,GAAG,0BAA0B,CAAC;QAC5C,GAAG,UAAU;QACb,WAAW,EAAE,eAAe;KAC7B,CAAoC,CAAC;IAGtC,UAAU,CAAC,IAAI,GAAG,cAAc,CAAC,WAAW,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;IAC/D,UAAU,CAAC,SAAS,GAAG,cAAc,CAAC,WAAW,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAEzE,OAAO,UAAU,CAAC;AACpB,CAAC;AAMY,QAAA,SAAS,GAAG;IACvB,UAAU,EAAE;QAIV,QAAQ,EAAE,CAAC,MAAgC,EAAmC,EAAE,CAC9E,wBAAwB,CAAC,MAAM,CAAC;QAKlC,QAAQ,EAAE,CAAC,MAAgC,EAA0B,EAAE,CACrE,0BAA0B,CAAC,MAAM,CAAC;KACrC;IAED,OAAO,EAAE;QAIP,QAAQ,EAAE,CAIR,MAGC,EACyB,EAAE,CAAC,CAAC;YAC9B,GAAG,MAAM;YACT,aAAa,EAAE,IAAA,kCAAe,EAAC,MAAM,CAAC,QAAQ,CAAC;YAC/C,QAAQ,EAAE,IAAA,mCAAqB,EAAiB,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC;YAChF,IAAI,EAAE,UAAU;SACjB,CAAC;QAKF,QAAQ,EAAE,CAKR,MAGC,EACoC,EAAE,CAAC,CAAC;YACzC,GAAG,MAAM;YACT,aAAa,EAAE,IAAA,kCAAe,EAAC,MAAM,CAAC,QAAQ,CAAC;YAC/C,QAAQ,EAAE,IAAA,mCAAqB,EAAY,MAAM,CAAC,QAAQ,EAAE,MAAM,CAAC,OAAO,CAAC;YAC3E,IAAI,EAAE,UAAU;SACjB,CAAC;KACH;CACF,CAAC","sourcesContent":["import { chainsQueries } from \"@/src/evm/chains/queries.js\";\nimport {\n createContractMapper,\n createStandardDeploymentResolver,\n} from \"@/src/internal/factories/resolver.js\";\nimport { getNestedValues } from \"@/src/internal/utils/nested-values.js\";\nimport type { AliasMap } from \"@/src/shared/types.js\";\nimport type { Sablier } from \"@/src/types.js\";\nimport type { EvmReleaseVersionByProtocol, ReleaseFeaturesForProtocol } from \"./features.js\";\nimport { getEvmReleaseFeatures } from \"./features.js\";\n\n/* -------------------------------------------------------------------------- */\n/* TYPES */\n/* -------------------------------------------------------------------------- */\n\ntype DeploymentBaseParams = {\n protocol: Sablier.EVM.Protocol;\n version: Sablier.EVM.Version;\n chainId: number;\n aliasMap: AliasMap;\n};\n\ntype DeploymentLockupV1Params = DeploymentBaseParams & {\n contractMap: {\n core: Sablier.EVM.ContractMap;\n periphery: Sablier.EVM.ContractMap;\n };\n};\n\ntype DeploymentStandardParams = DeploymentBaseParams & {\n contractMap: Sablier.EVM.ContractMap;\n};\n\ntype ReleaseParams<T> = Omit<T, \"kind\" | \"contractNames\" | \"features\" | \"protocol\" | \"version\">;\n\ntype StandardRelease<\n TProtocol extends keyof EvmReleaseVersionByProtocol,\n TAbiMap extends Sablier.EVM.AbiMap,\n> = Sablier.EVM.Release.Standard<TAbiMap, ReleaseFeaturesForProtocol<TProtocol>>;\n\ntype LockupProtocol = Extract<keyof EvmReleaseVersionByProtocol, \"lockup\">;\n\ntype LockupV1Release<TAbiMap extends Sablier.EVM.AbiMap> = Sablier.EVM.Release.LockupV1<\n TAbiMap,\n ReleaseFeaturesForProtocol<LockupProtocol>\n>;\n\n/* -------------------------------------------------------------------------- */\n/* PLATFORM SETUP */\n/* -------------------------------------------------------------------------- */\n\nconst contractMapper = createContractMapper<\n Sablier.EVM.Contract,\n Sablier.EVM.Protocol,\n Sablier.EVM.Version,\n Sablier.EVM.Address\n>(chainsQueries);\n\nconst standardDeploymentResolver = createStandardDeploymentResolver<\n Sablier.EVM.Deployment,\n Sablier.EVM.Contract,\n Sablier.EVM.Protocol,\n Sablier.EVM.Version,\n Sablier.EVM.Address\n>(contractMapper, \"contracts\");\n\n/* -------------------------------------------------------------------------- */\n/* EVM-SPECIFIC RESOLVERS */\n/* -------------------------------------------------------------------------- */\n\n/**\n * Creates a LockupV1 deployment with separate core and periphery contracts\n */\nfunction createLockupV1Deployment(\n params: DeploymentLockupV1Params\n): Sablier.EVM.Deployment.LockupV1 {\n const { contractMap, ...baseParams } = params;\n\n // Create standard deployment with merged contracts\n const mergedContracts = { ...contractMap.core, ...contractMap.periphery };\n const deployment = standardDeploymentResolver({\n ...baseParams,\n contractMap: mergedContracts,\n }) as Sablier.EVM.Deployment.LockupV1;\n\n // Add separated core and periphery contracts\n deployment.core = contractMapper(contractMap.core, baseParams);\n deployment.periphery = contractMapper(contractMap.periphery, baseParams);\n\n return deployment;\n}\n\n/* -------------------------------------------------------------------------- */\n/* RESOLVERS */\n/* -------------------------------------------------------------------------- */\n\nexport const resolvers = {\n deployment: {\n /**\n * Creates a LockupV1 deployment with separate core and periphery contracts\n */\n lockupV1: (params: DeploymentLockupV1Params): Sablier.EVM.Deployment.LockupV1 =>\n createLockupV1Deployment(params),\n\n /**\n * Creates a standard deployment with all contracts in a single array\n */\n standard: (params: DeploymentStandardParams): Sablier.EVM.Deployment =>\n standardDeploymentResolver(params),\n },\n\n release: {\n /**\n * Creates a LockupV1 release with contract names extracted from manifest\n */\n lockupV1: <\n TAbiMap extends Sablier.EVM.AbiMap,\n TVersion extends EvmReleaseVersionByProtocol[LockupProtocol],\n >(\n params: ReleaseParams<LockupV1Release<TAbiMap>> & {\n protocol: LockupProtocol;\n version: TVersion;\n }\n ): LockupV1Release<TAbiMap> => ({\n ...params,\n contractNames: getNestedValues(params.manifest),\n features: getEvmReleaseFeatures<LockupProtocol>(params.protocol, params.version),\n kind: \"lockupV1\",\n }),\n\n /**\n * Creates a standard release with contract names extracted from manifest\n */\n standard: <\n TProtocol extends keyof EvmReleaseVersionByProtocol,\n TAbiMap extends Sablier.EVM.AbiMap,\n TVersion extends EvmReleaseVersionByProtocol[TProtocol],\n >(\n params: ReleaseParams<StandardRelease<TProtocol, TAbiMap>> & {\n protocol: TProtocol;\n version: TVersion;\n }\n ): StandardRelease<TProtocol, TAbiMap> => ({\n ...params,\n contractNames: getNestedValues(params.manifest),\n features: getEvmReleaseFeatures<TProtocol>(params.protocol, params.version),\n kind: \"standard\",\n }),\n },\n};\n"]}
@@ -5,18 +5,10 @@ const sort_chains_js_1 = require("../../internal/utils/sort-chains.js");
5
5
  function createChainQueries(chains) {
6
6
  const chainValues = Object.values(chains);
7
7
  return {
8
- get: (chainId) => {
9
- return chainValues.find((c) => c.id === chainId);
10
- },
11
- getAll: () => {
12
- return (0, sort_chains_js_1.sortChains)(chainValues);
13
- },
14
- getBySlug: (slug) => {
15
- return chainValues.find((c) => c.slug === slug);
16
- },
17
- getMainnets: () => {
18
- return (0, sort_chains_js_1.sortChains)(chainValues.filter((c) => !c.isTestnet));
19
- },
8
+ get: (chainId) => chainValues.find((c) => c.id === chainId),
9
+ getAll: () => (0, sort_chains_js_1.sortChains)(chainValues),
10
+ getBySlug: (slug) => chainValues.find((c) => c.slug === slug),
11
+ getMainnets: () => (0, sort_chains_js_1.sortChains)(chainValues.filter((c) => !c.isTestnet)),
20
12
  getOrThrow: (chainId) => {
21
13
  const chain = chainValues.find((c) => c.id === chainId);
22
14
  if (!chain) {
@@ -24,9 +16,7 @@ function createChainQueries(chains) {
24
16
  }
25
17
  return chain;
26
18
  },
27
- getTestnets: () => {
28
- return (0, sort_chains_js_1.sortChains)(chainValues.filter((c) => c.isTestnet));
29
- },
19
+ getTestnets: () => (0, sort_chains_js_1.sortChains)(chainValues.filter((c) => c.isTestnet)),
30
20
  };
31
21
  }
32
22
  //# sourceMappingURL=chains.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"chains.js","sourceRoot":"","sources":["../../../../src/internal/factories/chains.ts"],"names":[],"mappings":";;AAgBA,gDAkEC;AAlFD,wEAAiE;AAgBjE,SAAgB,kBAAkB,CAAyB,MAAyB;IAClF,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE1C,OAAO;QAOL,GAAG,EAAE,CAAC,OAAe,EAAiB,EAAE;YACtC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;QACnD,CAAC;QAOD,MAAM,EAAE,GAAQ,EAAE;YAChB,OAAO,IAAA,2BAAU,EAAC,WAAW,CAAC,CAAC;QACjC,CAAC;QAQD,SAAS,EAAE,CAAC,IAAY,EAAiB,EAAE;YACzC,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;QAClD,CAAC;QAOD,WAAW,EAAE,GAAQ,EAAE;YACrB,OAAO,IAAA,2BAAU,EAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAC7D,CAAC;QASD,UAAU,EAAE,CAAC,OAAe,EAAK,EAAE;YACjC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;YACxD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,YAAY,CAAC,CAAC;YACrE,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAOD,WAAW,EAAE,GAAQ,EAAE;YACrB,OAAO,IAAA,2BAAU,EAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAC5D,CAAC;KACF,CAAC;AACJ,CAAC","sourcesContent":["import { sortChains } from \"@/src/internal/utils/sort-chains.js\";\nimport type { Shared } from \"@/src/shared/types.js\";\n\n/**\n * Generic factory function to create type-safe chain query objects.\n *\n * @template T - Chain type extending ChainCommon constraint\n * @param chains - Record of chain definitions keyed by chain identifier\n * @returns Query object with type-safe methods for chain operations\n *\n * @example\n * ```typescript\n * const evmQueries = createChainQueries<Sablier.EVM.Chain>(evmChains);\n * const solanaQueries = createChainQueries<Sablier.Solana.Chain>(solanaChains);\n * ```\n */\nexport function createChainQueries<T extends Shared.Chain>(chains: Record<string, T>) {\n const chainValues = Object.values(chains);\n\n return {\n /**\n * Find a chain by its numeric ID.\n *\n * @param chainId - The numeric chain identifier\n * @returns The chain if found, undefined otherwise\n */\n get: (chainId: number): T | undefined => {\n return chainValues.find((c) => c.id === chainId);\n },\n\n /**\n * Get all chains sorted by name.\n *\n * @returns Array of all chains sorted alphabetically\n */\n getAll: (): T[] => {\n return sortChains(chainValues);\n },\n\n /**\n * Find a chain by its slug identifier.\n *\n * @param slug - The chain slug (e.g., \"ethereum\", \"solana-mainnet\")\n * @returns The chain if found, undefined otherwise\n */\n getBySlug: (slug: string): T | undefined => {\n return chainValues.find((c) => c.slug === slug);\n },\n\n /**\n * Get all mainnet chains sorted by name.\n *\n * @returns Array of mainnet chains sorted alphabetically\n */\n getMainnets: (): T[] => {\n return sortChains(chainValues.filter((c) => !c.isTestnet));\n },\n\n /**\n * Find a chain by its numeric ID, throwing an error if not found.\n *\n * @param chainId - The numeric chain identifier\n * @returns The chain\n * @throws Error if chain with the given ID is not found\n */\n getOrThrow: (chainId: number): T => {\n const chain = chainValues.find((c) => c.id === chainId);\n if (!chain) {\n throw new Error(`Sablier SDK: Chain with ID ${chainId} not found`);\n }\n return chain;\n },\n\n /**\n * Get all testnet chains sorted by name.\n *\n * @returns Array of testnet chains sorted alphabetically\n */\n getTestnets: (): T[] => {\n return sortChains(chainValues.filter((c) => c.isTestnet));\n },\n };\n}\n"]}
1
+ {"version":3,"file":"chains.js","sourceRoot":"","sources":["../../../../src/internal/factories/chains.ts"],"names":[],"mappings":";;AAgBA,gDAwDC;AAxED,wEAAiE;AAgBjE,SAAgB,kBAAkB,CAAyB,MAAyB;IAClF,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;IAE1C,OAAO;QAOL,GAAG,EAAE,CAAC,OAAe,EAAiB,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC;QAOlF,MAAM,EAAE,GAAQ,EAAE,CAAC,IAAA,2BAAU,EAAC,WAAW,CAAC;QAQ1C,SAAS,EAAE,CAAC,IAAY,EAAiB,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;QAOpF,WAAW,EAAE,GAAQ,EAAE,CAAC,IAAA,2BAAU,EAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAS3E,UAAU,EAAE,CAAC,OAAe,EAAK,EAAE;YACjC,MAAM,KAAK,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;YACxD,IAAI,CAAC,KAAK,EAAE,CAAC;gBACX,MAAM,IAAI,KAAK,CAAC,8BAA8B,OAAO,YAAY,CAAC,CAAC;YACrE,CAAC;YACD,OAAO,KAAK,CAAC;QACf,CAAC;QAOD,WAAW,EAAE,GAAQ,EAAE,CAAC,IAAA,2BAAU,EAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;KAC3E,CAAC;AACJ,CAAC","sourcesContent":["import { sortChains } from \"@/src/internal/utils/sort-chains.js\";\nimport type { Shared } from \"@/src/shared/types.js\";\n\n/**\n * Generic factory function to create type-safe chain query objects.\n *\n * @template T - Chain type extending ChainCommon constraint\n * @param chains - Record of chain definitions keyed by chain identifier\n * @returns Query object with type-safe methods for chain operations\n *\n * @example\n * ```typescript\n * const evmQueries = createChainQueries<Sablier.EVM.Chain>(evmChains);\n * const solanaQueries = createChainQueries<Sablier.Solana.Chain>(solanaChains);\n * ```\n */\nexport function createChainQueries<T extends Shared.Chain>(chains: Record<string, T>) {\n const chainValues = Object.values(chains);\n\n return {\n /**\n * Find a chain by its numeric ID.\n *\n * @param chainId - The numeric chain identifier\n * @returns The chain if found, undefined otherwise\n */\n get: (chainId: number): T | undefined => chainValues.find((c) => c.id === chainId),\n\n /**\n * Get all chains sorted by name.\n *\n * @returns Array of all chains sorted alphabetically\n */\n getAll: (): T[] => sortChains(chainValues),\n\n /**\n * Find a chain by its slug identifier.\n *\n * @param slug - The chain slug (e.g., \"ethereum\", \"solana-mainnet\")\n * @returns The chain if found, undefined otherwise\n */\n getBySlug: (slug: string): T | undefined => chainValues.find((c) => c.slug === slug),\n\n /**\n * Get all mainnet chains sorted by name.\n *\n * @returns Array of mainnet chains sorted alphabetically\n */\n getMainnets: (): T[] => sortChains(chainValues.filter((c) => !c.isTestnet)),\n\n /**\n * Find a chain by its numeric ID, throwing an error if not found.\n *\n * @param chainId - The numeric chain identifier\n * @returns The chain\n * @throws Error if chain with the given ID is not found\n */\n getOrThrow: (chainId: number): T => {\n const chain = chainValues.find((c) => c.id === chainId);\n if (!chain) {\n throw new Error(`Sablier SDK: Chain with ID ${chainId} not found`);\n }\n return chain;\n },\n\n /**\n * Get all testnet chains sorted by name.\n *\n * @returns Array of testnet chains sorted alphabetically\n */\n getTestnets: (): T[] => sortChains(chainValues.filter((c) => c.isTestnet)),\n };\n}\n"]}
@@ -47,15 +47,9 @@ function createContractsQueries(config) {
47
47
  const dep = release.deployments.find((d) => d.chainId === chainId);
48
48
  return getItems(dep);
49
49
  };
50
- const findByName = (release, chainId, name) => {
51
- return getDeploymentItems(release, chainId).find((c) => c.name === name);
52
- };
53
- const findByAddress = (release, chainId, address) => {
54
- return getDeploymentItems(release, chainId).find((c) => normalizeAddress(c.address) === address);
55
- };
56
- const releaseHasAddress = (release, chainId, address) => {
57
- return getDeploymentItems(release, chainId).some((c) => normalizeAddress(c.address) === address);
58
- };
50
+ const findByName = (release, chainId, name) => getDeploymentItems(release, chainId).find((c) => c.name === name);
51
+ const findByAddress = (release, chainId, address) => getDeploymentItems(release, chainId).find((c) => normalizeAddress(c.address) === address);
52
+ const releaseHasAddress = (release, chainId, address) => getDeploymentItems(release, chainId).some((c) => normalizeAddress(c.address) === address);
59
53
  const searchCatalog = (chainId, address) => {
60
54
  for (const p of protocols) {
61
55
  const contract = (0, object_path_js_1.getPath)(catalog, [p, chainId, address]);
@@ -1 +1 @@
1
- {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../../src/internal/factories/queries.ts"],"names":[],"mappings":"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","sourcesContent":["import { getPath } from \"@/src/internal/utils/object-path.js\";\n\n/**\n * Factory function to create releases queries with platform-specific configuration.\n * This eliminates code duplication between EVM and Solana implementations.\n */\nexport function createReleasesQueries<\n TProtocol extends string,\n TVersion extends string,\n TRelease extends {\n version: TVersion;\n deployments: Array<{ chainId: number }>;\n isLatest?: boolean;\n },\n>(config: {\n releases: Record<TProtocol, Record<string, TRelease>>;\n ProtocolEnum: Record<string, TProtocol>;\n}) {\n const { releases, ProtocolEnum } = config;\n\n return {\n get: (opts: { protocol: TProtocol; version: TVersion }): TRelease | undefined => {\n const { protocol, version } = opts;\n return getPath<TRelease>(releases, [protocol, version]);\n },\n /**\n * Get all releases for a protocol.\n * - {} ⇒ all releases for all protocols\n * - {protocol} ⇒ all releases for that protocol\n */\n getAll: (opts?: { protocol?: TProtocol }): TRelease[] => {\n const { protocol } = opts || {};\n if (protocol) {\n return Object.values(releases[protocol]) as TRelease[];\n }\n // Recursively get all releases from all protocols in the enum\n return Object.values(ProtocolEnum).flatMap((protocolName) =>\n Object.values(releases[protocolName])\n ) as TRelease[];\n },\n /**\n * Get the first release:\n * - {protocol} ⇒ first overall\n * - {protocol,chainId} ⇒ first on that chain\n */\n getFirst: (opts: { protocol: TProtocol; chainId?: number }): TRelease | undefined => {\n const { protocol, chainId } = opts;\n const list = Object.values(releases[protocol]) as TRelease[];\n\n if (chainId) {\n return list.find((r) => r.deployments.some((d) => d.chainId === chainId));\n }\n\n return list[0];\n },\n /**\n * Get the latest release for a protocol.\n * - {protocol}\n */\n getLatest: (opts: { protocol: TProtocol }): TRelease => {\n const list = Object.values(releases[opts.protocol]) as TRelease[];\n const latest = list.at(-1);\n if (!latest?.isLatest) {\n throw new Error(\n `Sablier SDK: No latest release found for Sablier ${opts.protocol}. Please report on GitHub.`\n );\n }\n return latest;\n },\n };\n}\n\n/**\n * Factory function to create contract queries with platform-specific configuration.\n * This eliminates code duplication between EVM and Solana implementations.\n *\n * @template TProtocol - The protocol type\n * @template TContract - The contract/program type with name and address fields\n * @template TDeployment - The deployment type containing contracts or programs\n * @template TRelease - The release type\n * @template TCatalog - The catalog type for reverse lookups\n * @template TAliasCatalog - The alias catalog type for alias-based lookups\n */\nexport function createContractsQueries<\n TProtocol extends string,\n TContract extends { name: string; address: string; alias?: string },\n TDeployment extends { chainId: number; contracts?: TContract[]; programs?: TContract[] },\n TRelease extends { version: string; deployments: TDeployment[] },\n TCatalog,\n TAliasCatalog = undefined,\n>(config: {\n getAliasCatalog?: () => TAliasCatalog;\n catalog: TCatalog;\n releasesQueries: {\n getAll: (opts?: { protocol?: TProtocol }) => TRelease[];\n getLatest: (opts: { protocol: TProtocol }) => TRelease;\n };\n protocols: TProtocol[];\n normalizeAddress: (address: string) => string;\n /** Field name for contracts (e.g., 'contracts' for EVM, 'programs' for Solana) */\n contractsField: \"contracts\" | \"programs\";\n}) {\n const { getAliasCatalog, catalog, releasesQueries, protocols, normalizeAddress, contractsField } =\n config;\n\n // Helper to safely get contracts/programs from deployment\n const getItems = (deployment: TDeployment | undefined): TContract[] => {\n if (!deployment) {\n return [];\n }\n return (deployment[contractsField] as TContract[]) || [];\n };\n\n // Helper to find deployment by chainId and get its contracts\n const getDeploymentItems = (release: TRelease, chainId: number): TContract[] => {\n const dep = release.deployments.find((d) => d.chainId === chainId) as TDeployment | undefined;\n return getItems(dep);\n };\n\n // Helper to find contract by name in a release\n const findByName = (release: TRelease, chainId: number, name: string): TContract | undefined => {\n return getDeploymentItems(release, chainId).find((c) => c.name === name);\n };\n\n // Helper to find contract by address in a release\n const findByAddress = (\n release: TRelease,\n chainId: number,\n address: string\n ): TContract | undefined => {\n return getDeploymentItems(release, chainId).find(\n (c) => normalizeAddress(c.address) === address\n );\n };\n\n // Helper to check if release contains address on chain\n const releaseHasAddress = (release: TRelease, chainId: number, address: string): boolean => {\n return getDeploymentItems(release, chainId).some(\n (c) => normalizeAddress(c.address) === address\n );\n };\n\n // Helper to search catalog across all protocols\n const searchCatalog = (chainId: number, address: string): TContract | undefined => {\n for (const p of protocols) {\n const contract = getPath<TContract>(catalog, [p, chainId, address]);\n if (contract) {\n return contract;\n }\n }\n return undefined;\n };\n\n // Helper to find contract by address scoped to protocol (with duplicate check)\n const findByAddressInProtocol = (\n protocol: TProtocol,\n chainId: number,\n address: string,\n originalAddress: string\n ): TContract | undefined => {\n const releases = releasesQueries.getAll({ protocol });\n const matches = releases.filter((rel) => releaseHasAddress(rel, chainId, address));\n\n if (matches.length > 1) {\n const versions = matches.map((r) => r.version).join(\", \");\n throw new Error(\n `Sablier SDK: Contract ${originalAddress} exists in multiple releases (${versions}) for \"${protocol}\". ` +\n \"Specify release: { chainId, contractAddress, release }\"\n );\n }\n\n return getPath<TContract>(catalog, [protocol, chainId, address]);\n };\n\n // Helper to filter deployments by chainId and extract contracts\n const filterDeploymentsAndGetItems = (\n deployments: TDeployment[],\n chainId?: number\n ): TContract[] | undefined => {\n const filtered = chainId ? deployments.filter((d) => d.chainId === chainId) : deployments;\n if (chainId && filtered.length === 0) {\n return undefined;\n }\n return filtered.flatMap(getItems);\n };\n\n return {\n /**\n * Get a single contract using the following options:\n *\n * - { chainId, contractName, release }\n * - { chainId, contractAddress, protocol }\n * - { chainId, contractAddress, release }\n * - { chainId, contractAddress, protocol, release }\n *\n * Note: If a contract address exists in multiple releases for the same protocol, you must specify the release.\n */\n get: (opts: {\n chainId: number;\n contractAddress?: string;\n contractName?: string;\n protocol?: TProtocol;\n release?: TRelease;\n }): TContract | undefined => {\n const { chainId, contractAddress, contractName, protocol, release } = opts;\n\n // Validation\n if (contractAddress && contractName) {\n throw new Error(\"Sablier SDK: Cannot specify both contractAddress and contractName\");\n }\n\n // Query by name requires release\n if (contractName) {\n if (!release) {\n throw new Error(\"Sablier SDK: contractName requires release to be specified\");\n }\n return findByName(release, chainId, contractName);\n }\n\n // Query by address\n if (!contractAddress) {\n return undefined;\n }\n\n const address = normalizeAddress(contractAddress);\n\n // Scoped to specific release\n if (release) {\n return findByAddress(release, chainId, address);\n }\n\n // Scoped to protocol - check for duplicates across releases\n if (protocol) {\n return findByAddressInProtocol(protocol, chainId, address, contractAddress);\n }\n\n // Fallback: search all protocols\n return searchCatalog(chainId, address);\n },\n\n /**\n * Get many contracts.\n * - no options ⇒ all\n * - { chainId } ⇒ all for that chain\n * - { protocol } ⇒ all for that protocol\n * - { protocol, chainId } ⇒ all for that protocol and chain\n * - { release } ⇒ all deployments of that release\n * - { release, chainId } ⇒ all for that release and chain\n */\n getAll: (opts?: {\n chainId?: number;\n protocol?: TProtocol;\n release?: TRelease;\n }): TContract[] | undefined => {\n const { protocol, chainId, release } = opts || {};\n\n if (protocol && release) {\n throw new Error(\"Sablier SDK: Cannot specify both protocol and release as query options\");\n }\n\n // by protocol\n if (protocol) {\n const releases = releasesQueries.getAll({ protocol });\n const deployments = releases.flatMap((r) => r.deployments);\n return filterDeploymentsAndGetItems(deployments, chainId);\n }\n\n // by explicit release\n if (release) {\n return filterDeploymentsAndGetItems(release.deployments, chainId);\n }\n\n // by chain id or no filters\n const deployments = releasesQueries.getAll().flatMap((r) => r.deployments);\n return filterDeploymentsAndGetItems(deployments, chainId);\n },\n\n /**\n * Get a contract by its alias.\n * Aliases are version-specific (e.g., LK = Lockup v2.0, LK2 = Lockup v3.0, LK3 = Lockup v4.0).\n *\n * @example\n * contractsQueries.getByAlias({ alias: \"LK2\", chainId: 1 })\n * contractsQueries.getByAlias({ alias: \"FL3\", chainId: 137, protocol: \"flow\" })\n */\n getByAlias: (opts: {\n alias: string;\n chainId: number;\n protocol?: TProtocol;\n }): TContract | undefined => {\n const { alias, chainId, protocol } = opts;\n\n if (!getAliasCatalog) {\n return undefined;\n }\n\n const aliasCatalog = getAliasCatalog();\n if (!aliasCatalog) {\n return undefined;\n }\n\n if (protocol) {\n return getPath<TContract>(aliasCatalog, [protocol, chainId, alias]);\n }\n\n // Search all protocols\n for (const p of protocols) {\n const contract = getPath<TContract>(aliasCatalog, [p, chainId, alias]);\n if (contract) {\n return contract;\n }\n }\n return undefined;\n },\n\n /**\n * Get the latest contract by name for a protocol.\n * - { chainId, contractName, protocol }\n */\n getLatestByName: (opts: {\n chainId: number;\n contractName: string;\n protocol: TProtocol;\n }): TContract | undefined => {\n const { chainId, contractName, protocol } = opts;\n const release = releasesQueries.getLatest({ protocol });\n const dep = release.deployments.find((d) => d.chainId === chainId) as TDeployment | undefined;\n const items = getItems(dep);\n return items.find((c) => c.name === contractName);\n },\n };\n}\n"]}
1
+ {"version":3,"file":"queries.js","sourceRoot":"","sources":["../../../../src/internal/factories/queries.ts"],"names":[],"mappings":"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","sourcesContent":["import { getPath } from \"@/src/internal/utils/object-path.js\";\n\n/**\n * Factory function to create releases queries with platform-specific configuration.\n * This eliminates code duplication between EVM and Solana implementations.\n */\nexport function createReleasesQueries<\n TProtocol extends string,\n TVersion extends string,\n TRelease extends {\n version: TVersion;\n deployments: Array<{ chainId: number }>;\n isLatest?: boolean;\n },\n>(config: {\n releases: Record<TProtocol, Record<string, TRelease>>;\n ProtocolEnum: Record<string, TProtocol>;\n}) {\n const { releases, ProtocolEnum } = config;\n\n return {\n get: (opts: { protocol: TProtocol; version: TVersion }): TRelease | undefined => {\n const { protocol, version } = opts;\n return getPath<TRelease>(releases, [protocol, version]);\n },\n /**\n * Get all releases for a protocol.\n * - {} ⇒ all releases for all protocols\n * - {protocol} ⇒ all releases for that protocol\n */\n getAll: (opts?: { protocol?: TProtocol }): TRelease[] => {\n const { protocol } = opts || {};\n if (protocol) {\n return Object.values(releases[protocol]) as TRelease[];\n }\n // Recursively get all releases from all protocols in the enum\n return Object.values(ProtocolEnum).flatMap((protocolName) =>\n Object.values(releases[protocolName])\n ) as TRelease[];\n },\n /**\n * Get the first release:\n * - {protocol} ⇒ first overall\n * - {protocol,chainId} ⇒ first on that chain\n */\n getFirst: (opts: { protocol: TProtocol; chainId?: number }): TRelease | undefined => {\n const { protocol, chainId } = opts;\n const list = Object.values(releases[protocol]) as TRelease[];\n\n if (chainId) {\n return list.find((r) => r.deployments.some((d) => d.chainId === chainId));\n }\n\n return list[0];\n },\n /**\n * Get the latest release for a protocol.\n * - {protocol}\n */\n getLatest: (opts: { protocol: TProtocol }): TRelease => {\n const list = Object.values(releases[opts.protocol]) as TRelease[];\n const latest = list.at(-1);\n if (!latest?.isLatest) {\n throw new Error(\n `Sablier SDK: No latest release found for Sablier ${opts.protocol}. Please report on GitHub.`\n );\n }\n return latest;\n },\n };\n}\n\n/**\n * Factory function to create contract queries with platform-specific configuration.\n * This eliminates code duplication between EVM and Solana implementations.\n *\n * @template TProtocol - The protocol type\n * @template TContract - The contract/program type with name and address fields\n * @template TDeployment - The deployment type containing contracts or programs\n * @template TRelease - The release type\n * @template TCatalog - The catalog type for reverse lookups\n * @template TAliasCatalog - The alias catalog type for alias-based lookups\n */\nexport function createContractsQueries<\n TProtocol extends string,\n TContract extends { name: string; address: string; alias?: string },\n TDeployment extends { chainId: number; contracts?: TContract[]; programs?: TContract[] },\n TRelease extends { version: string; deployments: TDeployment[] },\n TCatalog,\n TAliasCatalog = undefined,\n>(config: {\n getAliasCatalog?: () => TAliasCatalog;\n catalog: TCatalog;\n releasesQueries: {\n getAll: (opts?: { protocol?: TProtocol }) => TRelease[];\n getLatest: (opts: { protocol: TProtocol }) => TRelease;\n };\n protocols: TProtocol[];\n normalizeAddress: (address: string) => string;\n /** Field name for contracts (e.g., 'contracts' for EVM, 'programs' for Solana) */\n contractsField: \"contracts\" | \"programs\";\n}) {\n const { getAliasCatalog, catalog, releasesQueries, protocols, normalizeAddress, contractsField } =\n config;\n\n // Helper to safely get contracts/programs from deployment\n const getItems = (deployment: TDeployment | undefined): TContract[] => {\n if (!deployment) {\n return [];\n }\n return (deployment[contractsField] as TContract[]) || [];\n };\n\n // Helper to find deployment by chainId and get its contracts\n const getDeploymentItems = (release: TRelease, chainId: number): TContract[] => {\n const dep = release.deployments.find((d) => d.chainId === chainId) as TDeployment | undefined;\n return getItems(dep);\n };\n\n // Helper to find contract by name in a release\n const findByName = (release: TRelease, chainId: number, name: string): TContract | undefined =>\n getDeploymentItems(release, chainId).find((c) => c.name === name);\n\n // Helper to find contract by address in a release\n const findByAddress = (\n release: TRelease,\n chainId: number,\n address: string\n ): TContract | undefined =>\n getDeploymentItems(release, chainId).find((c) => normalizeAddress(c.address) === address);\n\n // Helper to check if release contains address on chain\n const releaseHasAddress = (release: TRelease, chainId: number, address: string): boolean =>\n getDeploymentItems(release, chainId).some((c) => normalizeAddress(c.address) === address);\n\n // Helper to search catalog across all protocols\n const searchCatalog = (chainId: number, address: string): TContract | undefined => {\n for (const p of protocols) {\n const contract = getPath<TContract>(catalog, [p, chainId, address]);\n if (contract) {\n return contract;\n }\n }\n return undefined;\n };\n\n // Helper to find contract by address scoped to protocol (with duplicate check)\n const findByAddressInProtocol = (\n protocol: TProtocol,\n chainId: number,\n address: string,\n originalAddress: string\n ): TContract | undefined => {\n const releases = releasesQueries.getAll({ protocol });\n const matches = releases.filter((rel) => releaseHasAddress(rel, chainId, address));\n\n if (matches.length > 1) {\n const versions = matches.map((r) => r.version).join(\", \");\n throw new Error(\n `Sablier SDK: Contract ${originalAddress} exists in multiple releases (${versions}) for \"${protocol}\". ` +\n \"Specify release: { chainId, contractAddress, release }\"\n );\n }\n\n return getPath<TContract>(catalog, [protocol, chainId, address]);\n };\n\n // Helper to filter deployments by chainId and extract contracts\n const filterDeploymentsAndGetItems = (\n deployments: TDeployment[],\n chainId?: number\n ): TContract[] | undefined => {\n const filtered = chainId ? deployments.filter((d) => d.chainId === chainId) : deployments;\n if (chainId && filtered.length === 0) {\n return undefined;\n }\n return filtered.flatMap(getItems);\n };\n\n return {\n /**\n * Get a single contract using the following options:\n *\n * - { chainId, contractName, release }\n * - { chainId, contractAddress, protocol }\n * - { chainId, contractAddress, release }\n * - { chainId, contractAddress, protocol, release }\n *\n * Note: If a contract address exists in multiple releases for the same protocol, you must specify the release.\n */\n get: (opts: {\n chainId: number;\n contractAddress?: string;\n contractName?: string;\n protocol?: TProtocol;\n release?: TRelease;\n }): TContract | undefined => {\n const { chainId, contractAddress, contractName, protocol, release } = opts;\n\n // Validation\n if (contractAddress && contractName) {\n throw new Error(\"Sablier SDK: Cannot specify both contractAddress and contractName\");\n }\n\n // Query by name requires release\n if (contractName) {\n if (!release) {\n throw new Error(\"Sablier SDK: contractName requires release to be specified\");\n }\n return findByName(release, chainId, contractName);\n }\n\n // Query by address\n if (!contractAddress) {\n return undefined;\n }\n\n const address = normalizeAddress(contractAddress);\n\n // Scoped to specific release\n if (release) {\n return findByAddress(release, chainId, address);\n }\n\n // Scoped to protocol - check for duplicates across releases\n if (protocol) {\n return findByAddressInProtocol(protocol, chainId, address, contractAddress);\n }\n\n // Fallback: search all protocols\n return searchCatalog(chainId, address);\n },\n\n /**\n * Get many contracts.\n * - no options ⇒ all\n * - { chainId } ⇒ all for that chain\n * - { protocol } ⇒ all for that protocol\n * - { protocol, chainId } ⇒ all for that protocol and chain\n * - { release } ⇒ all deployments of that release\n * - { release, chainId } ⇒ all for that release and chain\n */\n getAll: (opts?: {\n chainId?: number;\n protocol?: TProtocol;\n release?: TRelease;\n }): TContract[] | undefined => {\n const { protocol, chainId, release } = opts || {};\n\n if (protocol && release) {\n throw new Error(\"Sablier SDK: Cannot specify both protocol and release as query options\");\n }\n\n // by protocol\n if (protocol) {\n const releases = releasesQueries.getAll({ protocol });\n const deployments = releases.flatMap((r) => r.deployments);\n return filterDeploymentsAndGetItems(deployments, chainId);\n }\n\n // by explicit release\n if (release) {\n return filterDeploymentsAndGetItems(release.deployments, chainId);\n }\n\n // by chain id or no filters\n const deployments = releasesQueries.getAll().flatMap((r) => r.deployments);\n return filterDeploymentsAndGetItems(deployments, chainId);\n },\n\n /**\n * Get a contract by its alias.\n * Aliases are version-specific (e.g., LK = Lockup v2.0, LK2 = Lockup v3.0, LK3 = Lockup v4.0).\n *\n * @example\n * contractsQueries.getByAlias({ alias: \"LK2\", chainId: 1 })\n * contractsQueries.getByAlias({ alias: \"FL3\", chainId: 137, protocol: \"flow\" })\n */\n getByAlias: (opts: {\n alias: string;\n chainId: number;\n protocol?: TProtocol;\n }): TContract | undefined => {\n const { alias, chainId, protocol } = opts;\n\n if (!getAliasCatalog) {\n return undefined;\n }\n\n const aliasCatalog = getAliasCatalog();\n if (!aliasCatalog) {\n return undefined;\n }\n\n if (protocol) {\n return getPath<TContract>(aliasCatalog, [protocol, chainId, alias]);\n }\n\n // Search all protocols\n for (const p of protocols) {\n const contract = getPath<TContract>(aliasCatalog, [p, chainId, alias]);\n if (contract) {\n return contract;\n }\n }\n return undefined;\n },\n\n /**\n * Get the latest contract by name for a protocol.\n * - { chainId, contractName, protocol }\n */\n getLatestByName: (opts: {\n chainId: number;\n contractName: string;\n protocol: TProtocol;\n }): TContract | undefined => {\n const { chainId, contractName, protocol } = opts;\n const release = releasesQueries.getLatest({ protocol });\n const dep = release.deployments.find((d) => d.chainId === chainId) as TDeployment | undefined;\n const items = getItems(dep);\n return items.find((c) => c.name === contractName);\n },\n };\n}\n"]}
@@ -5,7 +5,7 @@ exports.setPath = setPath;
5
5
  function getPath(obj, path) {
6
6
  let result = obj;
7
7
  for (const key of path) {
8
- if (result == null) {
8
+ if (result === null || result === undefined) {
9
9
  return undefined;
10
10
  }
11
11
  result = result[key];
@@ -17,9 +17,9 @@ function setPath(obj, path, value) {
17
17
  return obj;
18
18
  }
19
19
  let current = obj;
20
- for (let i = 0; i < path.length - 1; i++) {
20
+ for (let i = 0; i < path.length - 1; i += 1) {
21
21
  const key = path[i];
22
- if (current[key] == null) {
22
+ if (current[key] === null || current[key] === undefined) {
23
23
  current[key] = {};
24
24
  }
25
25
  current = current[key];