sablier 3.1.0 → 3.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/csv/evm/common.schema.json +5 -0
  3. package/csv/evm/lockup/duration/linearStepper.csv +3 -0
  4. package/csv/evm/lockup/duration/linearStepper.schema.json +22 -0
  5. package/csv/evm/lockup/range/linearStepper.csv +3 -0
  6. package/csv/evm/lockup/range/linearStepper.schema.json +25 -0
  7. package/dist/cjs/evm/csv/lockup/duration/index.js.map +1 -1
  8. package/dist/cjs/evm/csv/lockup/range/index.js.map +1 -1
  9. package/dist/cjs/shapes/airdrops.js +17 -10
  10. package/dist/cjs/shapes/airdrops.js.map +1 -1
  11. package/dist/cjs/shapes/{constants.js → contracts.js} +17 -10
  12. package/dist/cjs/shapes/contracts.js.map +1 -0
  13. package/dist/cjs/shapes/enums.js +1 -0
  14. package/dist/cjs/shapes/enums.js.map +1 -1
  15. package/dist/cjs/shapes/flow.js +2 -2
  16. package/dist/cjs/shapes/flow.js.map +1 -1
  17. package/dist/cjs/shapes/lockup/dynamic.js +9 -9
  18. package/dist/cjs/shapes/lockup/dynamic.js.map +1 -1
  19. package/dist/cjs/shapes/lockup/linear.js +12 -12
  20. package/dist/cjs/shapes/lockup/linear.js.map +1 -1
  21. package/dist/cjs/shapes/lockup/tranched.js +5 -5
  22. package/dist/cjs/shapes/lockup/tranched.js.map +1 -1
  23. package/dist/esm/evm/csv/lockup/duration/index.js.map +1 -1
  24. package/dist/esm/evm/csv/lockup/range/index.js.map +1 -1
  25. package/dist/esm/shapes/airdrops.js +17 -10
  26. package/dist/esm/shapes/airdrops.js.map +1 -1
  27. package/dist/esm/shapes/{constants.js → contracts.js} +16 -9
  28. package/dist/esm/shapes/contracts.js.map +1 -0
  29. package/dist/esm/shapes/enums.js +1 -0
  30. package/dist/esm/shapes/enums.js.map +1 -1
  31. package/dist/esm/shapes/flow.js +1 -1
  32. package/dist/esm/shapes/flow.js.map +1 -1
  33. package/dist/esm/shapes/lockup/dynamic.js +1 -1
  34. package/dist/esm/shapes/lockup/dynamic.js.map +1 -1
  35. package/dist/esm/shapes/lockup/linear.js +5 -5
  36. package/dist/esm/shapes/lockup/linear.js.map +1 -1
  37. package/dist/esm/shapes/lockup/tranched.js +1 -1
  38. package/dist/esm/shapes/lockup/tranched.js.map +1 -1
  39. package/dist/types/evm/csv/lockup/duration/index.d.ts +4 -1
  40. package/dist/types/evm/csv/lockup/duration/index.d.ts.map +1 -1
  41. package/dist/types/evm/csv/lockup/range/index.d.ts +4 -1
  42. package/dist/types/evm/csv/lockup/range/index.d.ts.map +1 -1
  43. package/dist/types/shapes/airdrops.d.ts +1 -0
  44. package/dist/types/shapes/airdrops.d.ts.map +1 -1
  45. package/dist/types/shapes/{constants.d.ts → contracts.d.ts} +14 -9
  46. package/dist/types/shapes/contracts.d.ts.map +1 -0
  47. package/dist/types/shapes/enums.d.ts +1 -0
  48. package/dist/types/shapes/enums.d.ts.map +1 -1
  49. package/dist/types/shapes/index.d.ts +1 -0
  50. package/dist/types/shapes/index.d.ts.map +1 -1
  51. package/package.json +1 -1
  52. package/dist/cjs/shapes/constants.js.map +0 -1
  53. package/dist/esm/shapes/constants.js.map +0 -1
  54. package/dist/types/shapes/constants.d.ts.map +0 -1
@@ -1,29 +1,29 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.tranchedBackweighted = exports.tranchedTimelock = exports.tranchedMonthly = exports.tranchedStepper = void 0;
4
- const constants_js_1 = require("../constants.js");
4
+ const contracts_js_1 = require("../contracts.js");
5
5
  const enums_js_1 = require("../enums.js");
6
6
  const types_js_1 = require("../types.js");
7
7
  exports.tranchedStepper = (0, types_js_1.defineLockupShape)(enums_js_1.Shape.Lockup.TranchedStepper, {
8
- evm: constants_js_1.LOCKUP_EVM_LT,
8
+ evm: contracts_js_1.LOCKUP_EVM_LT,
9
9
  hasPredictableGas: false,
10
10
  isDeprecated: true,
11
11
  name: "Tranched Stepper",
12
12
  });
13
13
  exports.tranchedMonthly = (0, types_js_1.defineLockupShape)(enums_js_1.Shape.Lockup.TranchedMonthly, {
14
- evm: constants_js_1.LOCKUP_EVM_LT,
14
+ evm: contracts_js_1.LOCKUP_EVM_LT,
15
15
  hasPredictableGas: false,
16
16
  isDeprecated: false,
17
17
  name: "Tranched Monthly",
18
18
  });
19
19
  exports.tranchedTimelock = (0, types_js_1.defineLockupShape)(enums_js_1.Shape.Lockup.TranchedTimelock, {
20
- evm: constants_js_1.LOCKUP_EVM_LT,
20
+ evm: contracts_js_1.LOCKUP_EVM_LT,
21
21
  hasPredictableGas: true,
22
22
  isDeprecated: false,
23
23
  name: "Tranched Timelock",
24
24
  });
25
25
  exports.tranchedBackweighted = (0, types_js_1.defineLockupShape)(enums_js_1.Shape.Lockup.TranchedBackweighted, {
26
- evm: constants_js_1.LOCKUP_EVM_LT,
26
+ evm: contracts_js_1.LOCKUP_EVM_LT,
27
27
  hasPredictableGas: false,
28
28
  isDeprecated: false,
29
29
  name: "Tranched Backweighted",
@@ -1 +1 @@
1
- {"version":3,"file":"tranched.js","sourceRoot":"","sources":["../../../../src/shapes/lockup/tranched.ts"],"names":[],"mappings":";;;AAUA,kDAAgD;AAChD,0CAAoC;AACpC,0CAAgD;AAUnC,QAAA,eAAe,GAAG,IAAA,4BAAiB,EAAC,gBAAK,CAAC,MAAM,CAAC,eAAe,EAAE;IAC7E,GAAG,EAAE,4BAAa;IAClB,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,IAAI;IAClB,IAAI,EAAE,kBAAkB;CACzB,CAAC,CAAC;AAMU,QAAA,eAAe,GAAG,IAAA,4BAAiB,EAAC,gBAAK,CAAC,MAAM,CAAC,eAAe,EAAE;IAC7E,GAAG,EAAE,4BAAa;IAClB,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,kBAAkB;CACzB,CAAC,CAAC;AAMU,QAAA,gBAAgB,GAAG,IAAA,4BAAiB,EAAC,gBAAK,CAAC,MAAM,CAAC,gBAAgB,EAAE;IAC/E,GAAG,EAAE,4BAAa;IAClB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,mBAAmB;CAC1B,CAAC,CAAC;AAMU,QAAA,oBAAoB,GAAG,IAAA,4BAAiB,EAAC,gBAAK,CAAC,MAAM,CAAC,oBAAoB,EAAE;IACvF,GAAG,EAAE,4BAAa;IAClB,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,uBAAuB;CAC9B,CAAC,CAAC","sourcesContent":["/**\n * Tranched-style lockup shapes.\n *\n * These shapes use the LockupTranched (LT) contract family with discrete\n * tranche-based unlocks.\n *\n * @remarks\n * LockupTranched was introduced in v1.2 (July 2024).\n */\n\nimport { LOCKUP_EVM_LT } from \"../constants.js\";\nimport { Shape } from \"../enums.js\";\nimport { defineLockupShape } from \"../types.js\";\n\n/**\n * Step-based vesting via tranches.\n * Tokens unlock in discrete steps at regular intervals.\n *\n * @remarks\n * Deprecated in favor of {@link linearStepper}, which uses LockupLinear with the\n * granularity feature introduced in Lockup v4.0.\n */\nexport const tranchedStepper = defineLockupShape(Shape.Lockup.TranchedStepper, {\n evm: LOCKUP_EVM_LT,\n hasPredictableGas: false,\n isDeprecated: true,\n name: \"Tranched Stepper\",\n});\n\n/**\n * Monthly vesting via tranches.\n * Tokens unlock monthly.\n */\nexport const tranchedMonthly = defineLockupShape(Shape.Lockup.TranchedMonthly, {\n evm: LOCKUP_EVM_LT,\n hasPredictableGas: false,\n isDeprecated: false,\n name: \"Tranched Monthly\",\n});\n\n/**\n * Tranched timelock.\n * All tokens unlock at a specific timestamp via a single tranche.\n */\nexport const tranchedTimelock = defineLockupShape(Shape.Lockup.TranchedTimelock, {\n evm: LOCKUP_EVM_LT,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Tranched Timelock\",\n});\n\n/**\n * Backweighted tranches.\n * Larger amounts unlock toward the end of the schedule.\n */\nexport const tranchedBackweighted = defineLockupShape(Shape.Lockup.TranchedBackweighted, {\n evm: LOCKUP_EVM_LT,\n hasPredictableGas: false,\n isDeprecated: false,\n name: \"Tranched Backweighted\",\n});\n"]}
1
+ {"version":3,"file":"tranched.js","sourceRoot":"","sources":["../../../../src/shapes/lockup/tranched.ts"],"names":[],"mappings":";;;AAUA,kDAAgD;AAChD,0CAAoC;AACpC,0CAAgD;AAUnC,QAAA,eAAe,GAAG,IAAA,4BAAiB,EAAC,gBAAK,CAAC,MAAM,CAAC,eAAe,EAAE;IAC7E,GAAG,EAAE,4BAAa;IAClB,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,IAAI;IAClB,IAAI,EAAE,kBAAkB;CACzB,CAAC,CAAC;AAMU,QAAA,eAAe,GAAG,IAAA,4BAAiB,EAAC,gBAAK,CAAC,MAAM,CAAC,eAAe,EAAE;IAC7E,GAAG,EAAE,4BAAa;IAClB,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,kBAAkB;CACzB,CAAC,CAAC;AAMU,QAAA,gBAAgB,GAAG,IAAA,4BAAiB,EAAC,gBAAK,CAAC,MAAM,CAAC,gBAAgB,EAAE;IAC/E,GAAG,EAAE,4BAAa;IAClB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,mBAAmB;CAC1B,CAAC,CAAC;AAMU,QAAA,oBAAoB,GAAG,IAAA,4BAAiB,EAAC,gBAAK,CAAC,MAAM,CAAC,oBAAoB,EAAE;IACvF,GAAG,EAAE,4BAAa;IAClB,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,uBAAuB;CAC9B,CAAC,CAAC","sourcesContent":["/**\n * Tranched-style lockup shapes.\n *\n * These shapes use the LockupTranched (LT) contract family with discrete\n * tranche-based unlocks.\n *\n * @remarks\n * LockupTranched was introduced in v1.2 (July 2024).\n */\n\nimport { LOCKUP_EVM_LT } from \"../contracts.js\";\nimport { Shape } from \"../enums.js\";\nimport { defineLockupShape } from \"../types.js\";\n\n/**\n * Step-based vesting via tranches.\n * Tokens unlock in discrete steps at regular intervals.\n *\n * @remarks\n * Deprecated in favor of {@link linearStepper}, which uses LockupLinear with the\n * granularity feature introduced in Lockup v4.0.\n */\nexport const tranchedStepper = defineLockupShape(Shape.Lockup.TranchedStepper, {\n evm: LOCKUP_EVM_LT,\n hasPredictableGas: false,\n isDeprecated: true,\n name: \"Tranched Stepper\",\n});\n\n/**\n * Monthly vesting via tranches.\n * Tokens unlock monthly.\n */\nexport const tranchedMonthly = defineLockupShape(Shape.Lockup.TranchedMonthly, {\n evm: LOCKUP_EVM_LT,\n hasPredictableGas: false,\n isDeprecated: false,\n name: \"Tranched Monthly\",\n});\n\n/**\n * Tranched timelock.\n * All tokens unlock at a specific timestamp via a single tranche.\n */\nexport const tranchedTimelock = defineLockupShape(Shape.Lockup.TranchedTimelock, {\n evm: LOCKUP_EVM_LT,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Tranched Timelock\",\n});\n\n/**\n * Backweighted tranches.\n * Larger amounts unlock toward the end of the schedule.\n */\nexport const tranchedBackweighted = defineLockupShape(Shape.Lockup.TranchedBackweighted, {\n evm: LOCKUP_EVM_LT,\n hasPredictableGas: false,\n isDeprecated: false,\n name: \"Tranched Backweighted\",\n});\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/evm/csv/lockup/duration/index.ts"],"names":[],"mappings":"","sourcesContent":["import type { BaseColumns } from \"../../types.js\";\n\n/** Linear vesting with duration: address, amount, duration */\nexport type LinearColumns = BaseColumns & {\n /** Relative duration (e.g., \"2 years 20 days\") */\n duration: string;\n};\n\n/** Cliff vesting with duration: address, amount, duration, cliffAmount, cliffDuration */\nexport type CliffColumns = LinearColumns & {\n /** Amount unlocked at cliff */\n cliffAmount: string;\n /** Cliff duration (e.g., \"1 years 45 days 6 hours\") */\n cliffDuration: string;\n};\n\n/**\n * Dynamic cliff-exponential with duration: address, amount, duration, cliffAmount, cliffDuration\n * @note Structurally identical to CliffColumns; the shape difference is semantic only\n */\nexport type DynamicCliffExponentialColumns = CliffColumns;\n\n/** Dynamic double-unlock with duration: address, amount, duration, firstUnlockAmount, firstUnlockDuration, secondUnlockAmount, secondUnlockDuration */\nexport type DynamicDoubleUnlockColumns = LinearColumns & {\n /** Amount for first unlock */\n firstUnlockAmount: string;\n /** Duration until first unlock */\n firstUnlockDuration: string;\n /** Amount for second unlock */\n secondUnlockAmount: string;\n /** Duration from first unlock to second unlock */\n secondUnlockDuration: string;\n};\n\n/**\n * Dynamic exponential vesting with duration: address, amount, duration\n * @note Structurally identical to LinearColumns; the shape difference is semantic only\n */\nexport type DynamicExponentialColumns = LinearColumns;\n\n/** Tranched stepper with duration: address, amount, duration, stepCount */\nexport type TranchedStepperColumns = LinearColumns & {\n /** Number of discrete unlock steps */\n stepCount: string;\n};\n\n/**\n * Tranched timelock with duration: address, amount, duration\n * @note Structurally identical to LinearColumns; the shape difference is semantic only\n */\nexport type TranchedTimelockColumns = LinearColumns;\n\n/** Linear unlock-cliff with duration: address, amount, duration, unlockAmount, cliffAmount, cliffDuration */\nexport type LinearUnlockCliffColumns = LinearColumns & {\n /** Immediate unlock amount */\n unlockAmount: string;\n /** Amount unlocked at cliff */\n cliffAmount: string;\n /** Cliff duration */\n cliffDuration: string;\n};\n\n/** Linear unlock-linear with duration: address, amount, duration, unlockAmount */\nexport type LinearUnlockLinearColumns = LinearColumns & {\n /** Immediate unlock amount */\n unlockAmount: string;\n};\n\n/** All duration template column types */\nexport type Columns =\n | CliffColumns\n | DynamicDoubleUnlockColumns\n | DynamicCliffExponentialColumns\n | DynamicExponentialColumns\n | LinearColumns\n | TranchedStepperColumns\n | TranchedTimelockColumns\n | LinearUnlockCliffColumns\n | LinearUnlockLinearColumns;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/evm/csv/lockup/duration/index.ts"],"names":[],"mappings":"","sourcesContent":["import type { BaseColumns } from \"../../types.js\";\n\n/** Linear vesting with duration: address, amount, duration */\nexport type LinearColumns = BaseColumns & {\n /** Relative duration (e.g., \"2 years 20 days\") */\n duration: string;\n};\n\n/** Cliff vesting with duration: address, amount, duration, cliffAmount, cliffDuration */\nexport type CliffColumns = LinearColumns & {\n /** Amount unlocked at cliff */\n cliffAmount: string;\n /** Cliff duration (e.g., \"1 years 45 days 6 hours\") */\n cliffDuration: string;\n};\n\n/**\n * Dynamic cliff-exponential with duration: address, amount, duration, cliffAmount, cliffDuration\n * @note Structurally identical to CliffColumns; the shape difference is semantic only\n */\nexport type DynamicCliffExponentialColumns = CliffColumns;\n\n/** Dynamic double-unlock with duration: address, amount, duration, firstUnlockAmount, firstUnlockDuration, secondUnlockAmount, secondUnlockDuration */\nexport type DynamicDoubleUnlockColumns = LinearColumns & {\n /** Amount for first unlock */\n firstUnlockAmount: string;\n /** Duration until first unlock */\n firstUnlockDuration: string;\n /** Amount for second unlock */\n secondUnlockAmount: string;\n /** Duration from first unlock to second unlock */\n secondUnlockDuration: string;\n};\n\n/**\n * Dynamic exponential vesting with duration: address, amount, duration\n * @note Structurally identical to LinearColumns; the shape difference is semantic only\n */\nexport type DynamicExponentialColumns = LinearColumns;\n\n/** Linear stepper with duration: address, amount, duration, granularity */\nexport type LinearStepperColumns = LinearColumns & {\n /** Step granularity (daily, weekly, or yearly) */\n granularity: string;\n};\n\n/** Tranched stepper with duration: address, amount, duration, stepCount */\nexport type TranchedStepperColumns = LinearColumns & {\n /** Number of discrete unlock steps */\n stepCount: string;\n};\n\n/**\n * Tranched timelock with duration: address, amount, duration\n * @note Structurally identical to LinearColumns; the shape difference is semantic only\n */\nexport type TranchedTimelockColumns = LinearColumns;\n\n/** Linear unlock-cliff with duration: address, amount, duration, unlockAmount, cliffAmount, cliffDuration */\nexport type LinearUnlockCliffColumns = LinearColumns & {\n /** Immediate unlock amount */\n unlockAmount: string;\n /** Amount unlocked at cliff */\n cliffAmount: string;\n /** Cliff duration */\n cliffDuration: string;\n};\n\n/** Linear unlock-linear with duration: address, amount, duration, unlockAmount */\nexport type LinearUnlockLinearColumns = LinearColumns & {\n /** Immediate unlock amount */\n unlockAmount: string;\n};\n\n/** All duration template column types */\nexport type Columns =\n | CliffColumns\n | DynamicCliffExponentialColumns\n | DynamicDoubleUnlockColumns\n | DynamicExponentialColumns\n | LinearColumns\n | LinearStepperColumns\n | LinearUnlockCliffColumns\n | LinearUnlockLinearColumns\n | TranchedStepperColumns\n | TranchedTimelockColumns;\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/evm/csv/lockup/range/index.ts"],"names":[],"mappings":"","sourcesContent":["import type { BaseColumns } from \"../../types.js\";\n\n/** Tranched backweighted: address, amount, startAt, unlockPercentages, yearCount */\nexport type TranchedBackweightedColumns = BaseColumns & {\n /** Start timestamp */\n /** Number of years */\n startAt: string;\n /** Unlock percentages (e.g., \"10;20;30;40\") */\n unlockPercentages: string;\n /** Number of years */\n yearCount: string;\n};\n\n/** Linear vesting with range: address, amount, startAt, endAt */\nexport type LinearColumns = BaseColumns & {\n /** Start timestamp (e.g., \"2024-01-12 16:15\") */\n startAt: string;\n /** End timestamp */\n endAt: string;\n};\n\n/** Cliff with range: address, amount, startAt, endAt, cliffAmount, cliffAt */\nexport type CliffColumns = LinearColumns & {\n /** Amount unlocked at cliff */\n cliffAmount: string;\n /** Cliff timestamp */\n cliffAt: string;\n};\n\n/**\n * Dynamic cliff-exponential with range: address, amount, startAt, endAt, cliffAmount, cliffAt\n * @note Structurally identical to CliffColumns; the shape difference is semantic only\n */\nexport type DynamicCliffExponentialColumns = CliffColumns;\n\n/** Dynamic double-unlock with range: address, amount, startAt, endAt, firstUnlockAmount, firstUnlockAt, secondUnlockAmount, secondUnlockAt */\nexport type DynamicDoubleUnlockColumns = LinearColumns & {\n /** Amount for first unlock */\n firstUnlockAmount: string;\n /** First unlock timestamp */\n firstUnlockAt: string;\n /** Amount for second unlock */\n secondUnlockAmount: string;\n /** Second unlock timestamp */\n secondUnlockAt: string;\n};\n\n/**\n * Dynamic exponential with range: address, amount, startAt, endAt\n * @note Structurally identical to LinearColumns; the shape difference is semantic only\n */\nexport type DynamicExponentialColumns = LinearColumns;\n\n/** Tranched monthly: address, amount, startAt, monthCount */\nexport type TranchedMonthlyColumns = BaseColumns & {\n /** Start timestamp (e.g., \"2026-01-12 16:15\") */\n startAt: string;\n /** Number of months */\n monthCount: string;\n};\n\n/** Tranched stepper with range: address, amount, startAt, endAt, stepCount */\nexport type TranchedStepperColumns = LinearColumns & {\n /** Number of discrete unlock steps */\n stepCount: string;\n};\n\n/** Tranched timelock with range: address, amount, endAt */\nexport type TranchedTimelockColumns = BaseColumns & {\n /** End timestamp when tokens unlock */\n endAt: string;\n};\n\n/** Linear unlock-cliff with range: address, amount, startAt, endAt, unlockAmount, cliffAmount, cliffAt */\nexport type LinearUnlockCliffColumns = LinearColumns & {\n /** Immediate unlock amount */\n unlockAmount: string;\n /** Amount unlocked at cliff */\n cliffAmount: string;\n /** Cliff timestamp */\n cliffAt: string;\n};\n\n/** Linear unlock-linear with range: address, amount, startAt, endAt, unlockAmount */\nexport type LinearUnlockLinearColumns = LinearColumns & {\n /** Immediate unlock amount */\n unlockAmount: string;\n};\n\n/** All range template column types */\nexport type Columns =\n | TranchedBackweightedColumns\n | CliffColumns\n | DynamicDoubleUnlockColumns\n | DynamicCliffExponentialColumns\n | DynamicExponentialColumns\n | LinearColumns\n | TranchedMonthlyColumns\n | TranchedStepperColumns\n | TranchedTimelockColumns\n | LinearUnlockCliffColumns\n | LinearUnlockLinearColumns;\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../src/evm/csv/lockup/range/index.ts"],"names":[],"mappings":"","sourcesContent":["import type { BaseColumns } from \"../../types.js\";\n\n/** Tranched backweighted: address, amount, startAt, unlockPercentages, yearCount */\nexport type TranchedBackweightedColumns = BaseColumns & {\n /** Start timestamp */\n /** Number of years */\n startAt: string;\n /** Unlock percentages (e.g., \"10;20;30;40\") */\n unlockPercentages: string;\n /** Number of years */\n yearCount: string;\n};\n\n/** Linear vesting with range: address, amount, startAt, endAt */\nexport type LinearColumns = BaseColumns & {\n /** Start timestamp (e.g., \"2024-01-12 16:15\") */\n startAt: string;\n /** End timestamp */\n endAt: string;\n};\n\n/** Cliff with range: address, amount, startAt, endAt, cliffAmount, cliffAt */\nexport type CliffColumns = LinearColumns & {\n /** Amount unlocked at cliff */\n cliffAmount: string;\n /** Cliff timestamp */\n cliffAt: string;\n};\n\n/**\n * Dynamic cliff-exponential with range: address, amount, startAt, endAt, cliffAmount, cliffAt\n * @note Structurally identical to CliffColumns; the shape difference is semantic only\n */\nexport type DynamicCliffExponentialColumns = CliffColumns;\n\n/** Dynamic double-unlock with range: address, amount, startAt, endAt, firstUnlockAmount, firstUnlockAt, secondUnlockAmount, secondUnlockAt */\nexport type DynamicDoubleUnlockColumns = LinearColumns & {\n /** Amount for first unlock */\n firstUnlockAmount: string;\n /** First unlock timestamp */\n firstUnlockAt: string;\n /** Amount for second unlock */\n secondUnlockAmount: string;\n /** Second unlock timestamp */\n secondUnlockAt: string;\n};\n\n/**\n * Dynamic exponential with range: address, amount, startAt, endAt\n * @note Structurally identical to LinearColumns; the shape difference is semantic only\n */\nexport type DynamicExponentialColumns = LinearColumns;\n\n/** Tranched monthly: address, amount, startAt, monthCount */\nexport type TranchedMonthlyColumns = BaseColumns & {\n /** Start timestamp (e.g., \"2026-01-12 16:15\") */\n startAt: string;\n /** Number of months */\n monthCount: string;\n};\n\n/** Linear stepper with range: address, amount, startAt, endAt, granularity */\nexport type LinearStepperColumns = LinearColumns & {\n /** Step granularity (daily, weekly, or yearly) */\n granularity: string;\n};\n\n/** Tranched stepper with range: address, amount, startAt, endAt, stepCount */\nexport type TranchedStepperColumns = LinearColumns & {\n /** Number of discrete unlock steps */\n stepCount: string;\n};\n\n/** Tranched timelock with range: address, amount, endAt */\nexport type TranchedTimelockColumns = BaseColumns & {\n /** End timestamp when tokens unlock */\n endAt: string;\n};\n\n/** Linear unlock-cliff with range: address, amount, startAt, endAt, unlockAmount, cliffAmount, cliffAt */\nexport type LinearUnlockCliffColumns = LinearColumns & {\n /** Immediate unlock amount */\n unlockAmount: string;\n /** Amount unlocked at cliff */\n cliffAmount: string;\n /** Cliff timestamp */\n cliffAt: string;\n};\n\n/** Linear unlock-linear with range: address, amount, startAt, endAt, unlockAmount */\nexport type LinearUnlockLinearColumns = LinearColumns & {\n /** Immediate unlock amount */\n unlockAmount: string;\n};\n\n/** All range template column types */\nexport type Columns =\n | TranchedBackweightedColumns\n | CliffColumns\n | DynamicDoubleUnlockColumns\n | DynamicCliffExponentialColumns\n | DynamicExponentialColumns\n | LinearColumns\n | LinearStepperColumns\n | TranchedMonthlyColumns\n | TranchedStepperColumns\n | TranchedTimelockColumns\n | LinearUnlockCliffColumns\n | LinearUnlockLinearColumns;\n"]}
@@ -1,45 +1,51 @@
1
- import { AIRDROP_EVM_INSTANT, AIRDROP_EVM_LL, AIRDROP_EVM_LL_V2, AIRDROP_EVM_LT, AIRDROP_EVM_VCA, AIRDROP_SOLANA_INSTANT, } from "./constants.js";
1
+ import { AIRDROPS_EVM_INSTANT, AIRDROPS_EVM_LL, AIRDROPS_EVM_LT, AIRDROPS_EVM_VCA, AIRDROPS_SOLANA_INSTANT, AIRDROPS_V2_EVM_LL, AIRDROPS_V3_EVM_LL, } from "./contracts.js";
2
2
  import { Shape } from "./enums.js";
3
3
  import { defineAirdropShape } from "./types.js";
4
4
  const instant = defineAirdropShape(Shape.Airdrops.Instant, {
5
- evm: AIRDROP_EVM_INSTANT,
5
+ evm: AIRDROPS_EVM_INSTANT,
6
6
  hasPredictableGas: true,
7
7
  isDeprecated: false,
8
8
  name: "Instant",
9
- solana: AIRDROP_SOLANA_INSTANT,
9
+ solana: AIRDROPS_SOLANA_INSTANT,
10
10
  });
11
11
  const linear = defineAirdropShape(Shape.Airdrops.Linear, {
12
- evm: AIRDROP_EVM_LL,
12
+ evm: AIRDROPS_EVM_LL,
13
13
  hasPredictableGas: true,
14
14
  isDeprecated: false,
15
15
  name: "Linear",
16
16
  });
17
17
  const cliff = defineAirdropShape(Shape.Airdrops.Cliff, {
18
- evm: AIRDROP_EVM_LL,
18
+ evm: AIRDROPS_EVM_LL,
19
19
  hasPredictableGas: true,
20
20
  isDeprecated: false,
21
21
  name: "Cliff",
22
22
  });
23
23
  const linearUnlockLinear = defineAirdropShape(Shape.Airdrops.LinearUnlockLinear, {
24
- evm: AIRDROP_EVM_LL_V2,
24
+ evm: AIRDROPS_V2_EVM_LL,
25
25
  hasPredictableGas: true,
26
26
  isDeprecated: false,
27
27
  name: "Linear Unlock Linear",
28
28
  });
29
29
  const linearUnlockCliff = defineAirdropShape(Shape.Airdrops.LinearUnlockCliff, {
30
- evm: AIRDROP_EVM_LL_V2,
30
+ evm: AIRDROPS_V2_EVM_LL,
31
31
  hasPredictableGas: true,
32
32
  isDeprecated: false,
33
33
  name: "Linear Unlock Cliff",
34
34
  });
35
+ const linearStepper = defineAirdropShape(Shape.Airdrops.LinearStepper, {
36
+ evm: AIRDROPS_V3_EVM_LL,
37
+ hasPredictableGas: true,
38
+ isDeprecated: false,
39
+ name: "Linear Stepper",
40
+ });
35
41
  const tranchedStepper = defineAirdropShape(Shape.Airdrops.TranchedStepper, {
36
- evm: AIRDROP_EVM_LT,
42
+ evm: AIRDROPS_EVM_LT,
37
43
  hasPredictableGas: false,
38
- isDeprecated: false,
44
+ isDeprecated: true,
39
45
  name: "Tranched Stepper",
40
46
  });
41
47
  const variableClaimAmount = defineAirdropShape(Shape.Airdrops.VariableClaimAmount, {
42
- evm: AIRDROP_EVM_VCA,
48
+ evm: AIRDROPS_EVM_VCA,
43
49
  hasPredictableGas: true,
44
50
  isDeprecated: false,
45
51
  name: "Variable Claim Amount",
@@ -48,6 +54,7 @@ export const airdropShapes = {
48
54
  [Shape.Airdrops.Cliff]: cliff,
49
55
  [Shape.Airdrops.Instant]: instant,
50
56
  [Shape.Airdrops.Linear]: linear,
57
+ [Shape.Airdrops.LinearStepper]: linearStepper,
51
58
  [Shape.Airdrops.LinearUnlockCliff]: linearUnlockCliff,
52
59
  [Shape.Airdrops.LinearUnlockLinear]: linearUnlockLinear,
53
60
  [Shape.Airdrops.TranchedStepper]: tranchedStepper,
@@ -1 +1 @@
1
- {"version":3,"file":"airdrops.js","sourceRoot":"","sources":["../../../src/shapes/airdrops.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,eAAe,EACf,sBAAsB,GACvB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAMhD,MAAM,OAAO,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,EAAE;IACzD,GAAG,EAAE,mBAAmB;IACxB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,SAAS;IACf,MAAM,EAAE,sBAAsB;CAC/B,CAAC,CAAC;AAMH,MAAM,MAAM,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;IACvD,GAAG,EAAE,cAAc;IACnB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,QAAQ;CACf,CAAC,CAAC;AAMH,MAAM,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,EAAE;IACrD,GAAG,EAAE,cAAc;IACnB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,OAAO;CACd,CAAC,CAAC;AAMH,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,kBAAkB,EAAE;IAC/E,GAAG,EAAE,iBAAiB;IACtB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,sBAAsB;CAC7B,CAAC,CAAC;AAMH,MAAM,iBAAiB,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,EAAE;IAC7E,GAAG,EAAE,iBAAiB;IACtB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,qBAAqB;CAC5B,CAAC,CAAC;AAMH,MAAM,eAAe,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,EAAE;IACzE,GAAG,EAAE,cAAc;IACnB,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,kBAAkB;CACzB,CAAC,CAAC;AAMH,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,EAAE;IACjF,GAAG,EAAE,eAAe;IACpB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,uBAAuB;CAC9B,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,CAAC,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK;IAC7B,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO;IACjC,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM;IAC/B,CAAC,KAAK,CAAC,QAAQ,CAAC,iBAAiB,CAAC,EAAE,iBAAiB;IACrD,CAAC,KAAK,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,kBAAkB;IACvD,CAAC,KAAK,CAAC,QAAQ,CAAC,eAAe,CAAC,EAAE,eAAe;IACjD,CAAC,KAAK,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,mBAAmB;CAC5B,CAAC","sourcesContent":["/**\n * Airdrop shapes.\n *\n * Merkle-based token distribution with various vesting patterns.\n */\n\nimport {\n AIRDROP_EVM_INSTANT,\n AIRDROP_EVM_LL,\n AIRDROP_EVM_LL_V2,\n AIRDROP_EVM_LT,\n AIRDROP_EVM_VCA,\n AIRDROP_SOLANA_INSTANT,\n} from \"./constants.js\";\nimport { Shape } from \"./enums.js\";\nimport type { AirdropShapesRecord } from \"./types.js\";\nimport { defineAirdropShape } from \"./types.js\";\n\n/**\n * Instant airdrop.\n * Tokens are claimable immediately with no vesting.\n */\nconst instant = defineAirdropShape(Shape.Airdrops.Instant, {\n evm: AIRDROP_EVM_INSTANT,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Instant\",\n solana: AIRDROP_SOLANA_INSTANT,\n});\n\n/**\n * Linear airdrop.\n * Claimed tokens vest linearly from start to end.\n */\nconst linear = defineAirdropShape(Shape.Airdrops.Linear, {\n evm: AIRDROP_EVM_LL,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Linear\",\n});\n\n/**\n * Cliff airdrop.\n * Claimed tokens vest with a cliff period followed by linear vesting.\n */\nconst cliff = defineAirdropShape(Shape.Airdrops.Cliff, {\n evm: AIRDROP_EVM_LL,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Cliff\",\n});\n\n/**\n * Linear with initial unlock, then linear vesting.\n * A percentage is immediately available, remainder vests linearly.\n */\nconst linearUnlockLinear = defineAirdropShape(Shape.Airdrops.LinearUnlockLinear, {\n evm: AIRDROP_EVM_LL_V2,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Linear Unlock Linear\",\n});\n\n/**\n * Linear with initial unlock, then cliff.\n * A percentage is immediately available, remainder vests after cliff.\n */\nconst linearUnlockCliff = defineAirdropShape(Shape.Airdrops.LinearUnlockCliff, {\n evm: AIRDROP_EVM_LL_V2,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Linear Unlock Cliff\",\n});\n\n/**\n * Step-based airdrop via tranches.\n * Claimed tokens unlock in discrete steps.\n */\nconst tranchedStepper = defineAirdropShape(Shape.Airdrops.TranchedStepper, {\n evm: AIRDROP_EVM_LT,\n hasPredictableGas: false,\n isDeprecated: false,\n name: \"Tranched Stepper\",\n});\n\n/**\n * Variable claim amount airdrop.\n * Each recipient can claim a different amount based on Merkle proof data.\n */\nconst variableClaimAmount = defineAirdropShape(Shape.Airdrops.VariableClaimAmount, {\n evm: AIRDROP_EVM_VCA,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Variable Claim Amount\",\n});\n\n/**\n * All airdrop shapes indexed by shape ID.\n * Keys are alphabetically ordered for consistency.\n */\nexport const airdropShapes = {\n [Shape.Airdrops.Cliff]: cliff,\n [Shape.Airdrops.Instant]: instant,\n [Shape.Airdrops.Linear]: linear,\n [Shape.Airdrops.LinearUnlockCliff]: linearUnlockCliff,\n [Shape.Airdrops.LinearUnlockLinear]: linearUnlockLinear,\n [Shape.Airdrops.TranchedStepper]: tranchedStepper,\n [Shape.Airdrops.VariableClaimAmount]: variableClaimAmount,\n} satisfies AirdropShapesRecord;\n"]}
1
+ {"version":3,"file":"airdrops.js","sourceRoot":"","sources":["../../../src/shapes/airdrops.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Airdrop shapes.\n *\n * Merkle-based token distribution with various vesting patterns.\n */\n\nimport {\n AIRDROPS_EVM_INSTANT,\n AIRDROPS_EVM_LL,\n AIRDROPS_EVM_LT,\n AIRDROPS_EVM_VCA,\n AIRDROPS_SOLANA_INSTANT,\n AIRDROPS_V2_EVM_LL,\n AIRDROPS_V3_EVM_LL,\n} from \"./contracts.js\";\nimport { Shape } from \"./enums.js\";\nimport type { AirdropShapesRecord } from \"./types.js\";\nimport { defineAirdropShape } from \"./types.js\";\n\n/**\n * Instant airdrop.\n * Tokens are claimable immediately with no vesting.\n */\nconst instant = defineAirdropShape(Shape.Airdrops.Instant, {\n evm: AIRDROPS_EVM_INSTANT,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Instant\",\n solana: AIRDROPS_SOLANA_INSTANT,\n});\n\n/**\n * Linear airdrop.\n * Claimed tokens vest linearly from start to end.\n */\nconst linear = defineAirdropShape(Shape.Airdrops.Linear, {\n evm: AIRDROPS_EVM_LL,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Linear\",\n});\n\n/**\n * Cliff airdrop.\n * Claimed tokens vest with a cliff period followed by linear vesting.\n */\nconst cliff = defineAirdropShape(Shape.Airdrops.Cliff, {\n evm: AIRDROPS_EVM_LL,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Cliff\",\n});\n\n/**\n * Linear with initial unlock, then linear vesting.\n * A percentage is immediately available, remainder vests linearly.\n */\nconst linearUnlockLinear = defineAirdropShape(Shape.Airdrops.LinearUnlockLinear, {\n evm: AIRDROPS_V2_EVM_LL,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Linear Unlock Linear\",\n});\n\n/**\n * Linear with initial unlock, then cliff.\n * A percentage is immediately available, remainder vests after cliff.\n */\nconst linearUnlockCliff = defineAirdropShape(Shape.Airdrops.LinearUnlockCliff, {\n evm: AIRDROPS_V2_EVM_LL,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Linear Unlock Cliff\",\n});\n\n/**\n * Step-based airdrop via linear granularity.\n * Claimed tokens unlock in discrete steps at regular intervals using MerkleLL with granularity.\n *\n * @remarks\n * Replaces {@link tranchedStepper} by leveraging the granularity feature introduced in Airdrops v3.0.\n */\nconst linearStepper = defineAirdropShape(Shape.Airdrops.LinearStepper, {\n evm: AIRDROPS_V3_EVM_LL,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Linear Stepper\",\n});\n\n/**\n * Step-based airdrop via tranches.\n * Claimed tokens unlock in discrete steps.\n */\nconst tranchedStepper = defineAirdropShape(Shape.Airdrops.TranchedStepper, {\n evm: AIRDROPS_EVM_LT,\n hasPredictableGas: false,\n isDeprecated: true,\n name: \"Tranched Stepper\",\n});\n\n/**\n * Variable claim amount airdrop.\n * Each recipient can claim a different amount based on Merkle proof data.\n */\nconst variableClaimAmount = defineAirdropShape(Shape.Airdrops.VariableClaimAmount, {\n evm: AIRDROPS_EVM_VCA,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Variable Claim Amount\",\n});\n\n/**\n * All airdrop shapes indexed by shape ID.\n * Keys are alphabetically ordered for consistency.\n */\nexport const airdropShapes = {\n [Shape.Airdrops.Cliff]: cliff,\n [Shape.Airdrops.Instant]: instant,\n [Shape.Airdrops.Linear]: linear,\n [Shape.Airdrops.LinearStepper]: linearStepper,\n [Shape.Airdrops.LinearUnlockCliff]: linearUnlockCliff,\n [Shape.Airdrops.LinearUnlockLinear]: linearUnlockLinear,\n [Shape.Airdrops.TranchedStepper]: tranchedStepper,\n [Shape.Airdrops.VariableClaimAmount]: variableClaimAmount,\n} satisfies AirdropShapesRecord;\n"]}
@@ -9,12 +9,12 @@ export const LOCKUP_EVM_LL = [
9
9
  { contract: "SablierV2LockupLinear", createMethods: LL_V1_METHODS, version: Version.Lockup.V1_1 },
10
10
  { contract: "SablierV2LockupLinear", createMethods: LL_V1_METHODS, version: Version.Lockup.V1_0 },
11
11
  ];
12
- export const LOCKUP_EVM_LL_V2 = [
12
+ export const LOCKUP_V2_EVM_LL = [
13
13
  { contract: "SablierLockup", createMethods: LL_METHODS, version: Version.Lockup.V4_0 },
14
14
  { contract: "SablierLockup", createMethods: LL_METHODS, version: Version.Lockup.V3_0 },
15
15
  { contract: "SablierLockup", createMethods: LL_METHODS, version: Version.Lockup.V2_0 },
16
16
  ];
17
- export const LOCKUP_EVM_LL_V4 = [
17
+ export const LOCKUP_V4_EVM_LL = [
18
18
  { contract: "SablierLockup", createMethods: LL_METHODS, version: Version.Lockup.V4_0 },
19
19
  ];
20
20
  export const LOCKUP_SOLANA_LL = [
@@ -80,7 +80,7 @@ export const FLOW_EVM = [
80
80
  version: Version.Flow.V1_0,
81
81
  },
82
82
  ];
83
- export const AIRDROP_EVM_INSTANT = [
83
+ export const AIRDROPS_EVM_INSTANT = [
84
84
  {
85
85
  contract: "SablierFactoryMerkleInstant",
86
86
  createMethods: ["createMerkleInstant"],
@@ -97,14 +97,14 @@ export const AIRDROP_EVM_INSTANT = [
97
97
  version: Version.Airdrops.V1_3,
98
98
  },
99
99
  ];
100
- export const AIRDROP_SOLANA_INSTANT = [
100
+ export const AIRDROPS_SOLANA_INSTANT = [
101
101
  {
102
102
  createMethods: ["create_campaign"],
103
103
  program: "SablierMerkleInstant",
104
104
  version: "v0.1",
105
105
  },
106
106
  ];
107
- export const AIRDROP_EVM_LL = [
107
+ export const AIRDROPS_EVM_LL = [
108
108
  {
109
109
  contract: "SablierFactoryMerkleLL",
110
110
  createMethods: ["createMerkleLL"],
@@ -131,7 +131,14 @@ export const AIRDROP_EVM_LL = [
131
131
  version: Version.Airdrops.V1_1,
132
132
  },
133
133
  ];
134
- export const AIRDROP_EVM_LL_V2 = [
134
+ export const AIRDROPS_V3_EVM_LL = [
135
+ {
136
+ contract: "SablierFactoryMerkleLL",
137
+ createMethods: ["createMerkleLL"],
138
+ version: Version.Airdrops.V3_0,
139
+ },
140
+ ];
141
+ export const AIRDROPS_V2_EVM_LL = [
135
142
  {
136
143
  contract: "SablierFactoryMerkleLL",
137
144
  createMethods: ["createMerkleLL"],
@@ -143,7 +150,7 @@ export const AIRDROP_EVM_LL_V2 = [
143
150
  version: Version.Airdrops.V2_0,
144
151
  },
145
152
  ];
146
- export const AIRDROP_EVM_VCA = [
153
+ export const AIRDROPS_EVM_VCA = [
147
154
  {
148
155
  contract: "SablierFactoryMerkleVCA",
149
156
  createMethods: ["createMerkleVCA"],
@@ -155,7 +162,7 @@ export const AIRDROP_EVM_VCA = [
155
162
  version: Version.Airdrops.V2_0,
156
163
  },
157
164
  ];
158
- export const AIRDROP_EVM_LT = [
165
+ export const AIRDROPS_EVM_LT = [
159
166
  {
160
167
  contract: "SablierFactoryMerkleLT",
161
168
  createMethods: ["createMerkleLT"],
@@ -177,4 +184,4 @@ export const AIRDROP_EVM_LT = [
177
184
  version: Version.Airdrops.V1_2,
178
185
  },
179
186
  ];
180
- //# sourceMappingURL=constants.js.map
187
+ //# sourceMappingURL=contracts.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"contracts.js","sourceRoot":"","sources":["../../../src/shapes/contracts.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAO7C,MAAM,UAAU,GAAG,CAAC,uBAAuB,EAAE,wBAAwB,CAAU,CAAC;AAChF,MAAM,aAAa,GAAG,CAAC,qBAAqB,EAAE,sBAAsB,CAAU,CAAC;AAG/E,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;IACtF,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;IACtF,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;IACtF,EAAE,QAAQ,EAAE,uBAAuB,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;IACjG,EAAE,QAAQ,EAAE,uBAAuB,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;IACjG,EAAE,QAAQ,EAAE,uBAAuB,EAAE,aAAa,EAAE,aAAa,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;CACrD,CAAC;AAG/C,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;IACtF,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;IACtF,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;CAC1C,CAAC;AAG/C,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;CAC1C,CAAC;AAG/C,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B;QACE,aAAa,EAAE,CAAC,0BAA0B,EAAE,2BAA2B,CAAC;QACxE,OAAO,EAAE,qBAAqB;QAC9B,OAAO,EAAE,MAAM;KAChB;CAC0C,CAAC;AAM9C,MAAM,UAAU,GAAG,CAAC,uBAAuB,EAAE,wBAAwB,CAAU,CAAC;AAChF,MAAM,aAAa,GAAG,CAAC,qBAAqB,EAAE,sBAAsB,CAAU,CAAC;AAG/E,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;IACtF,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;IACtF,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;IACtF;QACE,QAAQ,EAAE,wBAAwB;QAClC,aAAa,EAAE,aAAa;QAC5B,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;KAC7B;IACD;QACE,QAAQ,EAAE,wBAAwB;QAClC,aAAa,EAAE,aAAa;QAC5B,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;KAC7B;IACD;QACE,QAAQ,EAAE,wBAAwB;QAClC,aAAa,EAAE,aAAa;QAC5B,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;KAC7B;CAC2C,CAAC;AAM/C,MAAM,UAAU,GAAG,CAAC,uBAAuB,EAAE,wBAAwB,CAAU,CAAC;AAChF,MAAM,aAAa,GAAG,CAAC,qBAAqB,EAAE,sBAAsB,CAAU,CAAC;AAG/E,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;IACtF,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;IACtF,EAAE,QAAQ,EAAE,eAAe,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI,EAAE;IACtF;QACE,QAAQ,EAAE,yBAAyB;QACnC,aAAa,EAAE,aAAa;QAC5B,OAAO,EAAE,OAAO,CAAC,MAAM,CAAC,IAAI;KAC7B;CAC2C,CAAC;AAO/C,MAAM,CAAC,MAAM,QAAQ,GAAG;IACtB;QACE,QAAQ,EAAE,aAAa;QACvB,aAAa,EAAE,CAAC,QAAQ,EAAE,kBAAkB,CAAC;QAC7C,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;KAC3B;IACD;QACE,QAAQ,EAAE,aAAa;QACvB,aAAa,EAAE,CAAC,QAAQ,EAAE,kBAAkB,CAAC;QAC7C,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;KAC3B;IACD;QACE,QAAQ,EAAE,aAAa;QACvB,aAAa,EAAE,CAAC,QAAQ,EAAE,kBAAkB,CAAC;QAC7C,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;KAC3B;IACD;QACE,QAAQ,EAAE,aAAa;QACvB,aAAa,EAAE,CAAC,QAAQ,EAAE,kBAAkB,CAAC;QAC7C,OAAO,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI;KAC3B;CAC2C,CAAC;AAO/C,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC;QACE,QAAQ,EAAE,6BAA6B;QACvC,aAAa,EAAE,CAAC,qBAAqB,CAAC;QACtC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;KAC/B;IACD;QACE,QAAQ,EAAE,6BAA6B;QACvC,aAAa,EAAE,CAAC,qBAAqB,CAAC;QACtC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;KAC/B;IACD;QACE,QAAQ,EAAE,sBAAsB;QAChC,aAAa,EAAE,CAAC,qBAAqB,CAAC;QACtC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;KAC/B;CAC2C,CAAC;AAG/C,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC;QACE,aAAa,EAAE,CAAC,iBAAiB,CAAC;QAClC,OAAO,EAAE,sBAAsB;QAC/B,OAAO,EAAE,MAAM;KAChB;CAC0C,CAAC;AAG9C,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B;QACE,QAAQ,EAAE,wBAAwB;QAClC,aAAa,EAAE,CAAC,gBAAgB,CAAC;QACjC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;KAC/B;IACD;QACE,QAAQ,EAAE,wBAAwB;QAClC,aAAa,EAAE,CAAC,gBAAgB,CAAC;QACjC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;KAC/B;IACD;QACE,QAAQ,EAAE,sBAAsB;QAChC,aAAa,EAAE,CAAC,gBAAgB,CAAC;QACjC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;KAC/B;IACD;QACE,QAAQ,EAAE,8BAA8B;QACxC,aAAa,EAAE,CAAC,gBAAgB,CAAC;QACjC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;KAC/B;IACD;QACE,QAAQ,EAAE,gCAAgC;QAC1C,aAAa,EAAE,CAAC,wBAAwB,CAAC;QACzC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;KAC/B;CAC2C,CAAC;AAG/C,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC;QACE,QAAQ,EAAE,wBAAwB;QAClC,aAAa,EAAE,CAAC,gBAAgB,CAAC;QACjC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;KAC/B;CAC2C,CAAC;AAG/C,MAAM,CAAC,MAAM,kBAAkB,GAAG;IAChC;QACE,QAAQ,EAAE,wBAAwB;QAClC,aAAa,EAAE,CAAC,gBAAgB,CAAC;QACjC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;KAC/B;IACD;QACE,QAAQ,EAAE,wBAAwB;QAClC,aAAa,EAAE,CAAC,gBAAgB,CAAC;QACjC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;KAC/B;CAC2C,CAAC;AAG/C,MAAM,CAAC,MAAM,gBAAgB,GAAG;IAC9B;QACE,QAAQ,EAAE,yBAAyB;QACnC,aAAa,EAAE,CAAC,iBAAiB,CAAC;QAClC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;KAC/B;IACD;QACE,QAAQ,EAAE,yBAAyB;QACnC,aAAa,EAAE,CAAC,iBAAiB,CAAC;QAClC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;KAC/B;CAC2C,CAAC;AAG/C,MAAM,CAAC,MAAM,eAAe,GAAG;IAC7B;QACE,QAAQ,EAAE,wBAAwB;QAClC,aAAa,EAAE,CAAC,gBAAgB,CAAC;QACjC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;KAC/B;IACD;QACE,QAAQ,EAAE,wBAAwB;QAClC,aAAa,EAAE,CAAC,gBAAgB,CAAC;QACjC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;KAC/B;IACD;QACE,QAAQ,EAAE,sBAAsB;QAChC,aAAa,EAAE,CAAC,gBAAgB,CAAC;QACjC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;KAC/B;IACD;QACE,QAAQ,EAAE,8BAA8B;QACxC,aAAa,EAAE,CAAC,gBAAgB,CAAC;QACjC,OAAO,EAAE,OAAO,CAAC,QAAQ,CAAC,IAAI;KAC/B;CAC2C,CAAC","sourcesContent":["/**\n * Shared EVM and Solana contract configurations for shape definitions.\n *\n * These constants eliminate code duplication across shape files by providing\n * reusable contract/method mappings organized by lockup type (LL, LD, LT).\n *\n * @remarks\n * Arrays are marked `as const` for type safety. Consumers should treat them\n * as read-only - do not mutate `shape.evm` or `createMethods` arrays.\n */\n\nimport { Version } from \"@/src/evm/enums.js\";\nimport type { ContractMethod, ProgramMethod } from \"./types.js\";\n\n/* -------------------------------------------------------------------------- */\n/* LOCKUP LINEAR (LL) CONTRACTS */\n/* -------------------------------------------------------------------------- */\n\nconst LL_METHODS = [\"createWithDurationsLL\", \"createWithTimestampsLL\"] as const;\nconst LL_V1_METHODS = [\"createWithDurations\", \"createWithTimestamps\"] as const;\n\n/** Lockup Linear contracts - full version history */\nexport const LOCKUP_EVM_LL = [\n { contract: \"SablierLockup\", createMethods: LL_METHODS, version: Version.Lockup.V4_0 },\n { contract: \"SablierLockup\", createMethods: LL_METHODS, version: Version.Lockup.V3_0 },\n { contract: \"SablierLockup\", createMethods: LL_METHODS, version: Version.Lockup.V2_0 },\n { contract: \"SablierV2LockupLinear\", createMethods: LL_V1_METHODS, version: Version.Lockup.V1_2 },\n { contract: \"SablierV2LockupLinear\", createMethods: LL_V1_METHODS, version: Version.Lockup.V1_1 },\n { contract: \"SablierV2LockupLinear\", createMethods: LL_V1_METHODS, version: Version.Lockup.V1_0 },\n] as const satisfies readonly ContractMethod[];\n\n/** Lockup Linear contracts - v2.0+ only */\nexport const LOCKUP_V2_EVM_LL = [\n { contract: \"SablierLockup\", createMethods: LL_METHODS, version: Version.Lockup.V4_0 },\n { contract: \"SablierLockup\", createMethods: LL_METHODS, version: Version.Lockup.V3_0 },\n { contract: \"SablierLockup\", createMethods: LL_METHODS, version: Version.Lockup.V2_0 },\n] as const satisfies readonly ContractMethod[];\n\n/** Lockup Linear contracts - v4.0+ only (granularity feature) */\nexport const LOCKUP_V4_EVM_LL = [\n { contract: \"SablierLockup\", createMethods: LL_METHODS, version: Version.Lockup.V4_0 },\n] as const satisfies readonly ContractMethod[];\n\n/** Solana Lockup Linear program */\nexport const LOCKUP_SOLANA_LL = [\n {\n createMethods: [\"create_with_durations_ll\", \"create_with_timestamps_ll\"],\n program: \"SablierLockupLinear\",\n version: \"v0.1\",\n },\n] as const satisfies readonly ProgramMethod[];\n\n/* -------------------------------------------------------------------------- */\n/* LOCKUP DYNAMIC (LD) CONTRACTS */\n/* -------------------------------------------------------------------------- */\n\nconst LD_METHODS = [\"createWithDurationsLD\", \"createWithTimestampsLD\"] as const;\nconst LD_V1_METHODS = [\"createWithDurations\", \"createWithTimestamps\"] as const;\n\n/** Lockup Dynamic contracts - full version history */\nexport const LOCKUP_EVM_LD = [\n { contract: \"SablierLockup\", createMethods: LD_METHODS, version: Version.Lockup.V4_0 },\n { contract: \"SablierLockup\", createMethods: LD_METHODS, version: Version.Lockup.V3_0 },\n { contract: \"SablierLockup\", createMethods: LD_METHODS, version: Version.Lockup.V2_0 },\n {\n contract: \"SablierV2LockupDynamic\",\n createMethods: LD_V1_METHODS,\n version: Version.Lockup.V1_2,\n },\n {\n contract: \"SablierV2LockupDynamic\",\n createMethods: LD_V1_METHODS,\n version: Version.Lockup.V1_1,\n },\n {\n contract: \"SablierV2LockupDynamic\",\n createMethods: LD_V1_METHODS,\n version: Version.Lockup.V1_0,\n },\n] as const satisfies readonly ContractMethod[];\n\n/* -------------------------------------------------------------------------- */\n/* LOCKUP TRANCHED (LT) CONTRACTS */\n/* -------------------------------------------------------------------------- */\n\nconst LT_METHODS = [\"createWithDurationsLT\", \"createWithTimestampsLT\"] as const;\nconst LT_V1_METHODS = [\"createWithDurations\", \"createWithTimestamps\"] as const;\n\n/** Lockup Tranched contracts - v1.2+ only (LT introduced in v1.2) */\nexport const LOCKUP_EVM_LT = [\n { contract: \"SablierLockup\", createMethods: LT_METHODS, version: Version.Lockup.V4_0 },\n { contract: \"SablierLockup\", createMethods: LT_METHODS, version: Version.Lockup.V3_0 },\n { contract: \"SablierLockup\", createMethods: LT_METHODS, version: Version.Lockup.V2_0 },\n {\n contract: \"SablierV2LockupTranched\",\n createMethods: LT_V1_METHODS,\n version: Version.Lockup.V1_2,\n },\n] as const satisfies readonly ContractMethod[];\n\n/* -------------------------------------------------------------------------- */\n/* FLOW CONTRACTS */\n/* -------------------------------------------------------------------------- */\n\n/** Flow contracts - v1.0 through v3.0 */\nexport const FLOW_EVM = [\n {\n contract: \"SablierFlow\",\n createMethods: [\"create\", \"createAndDeposit\"],\n version: Version.Flow.V3_0,\n },\n {\n contract: \"SablierFlow\",\n createMethods: [\"create\", \"createAndDeposit\"],\n version: Version.Flow.V2_0,\n },\n {\n contract: \"SablierFlow\",\n createMethods: [\"create\", \"createAndDeposit\"],\n version: Version.Flow.V1_1,\n },\n {\n contract: \"SablierFlow\",\n createMethods: [\"create\", \"createAndDeposit\"],\n version: Version.Flow.V1_0,\n },\n] as const satisfies readonly ContractMethod[];\n\n/* -------------------------------------------------------------------------- */\n/* AIRDROPS CONTRACTS */\n/* -------------------------------------------------------------------------- */\n\n/** Airdrops Instant factory contracts - v1.3+ */\nexport const AIRDROPS_EVM_INSTANT = [\n {\n contract: \"SablierFactoryMerkleInstant\",\n createMethods: [\"createMerkleInstant\"],\n version: Version.Airdrops.V3_0,\n },\n {\n contract: \"SablierFactoryMerkleInstant\",\n createMethods: [\"createMerkleInstant\"],\n version: Version.Airdrops.V2_0,\n },\n {\n contract: \"SablierMerkleFactory\",\n createMethods: [\"createMerkleInstant\"],\n version: Version.Airdrops.V1_3,\n },\n] as const satisfies readonly ContractMethod[];\n\n/** Solana Airdrops Instant program */\nexport const AIRDROPS_SOLANA_INSTANT = [\n {\n createMethods: [\"create_campaign\"],\n program: \"SablierMerkleInstant\",\n version: \"v0.1\",\n },\n] as const satisfies readonly ProgramMethod[];\n\n/** Airdrops Linear (LL) factory contracts - full history */\nexport const AIRDROPS_EVM_LL = [\n {\n contract: \"SablierFactoryMerkleLL\",\n createMethods: [\"createMerkleLL\"],\n version: Version.Airdrops.V3_0,\n },\n {\n contract: \"SablierFactoryMerkleLL\",\n createMethods: [\"createMerkleLL\"],\n version: Version.Airdrops.V2_0,\n },\n {\n contract: \"SablierMerkleFactory\",\n createMethods: [\"createMerkleLL\"],\n version: Version.Airdrops.V1_3,\n },\n {\n contract: \"SablierV2MerkleLockupFactory\",\n createMethods: [\"createMerkleLL\"],\n version: Version.Airdrops.V1_2,\n },\n {\n contract: \"SablierV2MerkleStreamerFactory\",\n createMethods: [\"createMerkleStreamerLL\"],\n version: Version.Airdrops.V1_1,\n },\n] as const satisfies readonly ContractMethod[];\n\n/** Airdrops Linear (LL) factory contracts - v3.0+ only (granularity feature) */\nexport const AIRDROPS_V3_EVM_LL = [\n {\n contract: \"SablierFactoryMerkleLL\",\n createMethods: [\"createMerkleLL\"],\n version: Version.Airdrops.V3_0,\n },\n] as const satisfies readonly ContractMethod[];\n\n/** Airdrops Linear (LL) factory contracts - v2.0+ only */\nexport const AIRDROPS_V2_EVM_LL = [\n {\n contract: \"SablierFactoryMerkleLL\",\n createMethods: [\"createMerkleLL\"],\n version: Version.Airdrops.V3_0,\n },\n {\n contract: \"SablierFactoryMerkleLL\",\n createMethods: [\"createMerkleLL\"],\n version: Version.Airdrops.V2_0,\n },\n] as const satisfies readonly ContractMethod[];\n\n/** Airdrops VCA factory contracts - v2.0+ */\nexport const AIRDROPS_EVM_VCA = [\n {\n contract: \"SablierFactoryMerkleVCA\",\n createMethods: [\"createMerkleVCA\"],\n version: Version.Airdrops.V3_0,\n },\n {\n contract: \"SablierFactoryMerkleVCA\",\n createMethods: [\"createMerkleVCA\"],\n version: Version.Airdrops.V2_0,\n },\n] as const satisfies readonly ContractMethod[];\n\n/** Airdrops Tranched (LT) factory contracts - v1.2+ */\nexport const AIRDROPS_EVM_LT = [\n {\n contract: \"SablierFactoryMerkleLT\",\n createMethods: [\"createMerkleLT\"],\n version: Version.Airdrops.V3_0,\n },\n {\n contract: \"SablierFactoryMerkleLT\",\n createMethods: [\"createMerkleLT\"],\n version: Version.Airdrops.V2_0,\n },\n {\n contract: \"SablierMerkleFactory\",\n createMethods: [\"createMerkleLT\"],\n version: Version.Airdrops.V1_3,\n },\n {\n contract: \"SablierV2MerkleLockupFactory\",\n createMethods: [\"createMerkleLT\"],\n version: Version.Airdrops.V1_2,\n },\n] as const satisfies readonly ContractMethod[];\n"]}
@@ -32,6 +32,7 @@ export var Shape;
32
32
  Airdrops["Cliff"] = "cliff";
33
33
  Airdrops["LinearUnlockLinear"] = "linearUnlockLinear";
34
34
  Airdrops["LinearUnlockCliff"] = "linearUnlockCliff";
35
+ Airdrops["LinearStepper"] = "linearStepper";
35
36
  Airdrops["TranchedStepper"] = "tranchedStepper";
36
37
  Airdrops["VariableClaimAmount"] = "variableClaimAmount";
37
38
  })(Airdrops = Shape.Airdrops || (Shape.Airdrops = {}));
@@ -1 +1 @@
1
- {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/shapes/enums.ts"],"names":[],"mappings":"AAAA,MAAM,KAAW,KAAK,CAmCrB;AAnCD,WAAiB,KAAK;IACpB,IAAY,MAmBX;IAnBD,WAAY,MAAM;QAChB,2BAAiB,CAAA;QACjB,yBAAe,CAAA;QACf,6DAAmD,CAAA;QACnD,mDAAyC,CAAA;QACzC,uDAA6C,CAAA;QAC7C,6CAAmC,CAAA;QACnC,6CAAmC,CAAA;QACnC,+CAAqC,CAAA;QACrC,mDAAyC,CAAA;QACzC,iDAAuC,CAAA;QACvC,yCAA+B,CAAA;QAC/B,2CAAiC,CAAA;QACjC,6CAAmC,CAAA;QACnC,2CAAiC,CAAA;QACjC,2CAAiC,CAAA;QACjC,mDAAyC,CAAA;QACzC,qDAA2C,CAAA;QAC3C,qDAA2C,CAAA;IAC7C,CAAC,EAnBW,MAAM,GAAN,YAAM,KAAN,YAAM,QAmBjB;IAED,IAAY,IAEX;IAFD,WAAY,IAAI;QACd,qBAAa,CAAA;IACf,CAAC,EAFW,IAAI,GAAJ,UAAI,KAAJ,UAAI,QAEf;IAED,IAAY,QAQX;IARD,WAAY,QAAQ;QAClB,+BAAmB,CAAA;QACnB,6BAAiB,CAAA;QACjB,2BAAe,CAAA;QACf,qDAAyC,CAAA;QACzC,mDAAuC,CAAA;QACvC,+CAAmC,CAAA;QACnC,uDAA2C,CAAA;IAC7C,CAAC,EARW,QAAQ,GAAR,cAAQ,KAAR,cAAQ,QAQnB;AACH,CAAC,EAnCgB,KAAK,KAAL,KAAK,QAmCrB","sourcesContent":["export namespace Shape {\n export enum Lockup {\n Linear = \"linear\",\n Cliff = \"cliff\",\n DynamicCliffExponential = \"dynamicCliffExponential\",\n DynamicExponential = \"dynamicExponential\",\n TranchedBackweighted = \"tranchedBackweighted\",\n TranchedStepper = \"tranchedStepper\",\n TranchedMonthly = \"tranchedMonthly\",\n TranchedTimelock = \"tranchedTimelock\",\n LinearUnlockLinear = \"linearUnlockLinear\",\n LinearUnlockCliff = \"linearUnlockCliff\",\n LinearStepper = \"linearStepper\",\n LinearTimelock = \"linearTimelock\",\n DynamicTimelock = \"dynamicTimelock\",\n DynamicMonthly = \"dynamicMonthly\",\n DynamicStepper = \"dynamicStepper\",\n DynamicUnlockCliff = \"dynamicUnlockCliff\",\n DynamicUnlockLinear = \"dynamicUnlockLinear\",\n DynamicDoubleUnlock = \"dynamicDoubleUnlock\",\n }\n\n export enum Flow {\n Flow = \"flow\",\n }\n\n export enum Airdrops {\n Instant = \"instant\",\n Linear = \"linear\",\n Cliff = \"cliff\",\n LinearUnlockLinear = \"linearUnlockLinear\",\n LinearUnlockCliff = \"linearUnlockCliff\",\n TranchedStepper = \"tranchedStepper\",\n VariableClaimAmount = \"variableClaimAmount\",\n }\n}\n"]}
1
+ {"version":3,"file":"enums.js","sourceRoot":"","sources":["../../../src/shapes/enums.ts"],"names":[],"mappings":"AAAA,MAAM,KAAW,KAAK,CAoCrB;AApCD,WAAiB,KAAK;IACpB,IAAY,MAmBX;IAnBD,WAAY,MAAM;QAChB,2BAAiB,CAAA;QACjB,yBAAe,CAAA;QACf,6DAAmD,CAAA;QACnD,mDAAyC,CAAA;QACzC,uDAA6C,CAAA;QAC7C,6CAAmC,CAAA;QACnC,6CAAmC,CAAA;QACnC,+CAAqC,CAAA;QACrC,mDAAyC,CAAA;QACzC,iDAAuC,CAAA;QACvC,yCAA+B,CAAA;QAC/B,2CAAiC,CAAA;QACjC,6CAAmC,CAAA;QACnC,2CAAiC,CAAA;QACjC,2CAAiC,CAAA;QACjC,mDAAyC,CAAA;QACzC,qDAA2C,CAAA;QAC3C,qDAA2C,CAAA;IAC7C,CAAC,EAnBW,MAAM,GAAN,YAAM,KAAN,YAAM,QAmBjB;IAED,IAAY,IAEX;IAFD,WAAY,IAAI;QACd,qBAAa,CAAA;IACf,CAAC,EAFW,IAAI,GAAJ,UAAI,KAAJ,UAAI,QAEf;IAED,IAAY,QASX;IATD,WAAY,QAAQ;QAClB,+BAAmB,CAAA;QACnB,6BAAiB,CAAA;QACjB,2BAAe,CAAA;QACf,qDAAyC,CAAA;QACzC,mDAAuC,CAAA;QACvC,2CAA+B,CAAA;QAC/B,+CAAmC,CAAA;QACnC,uDAA2C,CAAA;IAC7C,CAAC,EATW,QAAQ,GAAR,cAAQ,KAAR,cAAQ,QASnB;AACH,CAAC,EApCgB,KAAK,KAAL,KAAK,QAoCrB","sourcesContent":["export namespace Shape {\n export enum Lockup {\n Linear = \"linear\",\n Cliff = \"cliff\",\n DynamicCliffExponential = \"dynamicCliffExponential\",\n DynamicExponential = \"dynamicExponential\",\n TranchedBackweighted = \"tranchedBackweighted\",\n TranchedStepper = \"tranchedStepper\",\n TranchedMonthly = \"tranchedMonthly\",\n TranchedTimelock = \"tranchedTimelock\",\n LinearUnlockLinear = \"linearUnlockLinear\",\n LinearUnlockCliff = \"linearUnlockCliff\",\n LinearStepper = \"linearStepper\",\n LinearTimelock = \"linearTimelock\",\n DynamicTimelock = \"dynamicTimelock\",\n DynamicMonthly = \"dynamicMonthly\",\n DynamicStepper = \"dynamicStepper\",\n DynamicUnlockCliff = \"dynamicUnlockCliff\",\n DynamicUnlockLinear = \"dynamicUnlockLinear\",\n DynamicDoubleUnlock = \"dynamicDoubleUnlock\",\n }\n\n export enum Flow {\n Flow = \"flow\",\n }\n\n export enum Airdrops {\n Instant = \"instant\",\n Linear = \"linear\",\n Cliff = \"cliff\",\n LinearUnlockLinear = \"linearUnlockLinear\",\n LinearUnlockCliff = \"linearUnlockCliff\",\n LinearStepper = \"linearStepper\",\n TranchedStepper = \"tranchedStepper\",\n VariableClaimAmount = \"variableClaimAmount\",\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { FLOW_EVM } from "./constants.js";
1
+ import { FLOW_EVM } from "./contracts.js";
2
2
  import { Shape } from "./enums.js";
3
3
  import { defineFlowShape } from "./types.js";
4
4
  export const flow = defineFlowShape(Shape.Flow.Flow, {
@@ -1 +1 @@
1
- {"version":3,"file":"flow.js","sourceRoot":"","sources":["../../../src/shapes/flow.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAM7C,MAAM,CAAC,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;IACnD,GAAG,EAAE,QAAQ;IACb,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,MAAM;CACb,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI;CACY,CAAC","sourcesContent":["/**\n * Flow shapes.\n *\n * Continuous streaming with real-time per-second vesting.\n */\n\nimport { FLOW_EVM } from \"./constants.js\";\nimport { Shape } from \"./enums.js\";\nimport type { FlowShapesRecord } from \"./types.js\";\nimport { defineFlowShape } from \"./types.js\";\n\n/**\n * Flow streaming.\n * Continuous streaming with adjustable rate and real-time withdrawals.\n */\nexport const flow = defineFlowShape(Shape.Flow.Flow, {\n evm: FLOW_EVM,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Flow\",\n});\n\n/** All Flow shapes indexed by ID */\nexport const flowShapes = {\n [Shape.Flow.Flow]: flow,\n} as const satisfies FlowShapesRecord;\n"]}
1
+ {"version":3,"file":"flow.js","sourceRoot":"","sources":["../../../src/shapes/flow.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAC1C,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAEnC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAM7C,MAAM,CAAC,MAAM,IAAI,GAAG,eAAe,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE;IACnD,GAAG,EAAE,QAAQ;IACb,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,MAAM;CACb,CAAC,CAAC;AAGH,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,IAAI;CACY,CAAC","sourcesContent":["/**\n * Flow shapes.\n *\n * Continuous streaming with real-time per-second vesting.\n */\n\nimport { FLOW_EVM } from \"./contracts.js\";\nimport { Shape } from \"./enums.js\";\nimport type { FlowShapesRecord } from \"./types.js\";\nimport { defineFlowShape } from \"./types.js\";\n\n/**\n * Flow streaming.\n * Continuous streaming with adjustable rate and real-time withdrawals.\n */\nexport const flow = defineFlowShape(Shape.Flow.Flow, {\n evm: FLOW_EVM,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Flow\",\n});\n\n/** All Flow shapes indexed by ID */\nexport const flowShapes = {\n [Shape.Flow.Flow]: flow,\n} as const satisfies FlowShapesRecord;\n"]}
@@ -1,4 +1,4 @@
1
- import { LOCKUP_EVM_LD } from "../constants.js";
1
+ import { LOCKUP_EVM_LD } from "../contracts.js";
2
2
  import { Shape } from "../enums.js";
3
3
  import { defineLockupShape } from "../types.js";
4
4
  export const dynamicExponential = defineLockupShape(Shape.Lockup.DynamicExponential, {
@@ -1 +1 @@
1
- {"version":3,"file":"dynamic.js","sourceRoot":"","sources":["../../../../src/shapes/lockup/dynamic.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAMhD,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,EAAE;IACnF,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,qBAAqB;CAC5B,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,uBAAuB,EAAE;IAC7F,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,2BAA2B;CAClC,CAAC,CAAC;AAWH,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE;IAC7E,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,IAAI;IAClB,IAAI,EAAE,kBAAkB;CACzB,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE;IAC3E,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,IAAI;IAClB,IAAI,EAAE,iBAAiB;CACxB,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE;IAC3E,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,IAAI;IAClB,IAAI,EAAE,iBAAiB;CACxB,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,EAAE;IACnF,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,IAAI;IAClB,IAAI,EAAE,sBAAsB;CAC7B,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,EAAE;IACrF,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,IAAI;IAClB,IAAI,EAAE,uBAAuB;CAC9B,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,EAAE;IACrF,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,uBAAuB;CAC9B,CAAC,CAAC","sourcesContent":["/**\n * Dynamic-based (LD) lockup shapes.\n *\n * These shapes use the LockupDynamic contract family with custom\n * segment-based vesting curves.\n */\n\nimport { LOCKUP_EVM_LD } from \"../constants.js\";\nimport { Shape } from \"../enums.js\";\nimport { defineLockupShape } from \"../types.js\";\n\n/**\n * Exponential vesting curve.\n * Tokens vest slowly at first, then accelerate toward the end.\n */\nexport const dynamicExponential = defineLockupShape(Shape.Lockup.DynamicExponential, {\n evm: LOCKUP_EVM_LD,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Dynamic Exponential\",\n});\n\n/**\n * Cliff followed by exponential vesting.\n * No tokens until cliff, then exponential acceleration.\n */\nexport const dynamicCliffExponential = defineLockupShape(Shape.Lockup.DynamicCliffExponential, {\n evm: LOCKUP_EVM_LD,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Dynamic Cliff Exponential\",\n});\n\n/**\n * Dynamic timelock.\n * All tokens unlock at a specific timestamp via dynamic segments.\n *\n * @remarks\n * Timelocks used to be created with LockupDynamic (from 2023 through early 2024).\n * When LockupTranched shipped in July 2024, new timelocks use LockupTranched instead.\n * @see https://github.com/sablier-labs/lockup/blob/main/CHANGELOG.md\n */\nexport const dynamicTimelock = defineLockupShape(Shape.Lockup.DynamicTimelock, {\n evm: LOCKUP_EVM_LD,\n hasPredictableGas: true,\n isDeprecated: true,\n name: \"Dynamic Timelock\",\n});\n\n/**\n * Monthly vesting via dynamic segments.\n * Tokens unlock in monthly increments.\n */\nexport const dynamicMonthly = defineLockupShape(Shape.Lockup.DynamicMonthly, {\n evm: LOCKUP_EVM_LD,\n hasPredictableGas: true,\n isDeprecated: true,\n name: \"Dynamic Monthly\",\n});\n\n/**\n * Step-based vesting via dynamic segments.\n * Tokens unlock in discrete steps at regular intervals.\n */\nexport const dynamicStepper = defineLockupShape(Shape.Lockup.DynamicStepper, {\n evm: LOCKUP_EVM_LD,\n hasPredictableGas: true,\n isDeprecated: true,\n name: \"Dynamic Stepper\",\n});\n\n/**\n * Dynamic with initial unlock, then cliff.\n * A percentage unlocks immediately, remainder after cliff via segments.\n */\nexport const dynamicUnlockCliff = defineLockupShape(Shape.Lockup.DynamicUnlockCliff, {\n evm: LOCKUP_EVM_LD,\n hasPredictableGas: true,\n isDeprecated: true,\n name: \"Dynamic Unlock Cliff\",\n});\n\n/**\n * Dynamic with initial unlock, then linear vesting.\n * A percentage unlocks immediately, remainder vests linearly via segments.\n */\nexport const dynamicUnlockLinear = defineLockupShape(Shape.Lockup.DynamicUnlockLinear, {\n evm: LOCKUP_EVM_LD,\n hasPredictableGas: true,\n isDeprecated: true,\n name: \"Dynamic Unlock Linear\",\n});\n\n/**\n * Double unlock pattern.\n * Two distinct unlock events with a waiting period between.\n */\nexport const dynamicDoubleUnlock = defineLockupShape(Shape.Lockup.DynamicDoubleUnlock, {\n evm: LOCKUP_EVM_LD,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Dynamic Double Unlock\",\n});\n"]}
1
+ {"version":3,"file":"dynamic.js","sourceRoot":"","sources":["../../../../src/shapes/lockup/dynamic.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAMhD,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,EAAE;IACnF,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,qBAAqB;CAC5B,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,uBAAuB,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,uBAAuB,EAAE;IAC7F,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,2BAA2B;CAClC,CAAC,CAAC;AAWH,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE;IAC7E,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,IAAI;IAClB,IAAI,EAAE,kBAAkB;CACzB,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE;IAC3E,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,IAAI;IAClB,IAAI,EAAE,iBAAiB;CACxB,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE;IAC3E,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,IAAI;IAClB,IAAI,EAAE,iBAAiB;CACxB,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,EAAE;IACnF,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,IAAI;IAClB,IAAI,EAAE,sBAAsB;CAC7B,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,EAAE;IACrF,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,IAAI;IAClB,IAAI,EAAE,uBAAuB;CAC9B,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,mBAAmB,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,mBAAmB,EAAE;IACrF,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,uBAAuB;CAC9B,CAAC,CAAC","sourcesContent":["/**\n * Dynamic-based (LD) lockup shapes.\n *\n * These shapes use the LockupDynamic contract family with custom\n * segment-based vesting curves.\n */\n\nimport { LOCKUP_EVM_LD } from \"../contracts.js\";\nimport { Shape } from \"../enums.js\";\nimport { defineLockupShape } from \"../types.js\";\n\n/**\n * Exponential vesting curve.\n * Tokens vest slowly at first, then accelerate toward the end.\n */\nexport const dynamicExponential = defineLockupShape(Shape.Lockup.DynamicExponential, {\n evm: LOCKUP_EVM_LD,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Dynamic Exponential\",\n});\n\n/**\n * Cliff followed by exponential vesting.\n * No tokens until cliff, then exponential acceleration.\n */\nexport const dynamicCliffExponential = defineLockupShape(Shape.Lockup.DynamicCliffExponential, {\n evm: LOCKUP_EVM_LD,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Dynamic Cliff Exponential\",\n});\n\n/**\n * Dynamic timelock.\n * All tokens unlock at a specific timestamp via dynamic segments.\n *\n * @remarks\n * Timelocks used to be created with LockupDynamic (from 2023 through early 2024).\n * When LockupTranched shipped in July 2024, new timelocks use LockupTranched instead.\n * @see https://github.com/sablier-labs/lockup/blob/main/CHANGELOG.md\n */\nexport const dynamicTimelock = defineLockupShape(Shape.Lockup.DynamicTimelock, {\n evm: LOCKUP_EVM_LD,\n hasPredictableGas: true,\n isDeprecated: true,\n name: \"Dynamic Timelock\",\n});\n\n/**\n * Monthly vesting via dynamic segments.\n * Tokens unlock in monthly increments.\n */\nexport const dynamicMonthly = defineLockupShape(Shape.Lockup.DynamicMonthly, {\n evm: LOCKUP_EVM_LD,\n hasPredictableGas: true,\n isDeprecated: true,\n name: \"Dynamic Monthly\",\n});\n\n/**\n * Step-based vesting via dynamic segments.\n * Tokens unlock in discrete steps at regular intervals.\n */\nexport const dynamicStepper = defineLockupShape(Shape.Lockup.DynamicStepper, {\n evm: LOCKUP_EVM_LD,\n hasPredictableGas: true,\n isDeprecated: true,\n name: \"Dynamic Stepper\",\n});\n\n/**\n * Dynamic with initial unlock, then cliff.\n * A percentage unlocks immediately, remainder after cliff via segments.\n */\nexport const dynamicUnlockCliff = defineLockupShape(Shape.Lockup.DynamicUnlockCliff, {\n evm: LOCKUP_EVM_LD,\n hasPredictableGas: true,\n isDeprecated: true,\n name: \"Dynamic Unlock Cliff\",\n});\n\n/**\n * Dynamic with initial unlock, then linear vesting.\n * A percentage unlocks immediately, remainder vests linearly via segments.\n */\nexport const dynamicUnlockLinear = defineLockupShape(Shape.Lockup.DynamicUnlockLinear, {\n evm: LOCKUP_EVM_LD,\n hasPredictableGas: true,\n isDeprecated: true,\n name: \"Dynamic Unlock Linear\",\n});\n\n/**\n * Double unlock pattern.\n * Two distinct unlock events with a waiting period between.\n */\nexport const dynamicDoubleUnlock = defineLockupShape(Shape.Lockup.DynamicDoubleUnlock, {\n evm: LOCKUP_EVM_LD,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Dynamic Double Unlock\",\n});\n"]}
@@ -1,4 +1,4 @@
1
- import { LOCKUP_EVM_LL, LOCKUP_EVM_LL_V2, LOCKUP_EVM_LL_V4, LOCKUP_SOLANA_LL, } from "../constants.js";
1
+ import { LOCKUP_EVM_LL, LOCKUP_SOLANA_LL, LOCKUP_V2_EVM_LL, LOCKUP_V4_EVM_LL, } from "../contracts.js";
2
2
  import { Shape } from "../enums.js";
3
3
  import { defineLockupShape } from "../types.js";
4
4
  export const linear = defineLockupShape(Shape.Lockup.Linear, {
@@ -16,27 +16,27 @@ export const cliff = defineLockupShape(Shape.Lockup.Cliff, {
16
16
  solana: LOCKUP_SOLANA_LL,
17
17
  });
18
18
  export const linearUnlockLinear = defineLockupShape(Shape.Lockup.LinearUnlockLinear, {
19
- evm: LOCKUP_EVM_LL_V2,
19
+ evm: LOCKUP_V2_EVM_LL,
20
20
  hasPredictableGas: true,
21
21
  isDeprecated: false,
22
22
  name: "Linear Unlock Linear",
23
23
  solana: LOCKUP_SOLANA_LL,
24
24
  });
25
25
  export const linearUnlockCliff = defineLockupShape(Shape.Lockup.LinearUnlockCliff, {
26
- evm: LOCKUP_EVM_LL_V2,
26
+ evm: LOCKUP_V2_EVM_LL,
27
27
  hasPredictableGas: true,
28
28
  isDeprecated: false,
29
29
  name: "Linear Unlock Cliff",
30
30
  solana: LOCKUP_SOLANA_LL,
31
31
  });
32
32
  export const linearStepper = defineLockupShape(Shape.Lockup.LinearStepper, {
33
- evm: LOCKUP_EVM_LL_V4,
33
+ evm: LOCKUP_V4_EVM_LL,
34
34
  hasPredictableGas: true,
35
35
  isDeprecated: false,
36
36
  name: "Linear Stepper",
37
37
  });
38
38
  export const linearTimelock = defineLockupShape(Shape.Lockup.LinearTimelock, {
39
- evm: LOCKUP_EVM_LL_V2,
39
+ evm: LOCKUP_V2_EVM_LL,
40
40
  hasPredictableGas: true,
41
41
  isDeprecated: false,
42
42
  name: "Linear Timelock",
@@ -1 +1 @@
1
- {"version":3,"file":"linear.js","sourceRoot":"","sources":["../../../../src/shapes/lockup/linear.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAMhD,MAAM,CAAC,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;IAC3D,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,gBAAgB;CACzB,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;IACzD,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,OAAO;IACb,MAAM,EAAE,gBAAgB;CACzB,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,EAAE;IACnF,GAAG,EAAE,gBAAgB;IACrB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,sBAAsB;IAC5B,MAAM,EAAE,gBAAgB;CACzB,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,EAAE;IACjF,GAAG,EAAE,gBAAgB;IACrB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,qBAAqB;IAC3B,MAAM,EAAE,gBAAgB;CACzB,CAAC,CAAC;AASH,MAAM,CAAC,MAAM,aAAa,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE;IACzE,GAAG,EAAE,gBAAgB;IACrB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,gBAAgB;CACvB,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE;IAC3E,GAAG,EAAE,gBAAgB;IACrB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,iBAAiB;IACvB,MAAM,EAAE,gBAAgB;CACzB,CAAC,CAAC","sourcesContent":["/**\n * Linear-based (LL) lockup shapes.\n *\n * These shapes use the LockupLinear contract family and share common\n * EVM contract configurations.\n */\n\nimport {\n LOCKUP_EVM_LL,\n LOCKUP_EVM_LL_V2,\n LOCKUP_EVM_LL_V4,\n LOCKUP_SOLANA_LL,\n} from \"../constants.js\";\nimport { Shape } from \"../enums.js\";\nimport { defineLockupShape } from \"../types.js\";\n\n/**\n * Basic linear vesting.\n * Tokens vest continuously from start to end timestamp.\n */\nexport const linear = defineLockupShape(Shape.Lockup.Linear, {\n evm: LOCKUP_EVM_LL,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Linear\",\n solana: LOCKUP_SOLANA_LL,\n});\n\n/**\n * Linear vesting with cliff.\n * No tokens vest until cliff, then linear vesting from cliff to end.\n */\nexport const cliff = defineLockupShape(Shape.Lockup.Cliff, {\n evm: LOCKUP_EVM_LL,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Cliff\",\n solana: LOCKUP_SOLANA_LL,\n});\n\n/**\n * Linear with initial unlock, then linear vesting.\n * A percentage unlocks immediately, remainder vests linearly.\n */\nexport const linearUnlockLinear = defineLockupShape(Shape.Lockup.LinearUnlockLinear, {\n evm: LOCKUP_EVM_LL_V2,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Linear Unlock Linear\",\n solana: LOCKUP_SOLANA_LL,\n});\n\n/**\n * Linear with initial unlock, then cliff.\n * A percentage unlocks immediately, remainder vests after cliff.\n */\nexport const linearUnlockCliff = defineLockupShape(Shape.Lockup.LinearUnlockCliff, {\n evm: LOCKUP_EVM_LL_V2,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Linear Unlock Cliff\",\n solana: LOCKUP_SOLANA_LL,\n});\n\n/**\n * Step-based vesting via linear granularity.\n * Tokens vest in discrete steps at regular intervals using LockupLinear with granularity.\n *\n * @remarks\n * Replaces {@link tranchedStepper} by leveraging the granularity feature introduced in Lockup v4.0.\n */\nexport const linearStepper = defineLockupShape(Shape.Lockup.LinearStepper, {\n evm: LOCKUP_EVM_LL_V4,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Linear Stepper\",\n});\n\n/**\n * Linear timelock.\n * All tokens unlock at a specific timestamp (no gradual vesting).\n */\nexport const linearTimelock = defineLockupShape(Shape.Lockup.LinearTimelock, {\n evm: LOCKUP_EVM_LL_V2,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Linear Timelock\",\n solana: LOCKUP_SOLANA_LL,\n});\n"]}
1
+ {"version":3,"file":"linear.js","sourceRoot":"","sources":["../../../../src/shapes/lockup/linear.ts"],"names":[],"mappings":"AAOA,OAAO,EACL,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAMhD,MAAM,CAAC,MAAM,MAAM,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE;IAC3D,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,QAAQ;IACd,MAAM,EAAE,gBAAgB;CACzB,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,KAAK,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE;IACzD,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,OAAO;IACb,MAAM,EAAE,gBAAgB;CACzB,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,kBAAkB,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,kBAAkB,EAAE;IACnF,GAAG,EAAE,gBAAgB;IACrB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,sBAAsB;IAC5B,MAAM,EAAE,gBAAgB;CACzB,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,iBAAiB,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,iBAAiB,EAAE;IACjF,GAAG,EAAE,gBAAgB;IACrB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,qBAAqB;IAC3B,MAAM,EAAE,gBAAgB;CACzB,CAAC,CAAC;AASH,MAAM,CAAC,MAAM,aAAa,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,aAAa,EAAE;IACzE,GAAG,EAAE,gBAAgB;IACrB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,gBAAgB;CACvB,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,cAAc,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,cAAc,EAAE;IAC3E,GAAG,EAAE,gBAAgB;IACrB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,iBAAiB;IACvB,MAAM,EAAE,gBAAgB;CACzB,CAAC,CAAC","sourcesContent":["/**\n * Linear-based (LL) lockup shapes.\n *\n * These shapes use the LockupLinear contract family and share common\n * EVM contract configurations.\n */\n\nimport {\n LOCKUP_EVM_LL,\n LOCKUP_SOLANA_LL,\n LOCKUP_V2_EVM_LL,\n LOCKUP_V4_EVM_LL,\n} from \"../contracts.js\";\nimport { Shape } from \"../enums.js\";\nimport { defineLockupShape } from \"../types.js\";\n\n/**\n * Basic linear vesting.\n * Tokens vest continuously from start to end timestamp.\n */\nexport const linear = defineLockupShape(Shape.Lockup.Linear, {\n evm: LOCKUP_EVM_LL,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Linear\",\n solana: LOCKUP_SOLANA_LL,\n});\n\n/**\n * Linear vesting with cliff.\n * No tokens vest until cliff, then linear vesting from cliff to end.\n */\nexport const cliff = defineLockupShape(Shape.Lockup.Cliff, {\n evm: LOCKUP_EVM_LL,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Cliff\",\n solana: LOCKUP_SOLANA_LL,\n});\n\n/**\n * Linear with initial unlock, then linear vesting.\n * A percentage unlocks immediately, remainder vests linearly.\n */\nexport const linearUnlockLinear = defineLockupShape(Shape.Lockup.LinearUnlockLinear, {\n evm: LOCKUP_V2_EVM_LL,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Linear Unlock Linear\",\n solana: LOCKUP_SOLANA_LL,\n});\n\n/**\n * Linear with initial unlock, then cliff.\n * A percentage unlocks immediately, remainder vests after cliff.\n */\nexport const linearUnlockCliff = defineLockupShape(Shape.Lockup.LinearUnlockCliff, {\n evm: LOCKUP_V2_EVM_LL,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Linear Unlock Cliff\",\n solana: LOCKUP_SOLANA_LL,\n});\n\n/**\n * Step-based vesting via linear granularity.\n * Tokens vest in discrete steps at regular intervals using LockupLinear with granularity.\n *\n * @remarks\n * Replaces {@link tranchedStepper} by leveraging the granularity feature introduced in Lockup v4.0.\n */\nexport const linearStepper = defineLockupShape(Shape.Lockup.LinearStepper, {\n evm: LOCKUP_V4_EVM_LL,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Linear Stepper\",\n});\n\n/**\n * Linear timelock.\n * All tokens unlock at a specific timestamp (no gradual vesting).\n */\nexport const linearTimelock = defineLockupShape(Shape.Lockup.LinearTimelock, {\n evm: LOCKUP_V2_EVM_LL,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Linear Timelock\",\n solana: LOCKUP_SOLANA_LL,\n});\n"]}
@@ -1,4 +1,4 @@
1
- import { LOCKUP_EVM_LT } from "../constants.js";
1
+ import { LOCKUP_EVM_LT } from "../contracts.js";
2
2
  import { Shape } from "../enums.js";
3
3
  import { defineLockupShape } from "../types.js";
4
4
  export const tranchedStepper = defineLockupShape(Shape.Lockup.TranchedStepper, {
@@ -1 +1 @@
1
- {"version":3,"file":"tranched.js","sourceRoot":"","sources":["../../../../src/shapes/lockup/tranched.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAUhD,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE;IAC7E,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,IAAI;IAClB,IAAI,EAAE,kBAAkB;CACzB,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE;IAC7E,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,kBAAkB;CACzB,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,EAAE;IAC/E,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,mBAAmB;CAC1B,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,EAAE;IACvF,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,uBAAuB;CAC9B,CAAC,CAAC","sourcesContent":["/**\n * Tranched-style lockup shapes.\n *\n * These shapes use the LockupTranched (LT) contract family with discrete\n * tranche-based unlocks.\n *\n * @remarks\n * LockupTranched was introduced in v1.2 (July 2024).\n */\n\nimport { LOCKUP_EVM_LT } from \"../constants.js\";\nimport { Shape } from \"../enums.js\";\nimport { defineLockupShape } from \"../types.js\";\n\n/**\n * Step-based vesting via tranches.\n * Tokens unlock in discrete steps at regular intervals.\n *\n * @remarks\n * Deprecated in favor of {@link linearStepper}, which uses LockupLinear with the\n * granularity feature introduced in Lockup v4.0.\n */\nexport const tranchedStepper = defineLockupShape(Shape.Lockup.TranchedStepper, {\n evm: LOCKUP_EVM_LT,\n hasPredictableGas: false,\n isDeprecated: true,\n name: \"Tranched Stepper\",\n});\n\n/**\n * Monthly vesting via tranches.\n * Tokens unlock monthly.\n */\nexport const tranchedMonthly = defineLockupShape(Shape.Lockup.TranchedMonthly, {\n evm: LOCKUP_EVM_LT,\n hasPredictableGas: false,\n isDeprecated: false,\n name: \"Tranched Monthly\",\n});\n\n/**\n * Tranched timelock.\n * All tokens unlock at a specific timestamp via a single tranche.\n */\nexport const tranchedTimelock = defineLockupShape(Shape.Lockup.TranchedTimelock, {\n evm: LOCKUP_EVM_LT,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Tranched Timelock\",\n});\n\n/**\n * Backweighted tranches.\n * Larger amounts unlock toward the end of the schedule.\n */\nexport const tranchedBackweighted = defineLockupShape(Shape.Lockup.TranchedBackweighted, {\n evm: LOCKUP_EVM_LT,\n hasPredictableGas: false,\n isDeprecated: false,\n name: \"Tranched Backweighted\",\n});\n"]}
1
+ {"version":3,"file":"tranched.js","sourceRoot":"","sources":["../../../../src/shapes/lockup/tranched.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAUhD,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE;IAC7E,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,IAAI;IAClB,IAAI,EAAE,kBAAkB;CACzB,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,eAAe,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,eAAe,EAAE;IAC7E,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,kBAAkB;CACzB,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,gBAAgB,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,gBAAgB,EAAE;IAC/E,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,IAAI;IACvB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,mBAAmB;CAC1B,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,oBAAoB,GAAG,iBAAiB,CAAC,KAAK,CAAC,MAAM,CAAC,oBAAoB,EAAE;IACvF,GAAG,EAAE,aAAa;IAClB,iBAAiB,EAAE,KAAK;IACxB,YAAY,EAAE,KAAK;IACnB,IAAI,EAAE,uBAAuB;CAC9B,CAAC,CAAC","sourcesContent":["/**\n * Tranched-style lockup shapes.\n *\n * These shapes use the LockupTranched (LT) contract family with discrete\n * tranche-based unlocks.\n *\n * @remarks\n * LockupTranched was introduced in v1.2 (July 2024).\n */\n\nimport { LOCKUP_EVM_LT } from \"../contracts.js\";\nimport { Shape } from \"../enums.js\";\nimport { defineLockupShape } from \"../types.js\";\n\n/**\n * Step-based vesting via tranches.\n * Tokens unlock in discrete steps at regular intervals.\n *\n * @remarks\n * Deprecated in favor of {@link linearStepper}, which uses LockupLinear with the\n * granularity feature introduced in Lockup v4.0.\n */\nexport const tranchedStepper = defineLockupShape(Shape.Lockup.TranchedStepper, {\n evm: LOCKUP_EVM_LT,\n hasPredictableGas: false,\n isDeprecated: true,\n name: \"Tranched Stepper\",\n});\n\n/**\n * Monthly vesting via tranches.\n * Tokens unlock monthly.\n */\nexport const tranchedMonthly = defineLockupShape(Shape.Lockup.TranchedMonthly, {\n evm: LOCKUP_EVM_LT,\n hasPredictableGas: false,\n isDeprecated: false,\n name: \"Tranched Monthly\",\n});\n\n/**\n * Tranched timelock.\n * All tokens unlock at a specific timestamp via a single tranche.\n */\nexport const tranchedTimelock = defineLockupShape(Shape.Lockup.TranchedTimelock, {\n evm: LOCKUP_EVM_LT,\n hasPredictableGas: true,\n isDeprecated: false,\n name: \"Tranched Timelock\",\n});\n\n/**\n * Backweighted tranches.\n * Larger amounts unlock toward the end of the schedule.\n */\nexport const tranchedBackweighted = defineLockupShape(Shape.Lockup.TranchedBackweighted, {\n evm: LOCKUP_EVM_LT,\n hasPredictableGas: false,\n isDeprecated: false,\n name: \"Tranched Backweighted\",\n});\n"]}
@@ -14,6 +14,9 @@ export type DynamicDoubleUnlockColumns = LinearColumns & {
14
14
  secondUnlockDuration: string;
15
15
  };
16
16
  export type DynamicExponentialColumns = LinearColumns;
17
+ export type LinearStepperColumns = LinearColumns & {
18
+ granularity: string;
19
+ };
17
20
  export type TranchedStepperColumns = LinearColumns & {
18
21
  stepCount: string;
19
22
  };
@@ -26,5 +29,5 @@ export type LinearUnlockCliffColumns = LinearColumns & {
26
29
  export type LinearUnlockLinearColumns = LinearColumns & {
27
30
  unlockAmount: string;
28
31
  };
29
- export type Columns = CliffColumns | DynamicDoubleUnlockColumns | DynamicCliffExponentialColumns | DynamicExponentialColumns | LinearColumns | TranchedStepperColumns | TranchedTimelockColumns | LinearUnlockCliffColumns | LinearUnlockLinearColumns;
32
+ export type Columns = CliffColumns | DynamicCliffExponentialColumns | DynamicDoubleUnlockColumns | DynamicExponentialColumns | LinearColumns | LinearStepperColumns | LinearUnlockCliffColumns | LinearUnlockLinearColumns | TranchedStepperColumns | TranchedTimelockColumns;
30
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/evm/csv/lockup/duration/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG;IAExC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAGF,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG;IAEzC,WAAW,EAAE,MAAM,CAAC;IAEpB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAMF,MAAM,MAAM,8BAA8B,GAAG,YAAY,CAAC;AAG1D,MAAM,MAAM,0BAA0B,GAAG,aAAa,GAAG;IAEvD,iBAAiB,EAAE,MAAM,CAAC;IAE1B,mBAAmB,EAAE,MAAM,CAAC;IAE5B,kBAAkB,EAAE,MAAM,CAAC;IAE3B,oBAAoB,EAAE,MAAM,CAAC;CAC9B,CAAC;AAMF,MAAM,MAAM,yBAAyB,GAAG,aAAa,CAAC;AAGtD,MAAM,MAAM,sBAAsB,GAAG,aAAa,GAAG;IAEnD,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAMF,MAAM,MAAM,uBAAuB,GAAG,aAAa,CAAC;AAGpD,MAAM,MAAM,wBAAwB,GAAG,aAAa,GAAG;IAErD,YAAY,EAAE,MAAM,CAAC;IAErB,WAAW,EAAE,MAAM,CAAC;IAEpB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAGF,MAAM,MAAM,yBAAyB,GAAG,aAAa,GAAG;IAEtD,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAGF,MAAM,MAAM,OAAO,GACf,YAAY,GACZ,0BAA0B,GAC1B,8BAA8B,GAC9B,yBAAyB,GACzB,aAAa,GACb,sBAAsB,GACtB,uBAAuB,GACvB,wBAAwB,GACxB,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/evm/csv/lockup/duration/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG;IAExC,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAGF,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG;IAEzC,WAAW,EAAE,MAAM,CAAC;IAEpB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAMF,MAAM,MAAM,8BAA8B,GAAG,YAAY,CAAC;AAG1D,MAAM,MAAM,0BAA0B,GAAG,aAAa,GAAG;IAEvD,iBAAiB,EAAE,MAAM,CAAC;IAE1B,mBAAmB,EAAE,MAAM,CAAC;IAE5B,kBAAkB,EAAE,MAAM,CAAC;IAE3B,oBAAoB,EAAE,MAAM,CAAC;CAC9B,CAAC;AAMF,MAAM,MAAM,yBAAyB,GAAG,aAAa,CAAC;AAGtD,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IAEjD,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAGF,MAAM,MAAM,sBAAsB,GAAG,aAAa,GAAG;IAEnD,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAMF,MAAM,MAAM,uBAAuB,GAAG,aAAa,CAAC;AAGpD,MAAM,MAAM,wBAAwB,GAAG,aAAa,GAAG;IAErD,YAAY,EAAE,MAAM,CAAC;IAErB,WAAW,EAAE,MAAM,CAAC;IAEpB,aAAa,EAAE,MAAM,CAAC;CACvB,CAAC;AAGF,MAAM,MAAM,yBAAyB,GAAG,aAAa,GAAG;IAEtD,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAGF,MAAM,MAAM,OAAO,GACf,YAAY,GACZ,8BAA8B,GAC9B,0BAA0B,GAC1B,yBAAyB,GACzB,aAAa,GACb,oBAAoB,GACpB,wBAAwB,GACxB,yBAAyB,GACzB,sBAAsB,GACtB,uBAAuB,CAAC"}
@@ -24,6 +24,9 @@ export type TranchedMonthlyColumns = BaseColumns & {
24
24
  startAt: string;
25
25
  monthCount: string;
26
26
  };
27
+ export type LinearStepperColumns = LinearColumns & {
28
+ granularity: string;
29
+ };
27
30
  export type TranchedStepperColumns = LinearColumns & {
28
31
  stepCount: string;
29
32
  };
@@ -38,5 +41,5 @@ export type LinearUnlockCliffColumns = LinearColumns & {
38
41
  export type LinearUnlockLinearColumns = LinearColumns & {
39
42
  unlockAmount: string;
40
43
  };
41
- export type Columns = TranchedBackweightedColumns | CliffColumns | DynamicDoubleUnlockColumns | DynamicCliffExponentialColumns | DynamicExponentialColumns | LinearColumns | TranchedMonthlyColumns | TranchedStepperColumns | TranchedTimelockColumns | LinearUnlockCliffColumns | LinearUnlockLinearColumns;
44
+ export type Columns = TranchedBackweightedColumns | CliffColumns | DynamicDoubleUnlockColumns | DynamicCliffExponentialColumns | DynamicExponentialColumns | LinearColumns | LinearStepperColumns | TranchedMonthlyColumns | TranchedStepperColumns | TranchedTimelockColumns | LinearUnlockCliffColumns | LinearUnlockLinearColumns;
42
45
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/evm/csv/lockup/range/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,MAAM,MAAM,2BAA2B,GAAG,WAAW,GAAG;IAGtD,OAAO,EAAE,MAAM,CAAC;IAEhB,iBAAiB,EAAE,MAAM,CAAC;IAE1B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAGF,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG;IAExC,OAAO,EAAE,MAAM,CAAC;IAEhB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAGF,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG;IAEzC,WAAW,EAAE,MAAM,CAAC;IAEpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAMF,MAAM,MAAM,8BAA8B,GAAG,YAAY,CAAC;AAG1D,MAAM,MAAM,0BAA0B,GAAG,aAAa,GAAG;IAEvD,iBAAiB,EAAE,MAAM,CAAC;IAE1B,aAAa,EAAE,MAAM,CAAC;IAEtB,kBAAkB,EAAE,MAAM,CAAC;IAE3B,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAMF,MAAM,MAAM,yBAAyB,GAAG,aAAa,CAAC;AAGtD,MAAM,MAAM,sBAAsB,GAAG,WAAW,GAAG;IAEjD,OAAO,EAAE,MAAM,CAAC;IAEhB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAGF,MAAM,MAAM,sBAAsB,GAAG,aAAa,GAAG;IAEnD,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAGF,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAAG;IAElD,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAGF,MAAM,MAAM,wBAAwB,GAAG,aAAa,GAAG;IAErD,YAAY,EAAE,MAAM,CAAC;IAErB,WAAW,EAAE,MAAM,CAAC;IAEpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAGF,MAAM,MAAM,yBAAyB,GAAG,aAAa,GAAG;IAEtD,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAGF,MAAM,MAAM,OAAO,GACf,2BAA2B,GAC3B,YAAY,GACZ,0BAA0B,GAC1B,8BAA8B,GAC9B,yBAAyB,GACzB,aAAa,GACb,sBAAsB,GACtB,sBAAsB,GACtB,uBAAuB,GACvB,wBAAwB,GACxB,yBAAyB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/evm/csv/lockup/range/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAGlD,MAAM,MAAM,2BAA2B,GAAG,WAAW,GAAG;IAGtD,OAAO,EAAE,MAAM,CAAC;IAEhB,iBAAiB,EAAE,MAAM,CAAC;IAE1B,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAGF,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG;IAExC,OAAO,EAAE,MAAM,CAAC;IAEhB,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAGF,MAAM,MAAM,YAAY,GAAG,aAAa,GAAG;IAEzC,WAAW,EAAE,MAAM,CAAC;IAEpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAMF,MAAM,MAAM,8BAA8B,GAAG,YAAY,CAAC;AAG1D,MAAM,MAAM,0BAA0B,GAAG,aAAa,GAAG;IAEvD,iBAAiB,EAAE,MAAM,CAAC;IAE1B,aAAa,EAAE,MAAM,CAAC;IAEtB,kBAAkB,EAAE,MAAM,CAAC;IAE3B,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAMF,MAAM,MAAM,yBAAyB,GAAG,aAAa,CAAC;AAGtD,MAAM,MAAM,sBAAsB,GAAG,WAAW,GAAG;IAEjD,OAAO,EAAE,MAAM,CAAC;IAEhB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAGF,MAAM,MAAM,oBAAoB,GAAG,aAAa,GAAG;IAEjD,WAAW,EAAE,MAAM,CAAC;CACrB,CAAC;AAGF,MAAM,MAAM,sBAAsB,GAAG,aAAa,GAAG;IAEnD,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAGF,MAAM,MAAM,uBAAuB,GAAG,WAAW,GAAG;IAElD,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAGF,MAAM,MAAM,wBAAwB,GAAG,aAAa,GAAG;IAErD,YAAY,EAAE,MAAM,CAAC;IAErB,WAAW,EAAE,MAAM,CAAC;IAEpB,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAGF,MAAM,MAAM,yBAAyB,GAAG,aAAa,GAAG;IAEtD,YAAY,EAAE,MAAM,CAAC;CACtB,CAAC;AAGF,MAAM,MAAM,OAAO,GACf,2BAA2B,GAC3B,YAAY,GACZ,0BAA0B,GAC1B,8BAA8B,GAC9B,yBAAyB,GACzB,aAAa,GACb,oBAAoB,GACpB,sBAAsB,GACtB,sBAAsB,GACtB,uBAAuB,GACvB,wBAAwB,GACxB,yBAAyB,CAAC"}
@@ -3,6 +3,7 @@ export declare const airdropShapes: {
3
3
  cliff: import("./types.js").AirdropShapeDefinition<Shape.Airdrops.Cliff>;
4
4
  instant: import("./types.js").AirdropShapeDefinition<Shape.Airdrops.Instant>;
5
5
  linear: import("./types.js").AirdropShapeDefinition<Shape.Airdrops.Linear>;
6
+ linearStepper: import("./types.js").AirdropShapeDefinition<Shape.Airdrops.LinearStepper>;
6
7
  linearUnlockCliff: import("./types.js").AirdropShapeDefinition<Shape.Airdrops.LinearUnlockCliff>;
7
8
  linearUnlockLinear: import("./types.js").AirdropShapeDefinition<Shape.Airdrops.LinearUnlockLinear>;
8
9
  tranchedStepper: import("./types.js").AirdropShapeDefinition<Shape.Airdrops.TranchedStepper>;
@@ -1 +1 @@
1
- {"version":3,"file":"airdrops.d.ts","sourceRoot":"","sources":["../../../src/shapes/airdrops.ts"],"names":[],"mappings":"AAcA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAsFnC,eAAO,MAAM,aAAa;;;;;;;;CAQK,CAAC"}
1
+ {"version":3,"file":"airdrops.d.ts","sourceRoot":"","sources":["../../../src/shapes/airdrops.ts"],"names":[],"mappings":"AAeA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAoGnC,eAAO,MAAM,aAAa;;;;;;;;;CASK,CAAC"}