rocketh 0.12.1 → 0.13.1

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.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # rocketh
2
2
 
3
+ ## 0.13.1
4
+
5
+ ### Patch Changes
6
+
7
+ - rename and allow for variable getters in env
8
+
9
+ ## 0.13.0
10
+
11
+ ### Minor Changes
12
+
13
+ - use env function for extended functions
14
+
3
15
  ## 0.12.1
4
16
 
5
17
  ### Patch Changes
@@ -11,8 +11,8 @@ import { DeployScriptFunction, DeployScriptModule, EnhancedDeployScriptFunction
11
11
  * @example
12
12
  * ```typescript
13
13
  * const functions = {
14
- * deploy: (env: Environment, contractName: string, args: any[]) => Promise<void>,
15
- * verify: (env: Environment, address: string) => Promise<boolean>
14
+ * deploy: (env: Environment) => ((contractName: string, args: any[]) => Promise<void>),
15
+ * verify: (env: Environment) => ((address: string) => Promise<boolean>)
16
16
  * };
17
17
  *
18
18
  * const deployScript = setup(functions);
@@ -28,7 +28,7 @@ import { DeployScriptFunction, DeployScriptModule, EnhancedDeployScriptFunction
28
28
  * }, { tags: ['deploy'] });
29
29
  * ```
30
30
  */
31
- export declare function setup<Functions extends Record<string, (env: Environment<any, any, any>, ...args: any[]) => any> = {}, NamedAccounts extends UnresolvedUnknownNamedAccounts = UnresolvedUnknownNamedAccounts, Data extends UnresolvedNetworkSpecificData = UnresolvedNetworkSpecificData, Deployments extends UnknownDeployments = UnknownDeployments, Extra extends Record<string, unknown> = Record<string, unknown>>(functions: Functions): <ArgumentsType = undefined>(callback: EnhancedDeployScriptFunction<NamedAccounts, Data, ArgumentsType, Deployments, Functions>, options: {
31
+ export declare function setup<Functions extends Record<string, (env: Environment<any, any, any>) => (...args: any[]) => any> = {}, NamedAccounts extends UnresolvedUnknownNamedAccounts = UnresolvedUnknownNamedAccounts, Data extends UnresolvedNetworkSpecificData = UnresolvedNetworkSpecificData, Deployments extends UnknownDeployments = UnknownDeployments, Extra extends Record<string, unknown> = Record<string, unknown>>(functions: Functions): <ArgumentsType = undefined>(callback: EnhancedDeployScriptFunction<NamedAccounts, Data, ArgumentsType, Deployments, Functions>, options: {
32
32
  tags?: string[];
33
33
  dependencies?: string[];
34
34
  id?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,7 @@ import prompts from 'prompts';
4
4
  import { tsImport as tsImport_ } from 'tsx/esm/api';
5
5
  import { formatEther } from 'viem';
6
6
  import { createEnvironment } from '../environment/index.js';
7
- import { withEnvironment } from '../utils/curry.js';
7
+ import { withEnvironment } from '../utils/extensions.js';
8
8
  import { logger, setLogLevel, spin } from '../internal/logging.js';
9
9
  import { getRoughGasPriceEstimate } from '../utils/eth.js';
10
10
  import { traverseMultipleDirectory } from '../utils/fs.js';
@@ -19,8 +19,8 @@ const tsImport = (path, opts) => (typeof Bun !== 'undefined' ? import(path) : ts
19
19
  * @example
20
20
  * ```typescript
21
21
  * const functions = {
22
- * deploy: (env: Environment, contractName: string, args: any[]) => Promise<void>,
23
- * verify: (env: Environment, address: string) => Promise<boolean>
22
+ * deploy: (env: Environment) => ((contractName: string, args: any[]) => Promise<void>),
23
+ * verify: (env: Environment) => ((address: string) => Promise<boolean>)
24
24
  * };
25
25
  *
26
26
  * const deployScript = setup(functions);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"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"}
@@ -1,10 +1,10 @@
1
1
  import type { Environment } from '../environment/types.js';
2
2
  declare const utilityFunctions: {
3
- deployContract: (env: Environment, contractName: string, args?: any[]) => Promise<string>;
4
- verifyContract: (env: Environment, address: string) => Promise<boolean>;
5
- getBalance: (env: Environment, address: string) => Promise<bigint>;
6
- calculateGas: (env: Environment, operation: string) => number;
7
- isDeployed: (env: Environment, contractName: string) => boolean;
3
+ deployContract: (env: Environment) => (contractName: string, args?: any[]) => Promise<string>;
4
+ verifyContract: (env: Environment) => (address: string) => Promise<boolean>;
5
+ getBalance: (env: Environment) => (address: string) => Promise<bigint>;
6
+ calculateGas: (env: Environment) => (operation: string) => number;
7
+ isDeployed: (env: Environment) => (contractName: string) => boolean;
8
8
  };
9
9
  declare const testScript: import("./types.js").DeployScriptModule<import("../environment/types.js").UnresolvedUnknownNamedAccounts, import("../environment/types.js").UnresolvedNetworkSpecificData, undefined, import("../environment/types.js").UnknownDeployments, Record<string, unknown>>;
10
10
  declare function testTypes(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"setup.test.d.ts","sourceRoot":"","sources":["../../src/executor/setup.test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAOzD,QAAA,MAAM,gBAAgB;0BACO,WAAW,gBAAgB,MAAM,SAAQ,GAAG,EAAE,KAAQ,OAAO,CAAC,MAAM,CAAC;0BAKrE,WAAW,WAAW,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;sBAKnD,WAAW,WAAW,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;wBAKlD,WAAW,aAAa,MAAM,KAAG,MAAM;sBAKzC,WAAW,gBAAgB,MAAM,KAAG,OAAO;CAI7D,CAAC;AAMF,QAAA,MAAM,UAAU,sQA+Bf,CAAC;AAGF,iBAAe,SAAS,kBAavB;AAGD,eAAO,MAAM,YAAY,4QAyCxB,CAAC;AAGF,OAAO,EAAC,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAC,CAAC"}
1
+ {"version":3,"file":"setup.test.d.ts","sourceRoot":"","sources":["../../src/executor/setup.test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAOzD,QAAA,MAAM,gBAAgB;0BAEd,WAAW,MACV,cAAc,MAAM,EAAE,OAAM,GAAG,EAAO,KAAG,OAAO,CAAC,MAAM,CAAC;0BAMzD,WAAW,MACV,SAAS,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;sBAMnC,WAAW,MACV,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;wBAMlC,WAAW,MAChB,WAAW,MAAM,KAAG,MAAM;sBAMrB,WAAW,MAChB,cAAc,MAAM,KAAG,OAAO;CAIhC,CAAC;AAMF,QAAA,MAAM,UAAU,sQA+Bf,CAAC;AAGF,iBAAe,SAAS,kBAavB;AAGD,eAAO,MAAM,YAAY,4QA+CxB,CAAC;AAGF,OAAO,EAAC,SAAS,EAAE,UAAU,EAAE,gBAAgB,EAAC,CAAC"}
@@ -3,23 +3,23 @@ import { setup } from './index.js';
3
3
  const mockEnv = {};
4
4
  // Example utility functions that take Environment as first parameter
5
5
  const utilityFunctions = {
6
- deployContract: async (env, contractName, args = []) => {
6
+ deployContract: (env) => async (contractName, args = []) => {
7
7
  console.log(`Deploying ${contractName} with args:`, args);
8
8
  return '0x1234567890123456789012345678901234567890';
9
9
  },
10
- verifyContract: async (env, address) => {
10
+ verifyContract: (env) => async (address) => {
11
11
  console.log(`Verifying contract at ${address}`);
12
12
  return true;
13
13
  },
14
- getBalance: async (env, address) => {
14
+ getBalance: (env) => async (address) => {
15
15
  console.log(`Getting balance for ${address}`);
16
16
  return BigInt('1000000000000000000'); // 1 ETH
17
17
  },
18
- calculateGas: (env, operation) => {
18
+ calculateGas: (env) => (operation) => {
19
19
  console.log(`Calculating gas for ${operation}`);
20
20
  return 21000;
21
21
  },
22
- isDeployed: (env, contractName) => {
22
+ isDeployed: (env) => (contractName) => {
23
23
  console.log(`Checking if ${contractName} is deployed`);
24
24
  return false;
25
25
  },
@@ -71,14 +71,14 @@ async function testTypes() {
71
71
  export const exampleUsage = () => {
72
72
  // Define your utility functions
73
73
  const myFunctions = {
74
- deployERC20: async (env, name, symbol) => {
74
+ deployERC20: (env) => async (name, symbol) => {
75
75
  // Implementation would use env.save, env.network.provider, etc.
76
76
  return '0x...';
77
77
  },
78
- setupPermissions: async (env, contractAddress, admin) => {
78
+ setupPermissions: (env) => async (contractAddress, admin) => {
79
79
  // Implementation would interact with contracts
80
80
  },
81
- verifyOnEtherscan: async (env, address, constructorArgs) => {
81
+ verifyOnEtherscan: (env) => async (address, constructorArgs) => {
82
82
  // Implementation would call verification service
83
83
  return true;
84
84
  },
@@ -1 +1 @@
1
- {"version":3,"file":"setup.test.js","sourceRoot":"","sources":["../../src/executor/setup.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"setup.test.js","sourceRoot":"","sources":["../../src/executor/setup.test.ts"],"names":[],"mappings":"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"}
@@ -9,14 +9,16 @@ export interface DeployScriptModule<NamedAccounts extends UnresolvedUnknownNamed
9
9
  }
10
10
  export type ScriptCallback<NamedAccounts extends UnresolvedUnknownNamedAccounts = UnresolvedUnknownNamedAccounts, Data extends UnresolvedNetworkSpecificData = UnresolvedNetworkSpecificData, Deployments extends UnknownDeployments = UnknownDeployments, Extra extends Record<string, unknown> = Record<string, unknown>> = (env: Environment<NamedAccounts, Data, Deployments, Extra>) => Promise<void>;
11
11
  /**
12
- * Utility type to remove the first parameter from a function type
12
+ * Utility type to extract the return value from a higher-order function
13
+ * For functions of type (firstParam: T) => (...args: any[]) => V or (firstParam: T) => V
13
14
  */
14
- type RemoveFirstParameter<T> = T extends (first: any, ...rest: infer R) => infer Return ? (...args: R) => Return : never;
15
+ export type ExtractReturnFunction<T> = T extends (first: any) => infer Return ? Return : never;
15
16
  /**
16
- * Utility type to transform an object of functions by removing their first parameter
17
+ * Utility type to transform an object of higher-order functions by extracting their return types
18
+ * This handles both regular functions and getter functions
17
19
  */
18
- type CurriedFunctions<T> = {
19
- [K in keyof T]: RemoveFirstParameter<T[K]>;
20
+ export type CurriedFunctions<T> = {
21
+ [K in keyof T]: ExtractReturnFunction<T[K]>;
20
22
  };
21
23
  /**
22
24
  * Type for the enhanced environment proxy that includes both the original environment
@@ -27,5 +29,4 @@ export type EnhancedEnvironment<NamedAccounts extends UnresolvedUnknownNamedAcco
27
29
  * Type for a deploy script function that receives an enhanced environment
28
30
  */
29
31
  export type EnhancedDeployScriptFunction<NamedAccounts extends UnresolvedUnknownNamedAccounts = UnresolvedUnknownNamedAccounts, Data extends UnresolvedNetworkSpecificData = UnresolvedNetworkSpecificData, ArgumentsTypes = undefined, Deployments extends UnknownDeployments = UnknownDeployments, Functions extends Record<string, (env: Environment<NamedAccounts, Data, Deployments>, ...args: any[]) => any> = Record<string, (env: Environment<NamedAccounts, Data, Deployments>, ...args: any[]) => any>, Extra extends Record<string, unknown> = Record<string, unknown>> = (env: EnhancedEnvironment<NamedAccounts, Data, Deployments, Functions, Extra>, args?: ArgumentsTypes) => Promise<void | boolean>;
30
- export {};
31
32
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/executor/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/executor/types.ts"],"names":[],"mappings":"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"}
@@ -1,35 +1,36 @@
1
1
  import type { Environment, UnknownDeployments, UnresolvedNetworkSpecificData, UnresolvedUnknownNamedAccounts } from '../environment/types.js';
2
- /**
3
- * Utility type to remove the first parameter from a function type
4
- */
5
- type RemoveFirstParameter<T> = T extends (first: any, ...rest: infer R) => infer Return ? (...args: R) => Return : never;
6
- /**
7
- * Utility type to transform an object of functions by removing their first parameter
8
- */
9
- type CurriedFunctions<T> = {
10
- [K in keyof T]: RemoveFirstParameter<T[K]>;
11
- };
2
+ import { CurriedFunctions } from '../executor/types.js';
12
3
  /**
13
4
  * Creates a curried version of functions that automatically inject an environment as the first parameter.
5
+ * It also supports getter properties that can be accessed directly.
14
6
  *
15
7
  * @param env - The environment object to inject as the first parameter
16
- * @param functions - An object containing functions that expect the environment as their first parameter
17
- * @returns An object with the same function names, but with the environment parameter removed
8
+ * @param functionsAndGetters - An object containing functions that expect the environment as their first parameter,
9
+ * or getter functions that return a value from the environment
10
+ * @returns An object with the same function/property names, but with the environment parameter removed
18
11
  *
19
12
  * @example
20
13
  * ```typescript
21
- * const functions = {
14
+ * const functionsAndGetters = {
15
+ * // Functions that expect env as first parameter
22
16
  * deploy: (env: Environment, contractName: string, args: any[]) => Promise<void>,
23
- * verify: (env: Environment, address: string) => Promise<boolean>
17
+ * verify: (env: Environment, address: string) => Promise<boolean>,
18
+ *
19
+ * // Getter properties that can be accessed directly
20
+ * myValue: (env: Environment) => env.someValue,
21
+ * networkId: (env: Environment) => env.network.id
24
22
  * };
25
23
  *
26
- * const curriedFunctions = withEnvironment(env, functions);
24
+ * const curried = withEnvironment(env, functionsAndGetters);
25
+ *
26
+ * // Now you can call functions without passing env:
27
+ * await curried.deploy('MyContract', []);
28
+ * await curried.verify('0x123...');
27
29
  *
28
- * // Now you can call without passing env:
29
- * await curriedFunctions.deploy('MyContract', []);
30
- * await curriedFunctions.verify('0x123...');
30
+ * // And access getter properties directly:
31
+ * console.log(curried.myValue);
32
+ * console.log(curried.networkId);
31
33
  * ```
32
34
  */
33
- export declare function withEnvironment<NamedAccounts extends UnresolvedUnknownNamedAccounts = UnresolvedUnknownNamedAccounts, Data extends UnresolvedNetworkSpecificData = UnresolvedNetworkSpecificData, Deployments extends UnknownDeployments = UnknownDeployments, Extra extends Record<string, unknown> = Record<string, unknown>, T extends Record<string, (env: Environment<NamedAccounts, Data, Deployments, Extra>, ...args: any[]) => any> = Record<string, (env: Environment<NamedAccounts, Data, Deployments>, ...args: any[]) => any>>(env: Environment<NamedAccounts, Data, Deployments, Extra>, functions: T): CurriedFunctions<T>;
34
- export {};
35
+ export declare function withEnvironment<NamedAccounts extends UnresolvedUnknownNamedAccounts = UnresolvedUnknownNamedAccounts, Data extends UnresolvedNetworkSpecificData = UnresolvedNetworkSpecificData, Deployments extends UnknownDeployments = UnknownDeployments, Extra extends Record<string, unknown> = Record<string, unknown>, T extends Record<string, ((env: Environment<NamedAccounts, Data, Deployments, Extra>) => (...args: any[]) => any) | ((env: Environment<NamedAccounts, Data, Deployments, Extra>) => any)> = Record<string, ((env: Environment<NamedAccounts, Data, Deployments>) => (...args: any[]) => any) | ((env: Environment<NamedAccounts, Data, Deployments>) => any)>>(env: Environment<NamedAccounts, Data, Deployments, Extra>, functionsAndGetters: T): CurriedFunctions<T>;
35
36
  //# sourceMappingURL=curry.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"curry.d.ts","sourceRoot":"","sources":["../../src/utils/curry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,kBAAkB,EAClB,6BAA6B,EAC7B,8BAA8B,EAC9B,MAAM,yBAAyB,CAAC;AAEjC;;GAEG;AACH,KAAK,oBAAoB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,MAAM,CAAC,KAAK,MAAM,MAAM,GACpF,CAAC,GAAG,IAAI,EAAE,CAAC,KAAK,MAAM,GACtB,KAAK,CAAC;AAET;;GAEG;AACH,KAAK,gBAAgB,CAAC,CAAC,IAAI;KACzB,CAAC,IAAI,MAAM,CAAC,GAAG,oBAAoB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC1C,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,eAAe,CAC9B,aAAa,SAAS,8BAA8B,GAAG,8BAA8B,EACrF,IAAI,SAAS,6BAA6B,GAAG,6BAA6B,EAC1E,WAAW,SAAS,kBAAkB,GAAG,kBAAkB,EAC3D,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GAAG,MAAM,CACpH,MAAM,EACN,CAAC,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAC3E,EACA,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,SAAS,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAS9F"}
1
+ {"version":3,"file":"curry.d.ts","sourceRoot":"","sources":["../../src/utils/curry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,kBAAkB,EAClB,6BAA6B,EAC7B,8BAA8B,EAC9B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,wBAAgB,eAAe,CAC9B,aAAa,SAAS,8BAA8B,GAAG,8BAA8B,EACrF,IAAI,SAAS,6BAA6B,GAAG,6BAA6B,EAC1E,WAAW,SAAS,kBAAkB,GAAG,kBAAkB,EAC3D,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,CAAC,SAAS,MAAM,CACf,MAAM,EACJ,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GACxF,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CACtE,GAAG,MAAM,CACT,MAAM,EACJ,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GACjF,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,GAAG,CAAC,CAC/D,EACA,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAoBxG"}
@@ -1,29 +1,51 @@
1
1
  /**
2
2
  * Creates a curried version of functions that automatically inject an environment as the first parameter.
3
+ * It also supports getter properties that can be accessed directly.
3
4
  *
4
5
  * @param env - The environment object to inject as the first parameter
5
- * @param functions - An object containing functions that expect the environment as their first parameter
6
- * @returns An object with the same function names, but with the environment parameter removed
6
+ * @param functionsAndGetters - An object containing functions that expect the environment as their first parameter,
7
+ * or getter functions that return a value from the environment
8
+ * @returns An object with the same function/property names, but with the environment parameter removed
7
9
  *
8
10
  * @example
9
11
  * ```typescript
10
- * const functions = {
12
+ * const functionsAndGetters = {
13
+ * // Functions that expect env as first parameter
11
14
  * deploy: (env: Environment, contractName: string, args: any[]) => Promise<void>,
12
- * verify: (env: Environment, address: string) => Promise<boolean>
15
+ * verify: (env: Environment, address: string) => Promise<boolean>,
16
+ *
17
+ * // Getter properties that can be accessed directly
18
+ * myValue: (env: Environment) => env.someValue,
19
+ * networkId: (env: Environment) => env.network.id
13
20
  * };
14
21
  *
15
- * const curriedFunctions = withEnvironment(env, functions);
22
+ * const curried = withEnvironment(env, functionsAndGetters);
23
+ *
24
+ * // Now you can call functions without passing env:
25
+ * await curried.deploy('MyContract', []);
26
+ * await curried.verify('0x123...');
16
27
  *
17
- * // Now you can call without passing env:
18
- * await curriedFunctions.deploy('MyContract', []);
19
- * await curriedFunctions.verify('0x123...');
28
+ * // And access getter properties directly:
29
+ * console.log(curried.myValue);
30
+ * console.log(curried.networkId);
20
31
  * ```
21
32
  */
22
- export function withEnvironment(env, functions) {
33
+ export function withEnvironment(env, functionsAndGetters) {
23
34
  const result = {};
24
- for (const [key, func] of Object.entries(functions)) {
25
- // Create a new function that automatically passes the environment as the first argument
26
- result[key] = (...args) => func(env, ...args);
35
+ for (const [key, func] of Object.entries(functionsAndGetters)) {
36
+ // Check if the function is a getter or a regular function
37
+ const value = func(env);
38
+ if (typeof value === 'function') {
39
+ // Regular function case: Create a function that automatically passes the environment
40
+ result[key] = (...args) => func(env)(...args);
41
+ }
42
+ else {
43
+ // Getter case: Define property with getter that returns the value
44
+ Object.defineProperty(result, key, {
45
+ get: () => func(env),
46
+ enumerable: true,
47
+ });
48
+ }
27
49
  }
28
50
  return result;
29
51
  }
@@ -1 +1 @@
1
- {"version":3,"file":"curry.js","sourceRoot":"","sources":["../../src/utils/curry.ts"],"names":[],"mappings":"AAqBA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,eAAe,CAS7B,GAAyD,EAAE,SAAY;IACxE,MAAM,MAAM,GAAG,EAAyB,CAAC;IAEzC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,wFAAwF;QACvF,MAAc,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC/D,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC"}
1
+ {"version":3,"file":"curry.js","sourceRoot":"","sources":["../../src/utils/curry.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,MAAM,UAAU,eAAe,CAc7B,GAAyD,EAAE,mBAAsB;IAClF,MAAM,MAAM,GAAG,EAAyB,CAAC;IAEzC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC/D,0DAA0D;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAExB,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;YACjC,qFAAqF;YACpF,MAAc,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACP,kEAAkE;YAClE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;gBAClC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;gBACpB,UAAU,EAAE,IAAI;aAChB,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -1,16 +1,18 @@
1
1
  import type { Environment } from '../environment/types.js';
2
- declare const exampleFunctions: {
3
- deploy: (env: Environment, contractName: string, args: any[]) => Promise<void>;
4
- verify: (env: Environment, address: string) => Promise<boolean>;
5
- getBalance: (env: Environment, address: string) => Promise<bigint>;
6
- syncFunction: (env: Environment, value: number) => number;
7
- };
8
- declare const curriedFunctions: {
9
- deploy: (contractName: string, args: any[]) => Promise<void>;
10
- verify: (address: string) => Promise<boolean>;
11
- getBalance: (address: string) => Promise<bigint>;
12
- syncFunction: (value: number) => number;
2
+ declare const exampleExtensions: {
3
+ deploy: (env: Environment) => (contractName: string, args: any[]) => Promise<void>;
4
+ verify: (env: Environment) => (address: string) => Promise<boolean>;
5
+ getBalance: (env: Environment) => (address: string) => Promise<bigint>;
6
+ syncFunction: (env: Environment) => (value: number) => number;
7
+ provider: (env: Environment) => import("../environment/providers/TransactionHashTracker.js").TransactionHashTracker;
13
8
  };
9
+ declare const enhancedEnv: import("../index.js").CurriedFunctions<{
10
+ deploy: (env: Environment) => (contractName: string, args: any[]) => Promise<void>;
11
+ verify: (env: Environment) => (address: string) => Promise<boolean>;
12
+ getBalance: (env: Environment) => (address: string) => Promise<bigint>;
13
+ syncFunction: (env: Environment) => (value: number) => number;
14
+ provider: (env: Environment) => import("../environment/providers/TransactionHashTracker.js").TransactionHashTracker;
15
+ }>;
14
16
  declare function testTypes(): Promise<void>;
15
- export { testTypes, curriedFunctions, exampleFunctions };
17
+ export { testTypes, enhancedEnv, exampleExtensions };
16
18
  //# sourceMappingURL=curry.test.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"curry.test.d.ts","sourceRoot":"","sources":["../../src/utils/curry.test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAOzD,QAAA,MAAM,gBAAgB;kBACP,WAAW,gBAAgB,MAAM,QAAQ,GAAG,EAAE,KAAG,OAAO,CAAC,IAAI,CAAC;kBAI9D,WAAW,WAAW,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;sBAI3C,WAAW,WAAW,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;wBAI5C,WAAW,SAAS,MAAM,KAAG,MAAM;CAGvD,CAAC;AAGF,QAAA,MAAM,gBAAgB;;;;;CAA6C,CAAC;AAGpE,iBAAe,SAAS,kBASvB;AAGD,OAAO,EAAC,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAC,CAAC"}
1
+ {"version":3,"file":"curry.test.d.ts","sourceRoot":"","sources":["../../src/utils/curry.test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAOzD,QAAA,MAAM,iBAAiB;kBAEf,WAAW,MACV,cAAc,MAAM,EAAE,MAAM,GAAG,EAAE,KAAG,OAAO,CAAC,IAAI,CAAC;kBAKlD,WAAW,MACV,SAAS,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;sBAKnC,WAAW,MACV,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;wBAKlC,WAAW,MAChB,OAAO,MAAM,KAAG,MAAM;oBAIR,WAAW;CAC3B,CAAC;AAGF,QAAA,MAAM,WAAW;kBA3BT,WAAW,MACV,cAAc,MAAM,EAAE,MAAM,GAAG,EAAE,KAAG,OAAO,CAAC,IAAI,CAAC;kBAKlD,WAAW,MACV,SAAS,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;sBAKnC,WAAW,MACV,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;wBAKlC,WAAW,MAChB,OAAO,MAAM,KAAG,MAAM;oBAIR,WAAW;EAImC,CAAC;AAGhE,iBAAe,SAAS,kBAUvB;AAGD,OAAO,EAAC,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAC,CAAC"}
@@ -2,32 +2,34 @@ import { withEnvironment } from './curry.js';
2
2
  // Mock environment for testing
3
3
  const mockEnv = {};
4
4
  // Example functions that take environment as first parameter
5
- const exampleFunctions = {
6
- deploy: (env, contractName, args) => {
5
+ const exampleExtensions = {
6
+ deploy: (env) => async (contractName, args) => {
7
7
  return Promise.resolve();
8
8
  },
9
- verify: (env, address) => {
9
+ verify: (env) => async (address) => {
10
10
  return Promise.resolve(true);
11
11
  },
12
- getBalance: (env, address) => {
12
+ getBalance: (env) => async (address) => {
13
13
  return Promise.resolve(BigInt(0));
14
14
  },
15
- syncFunction: (env, value) => {
15
+ syncFunction: (env) => (value) => {
16
16
  return value * 2;
17
17
  },
18
+ provider: (env) => env.network.provider,
18
19
  };
19
20
  // Test the currying function
20
- const curriedFunctions = withEnvironment(mockEnv, exampleFunctions);
21
+ const enhancedEnv = withEnvironment(mockEnv, exampleExtensions);
21
22
  // Type tests - these should compile without errors
22
23
  async function testTypes() {
23
24
  // These calls should work without passing env
24
- await curriedFunctions.deploy('MyContract', []);
25
- const isVerified = await curriedFunctions.verify('0x123...');
26
- const balance = await curriedFunctions.getBalance('0x456...');
27
- const doubled = curriedFunctions.syncFunction(42);
25
+ await enhancedEnv.deploy('MyContract', []);
26
+ const isVerified = await enhancedEnv.verify('0x123...');
27
+ const balance = await enhancedEnv.getBalance('0x456...');
28
+ const doubled = enhancedEnv.syncFunction(42);
29
+ const provider = enhancedEnv.provider;
28
30
  console.log('Type tests passed!');
29
- console.log({ isVerified, balance, doubled });
31
+ console.log({ isVerified, balance, doubled, provider });
30
32
  }
31
33
  // Export for potential use in actual tests
32
- export { testTypes, curriedFunctions, exampleFunctions };
34
+ export { testTypes, enhancedEnv, exampleExtensions };
33
35
  //# sourceMappingURL=curry.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"curry.test.js","sourceRoot":"","sources":["../../src/utils/curry.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,YAAY,CAAC;AAE3C,+BAA+B;AAC/B,MAAM,OAAO,GAAG,EAAiB,CAAC;AAElC,6DAA6D;AAC7D,MAAM,gBAAgB,GAAG;IACxB,MAAM,EAAE,CAAC,GAAgB,EAAE,YAAoB,EAAE,IAAW,EAAiB,EAAE;QAC9E,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAED,MAAM,EAAE,CAAC,GAAgB,EAAE,OAAe,EAAoB,EAAE;QAC/D,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,UAAU,EAAE,CAAC,GAAgB,EAAE,OAAe,EAAmB,EAAE;QAClE,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAED,YAAY,EAAE,CAAC,GAAgB,EAAE,KAAa,EAAU,EAAE;QACzD,OAAO,KAAK,GAAG,CAAC,CAAC;IAClB,CAAC;CACD,CAAC;AAEF,6BAA6B;AAC7B,MAAM,gBAAgB,GAAG,eAAe,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC;AAEpE,mDAAmD;AACnD,KAAK,UAAU,SAAS;IACvB,8CAA8C;IAC9C,MAAM,gBAAgB,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAChD,MAAM,UAAU,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IAC7D,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IAC9D,MAAM,OAAO,GAAG,gBAAgB,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAElD,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,EAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAC,CAAC,CAAC;AAC7C,CAAC;AAED,2CAA2C;AAC3C,OAAO,EAAC,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAC,CAAC"}
1
+ {"version":3,"file":"curry.test.js","sourceRoot":"","sources":["../../src/utils/curry.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,YAAY,CAAC;AAE3C,+BAA+B;AAC/B,MAAM,OAAO,GAAG,EAAiB,CAAC;AAElC,6DAA6D;AAC7D,MAAM,iBAAiB,GAAG;IACzB,MAAM,EACL,CAAC,GAAgB,EAAE,EAAE,CACrB,KAAK,EAAE,YAAoB,EAAE,IAAW,EAAiB,EAAE;QAC1D,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAEF,MAAM,EACL,CAAC,GAAgB,EAAE,EAAE,CACrB,KAAK,EAAE,OAAe,EAAoB,EAAE;QAC3C,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAEF,UAAU,EACT,CAAC,GAAgB,EAAE,EAAE,CACrB,KAAK,EAAE,OAAe,EAAmB,EAAE;QAC1C,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAEF,YAAY,EACX,CAAC,GAAgB,EAAE,EAAE,CACrB,CAAC,KAAa,EAAU,EAAE;QACzB,OAAO,KAAK,GAAG,CAAC,CAAC;IAClB,CAAC;IAEF,QAAQ,EAAE,CAAC,GAAgB,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ;CACpD,CAAC;AAEF,6BAA6B;AAC7B,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AAEhE,mDAAmD;AACnD,KAAK,UAAU,SAAS;IACvB,8CAA8C;IAC9C,MAAM,WAAW,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;IAEtC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,EAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAC,CAAC,CAAC;AACvD,CAAC;AAED,2CAA2C;AAC3C,OAAO,EAAC,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAC,CAAC"}
@@ -0,0 +1,33 @@
1
+ import type { Environment, UnknownDeployments, UnresolvedNetworkSpecificData, UnresolvedUnknownNamedAccounts } from '../environment/types.js';
2
+ import { CurriedFunctions } from '../executor/types.js';
3
+ /**
4
+ * @param env - The environment object to inject as the first parameter
5
+ * @param functionsAndGetters - An object containing functions that expect the environment as their first parameter,
6
+ * or getter functions that return a value from the environment
7
+ * @returns An object with the same function/property names, but with the environment parameter removed
8
+ *
9
+ * @example
10
+ * ```typescript
11
+ * const functionsAndGetters = {
12
+ * // Functions that expect env as first parameter
13
+ * deploy: (env: Environment, contractName: string, args: any[]) => Promise<void>,
14
+ * verify: (env: Environment, address: string) => Promise<boolean>,
15
+ *
16
+ * // Getter properties that can be accessed directly
17
+ * myValue: (env: Environment) => env.someValue,
18
+ * networkId: (env: Environment) => env.network.id
19
+ * };
20
+ *
21
+ * const enhancedEnv = withEnvironment(env, functionsAndGetters);
22
+ *
23
+ * // Now you can call functions without passing env:
24
+ * await enhancedEnv.deploy('MyContract', []);
25
+ * await enhancedEnv.verify('0x123...');
26
+ *
27
+ * // And access getter properties directly:
28
+ * console.log(enhancedEnv.myValue);
29
+ * console.log(enhancedEnv.networkId);
30
+ * ```
31
+ */
32
+ export declare function withEnvironment<NamedAccounts extends UnresolvedUnknownNamedAccounts = UnresolvedUnknownNamedAccounts, Data extends UnresolvedNetworkSpecificData = UnresolvedNetworkSpecificData, Deployments extends UnknownDeployments = UnknownDeployments, Extra extends Record<string, unknown> = Record<string, unknown>, T extends Record<string, ((env: Environment<NamedAccounts, Data, Deployments, Extra>) => (...args: any[]) => any) | ((env: Environment<NamedAccounts, Data, Deployments, Extra>) => any)> = Record<string, ((env: Environment<NamedAccounts, Data, Deployments>) => (...args: any[]) => any) | ((env: Environment<NamedAccounts, Data, Deployments>) => any)>>(env: Environment<NamedAccounts, Data, Deployments, Extra>, functionsAndGetters: T): CurriedFunctions<T>;
33
+ //# sourceMappingURL=extensions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions.d.ts","sourceRoot":"","sources":["../../src/utils/extensions.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,kBAAkB,EAClB,6BAA6B,EAC7B,8BAA8B,EAC9B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAC,gBAAgB,EAAC,MAAM,sBAAsB,CAAC;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,eAAe,CAC9B,aAAa,SAAS,8BAA8B,GAAG,8BAA8B,EACrF,IAAI,SAAS,6BAA6B,GAAG,6BAA6B,EAC1E,WAAW,SAAS,kBAAkB,GAAG,kBAAkB,EAC3D,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/D,CAAC,SAAS,MAAM,CACf,MAAM,EACJ,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GACxF,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,GAAG,CAAC,CACtE,GAAG,MAAM,CACT,MAAM,EACJ,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,GACjF,CAAC,CAAC,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,CAAC,KAAK,GAAG,CAAC,CAC/D,EACA,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,mBAAmB,EAAE,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,CAoBxG"}
@@ -0,0 +1,49 @@
1
+ /**
2
+ * @param env - The environment object to inject as the first parameter
3
+ * @param functionsAndGetters - An object containing functions that expect the environment as their first parameter,
4
+ * or getter functions that return a value from the environment
5
+ * @returns An object with the same function/property names, but with the environment parameter removed
6
+ *
7
+ * @example
8
+ * ```typescript
9
+ * const functionsAndGetters = {
10
+ * // Functions that expect env as first parameter
11
+ * deploy: (env: Environment, contractName: string, args: any[]) => Promise<void>,
12
+ * verify: (env: Environment, address: string) => Promise<boolean>,
13
+ *
14
+ * // Getter properties that can be accessed directly
15
+ * myValue: (env: Environment) => env.someValue,
16
+ * networkId: (env: Environment) => env.network.id
17
+ * };
18
+ *
19
+ * const enhancedEnv = withEnvironment(env, functionsAndGetters);
20
+ *
21
+ * // Now you can call functions without passing env:
22
+ * await enhancedEnv.deploy('MyContract', []);
23
+ * await enhancedEnv.verify('0x123...');
24
+ *
25
+ * // And access getter properties directly:
26
+ * console.log(enhancedEnv.myValue);
27
+ * console.log(enhancedEnv.networkId);
28
+ * ```
29
+ */
30
+ export function withEnvironment(env, functionsAndGetters) {
31
+ const result = {};
32
+ for (const [key, func] of Object.entries(functionsAndGetters)) {
33
+ // Check if the function is a getter or a regular function
34
+ const value = func(env);
35
+ if (typeof value === 'function') {
36
+ // Regular function case: Create a function that automatically passes the environment
37
+ result[key] = (...args) => func(env)(...args);
38
+ }
39
+ else {
40
+ // Getter case: Define property with getter that returns the value
41
+ Object.defineProperty(result, key, {
42
+ get: () => func(env),
43
+ enumerable: true,
44
+ });
45
+ }
46
+ }
47
+ return result;
48
+ }
49
+ //# sourceMappingURL=extensions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions.js","sourceRoot":"","sources":["../../src/utils/extensions.ts"],"names":[],"mappings":"AAQA;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,MAAM,UAAU,eAAe,CAc7B,GAAyD,EAAE,mBAAsB;IAClF,MAAM,MAAM,GAAG,EAAyB,CAAC;IAEzC,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,CAAC;QAC/D,0DAA0D;QAC1D,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;QAExB,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;YACjC,qFAAqF;YACpF,MAAc,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC;QAC/D,CAAC;aAAM,CAAC;YACP,kEAAkE;YAClE,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,GAAG,EAAE;gBAClC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC;gBACpB,UAAU,EAAE,IAAI;aAChB,CAAC,CAAC;QACJ,CAAC;IACF,CAAC;IAED,OAAO,MAAM,CAAC;AACf,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { Environment } from '../environment/types.js';
2
+ declare const exampleExtensions: {
3
+ deploy: (env: Environment) => (contractName: string, args: any[]) => Promise<void>;
4
+ verify: (env: Environment) => (address: string) => Promise<boolean>;
5
+ getBalance: (env: Environment) => (address: string) => Promise<bigint>;
6
+ syncFunction: (env: Environment) => (value: number) => number;
7
+ provider: (env: Environment) => import("../environment/providers/TransactionHashTracker.js").TransactionHashTracker;
8
+ };
9
+ declare const enhancedEnv: import("../index.js").CurriedFunctions<{
10
+ deploy: (env: Environment) => (contractName: string, args: any[]) => Promise<void>;
11
+ verify: (env: Environment) => (address: string) => Promise<boolean>;
12
+ getBalance: (env: Environment) => (address: string) => Promise<bigint>;
13
+ syncFunction: (env: Environment) => (value: number) => number;
14
+ provider: (env: Environment) => import("../environment/providers/TransactionHashTracker.js").TransactionHashTracker;
15
+ }>;
16
+ declare function testTypes(): Promise<void>;
17
+ export { testTypes, enhancedEnv, exampleExtensions };
18
+ //# sourceMappingURL=extensions.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions.test.d.ts","sourceRoot":"","sources":["../../src/utils/extensions.test.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAOzD,QAAA,MAAM,iBAAiB;kBAEf,WAAW,MACV,cAAc,MAAM,EAAE,MAAM,GAAG,EAAE,KAAG,OAAO,CAAC,IAAI,CAAC;kBAKlD,WAAW,MACV,SAAS,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;sBAKnC,WAAW,MACV,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;wBAKlC,WAAW,MAChB,OAAO,MAAM,KAAG,MAAM;oBAIR,WAAW;CAC3B,CAAC;AAGF,QAAA,MAAM,WAAW;kBA3BT,WAAW,MACV,cAAc,MAAM,EAAE,MAAM,GAAG,EAAE,KAAG,OAAO,CAAC,IAAI,CAAC;kBAKlD,WAAW,MACV,SAAS,MAAM,KAAG,OAAO,CAAC,OAAO,CAAC;sBAKnC,WAAW,MACV,SAAS,MAAM,KAAG,OAAO,CAAC,MAAM,CAAC;wBAKlC,WAAW,MAChB,OAAO,MAAM,KAAG,MAAM;oBAIR,WAAW;EAImC,CAAC;AAGhE,iBAAe,SAAS,kBAUvB;AAGD,OAAO,EAAC,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAC,CAAC"}
@@ -0,0 +1,35 @@
1
+ import { withEnvironment } from './extensions.js';
2
+ // Mock environment for testing
3
+ const mockEnv = {};
4
+ // Example functions that take environment as first parameter
5
+ const exampleExtensions = {
6
+ deploy: (env) => async (contractName, args) => {
7
+ return Promise.resolve();
8
+ },
9
+ verify: (env) => async (address) => {
10
+ return Promise.resolve(true);
11
+ },
12
+ getBalance: (env) => async (address) => {
13
+ return Promise.resolve(BigInt(0));
14
+ },
15
+ syncFunction: (env) => (value) => {
16
+ return value * 2;
17
+ },
18
+ provider: (env) => env.network.provider,
19
+ };
20
+ // Test the currying function
21
+ const enhancedEnv = withEnvironment(mockEnv, exampleExtensions);
22
+ // Type tests - these should compile without errors
23
+ async function testTypes() {
24
+ // These calls should work without passing env
25
+ await enhancedEnv.deploy('MyContract', []);
26
+ const isVerified = await enhancedEnv.verify('0x123...');
27
+ const balance = await enhancedEnv.getBalance('0x456...');
28
+ const doubled = enhancedEnv.syncFunction(42);
29
+ const provider = enhancedEnv.provider;
30
+ console.log('Type tests passed!');
31
+ console.log({ isVerified, balance, doubled, provider });
32
+ }
33
+ // Export for potential use in actual tests
34
+ export { testTypes, enhancedEnv, exampleExtensions };
35
+ //# sourceMappingURL=extensions.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"extensions.test.js","sourceRoot":"","sources":["../../src/utils/extensions.test.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,eAAe,EAAC,MAAM,iBAAiB,CAAC;AAEhD,+BAA+B;AAC/B,MAAM,OAAO,GAAG,EAAiB,CAAC;AAElC,6DAA6D;AAC7D,MAAM,iBAAiB,GAAG;IACzB,MAAM,EACL,CAAC,GAAgB,EAAE,EAAE,CACrB,KAAK,EAAE,YAAoB,EAAE,IAAW,EAAiB,EAAE;QAC1D,OAAO,OAAO,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IAEF,MAAM,EACL,CAAC,GAAgB,EAAE,EAAE,CACrB,KAAK,EAAE,OAAe,EAAoB,EAAE;QAC3C,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAEF,UAAU,EACT,CAAC,GAAgB,EAAE,EAAE,CACrB,KAAK,EAAE,OAAe,EAAmB,EAAE;QAC1C,OAAO,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;IACnC,CAAC;IAEF,YAAY,EACX,CAAC,GAAgB,EAAE,EAAE,CACrB,CAAC,KAAa,EAAU,EAAE;QACzB,OAAO,KAAK,GAAG,CAAC,CAAC;IAClB,CAAC;IAEF,QAAQ,EAAE,CAAC,GAAgB,EAAE,EAAE,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ;CACpD,CAAC;AAEF,6BAA6B;AAC7B,MAAM,WAAW,GAAG,eAAe,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC;AAEhE,mDAAmD;AACnD,KAAK,UAAU,SAAS;IACvB,8CAA8C;IAC9C,MAAM,WAAW,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC;IAC3C,MAAM,UAAU,GAAG,MAAM,WAAW,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACxD,MAAM,OAAO,GAAG,MAAM,WAAW,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;IACzD,MAAM,OAAO,GAAG,WAAW,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC7C,MAAM,QAAQ,GAAG,WAAW,CAAC,QAAQ,CAAC;IAEtC,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAClC,OAAO,CAAC,GAAG,CAAC,EAAC,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAC,CAAC,CAAC;AACvD,CAAC;AAED,2CAA2C;AAC3C,OAAO,EAAC,SAAS,EAAE,WAAW,EAAE,iBAAiB,EAAC,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rocketh",
3
- "version": "0.12.1",
3
+ "version": "0.13.1",
4
4
  "description": "deploy smart contract on ethereum-compatible networks",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -14,7 +14,7 @@ import type {
14
14
  } from '../environment/types.js';
15
15
  import {createEnvironment, SignerProtocolFunction} from '../environment/index.js';
16
16
  import {DeployScriptFunction, DeployScriptModule, EnhancedDeployScriptFunction, EnhancedEnvironment} from './types.js';
17
- import {withEnvironment} from '../utils/curry.js';
17
+ import {withEnvironment} from '../utils/extensions.js';
18
18
  import {logger, setLogLevel, spin} from '../internal/logging.js';
19
19
  import {getRoughGasPriceEstimate} from '../utils/eth.js';
20
20
  import {traverseMultipleDirectory} from '../utils/fs.js';
@@ -31,8 +31,8 @@ const tsImport = (path: string, opts: any) => (typeof Bun !== 'undefined' ? impo
31
31
  * @example
32
32
  * ```typescript
33
33
  * const functions = {
34
- * deploy: (env: Environment, contractName: string, args: any[]) => Promise<void>,
35
- * verify: (env: Environment, address: string) => Promise<boolean>
34
+ * deploy: (env: Environment) => ((contractName: string, args: any[]) => Promise<void>),
35
+ * verify: (env: Environment) => ((address: string) => Promise<boolean>)
36
36
  * };
37
37
  *
38
38
  * const deployScript = setup(functions);
@@ -49,7 +49,7 @@ const tsImport = (path: string, opts: any) => (typeof Bun !== 'undefined' ? impo
49
49
  * ```
50
50
  */
51
51
  export function setup<
52
- Functions extends Record<string, (env: Environment<any, any, any>, ...args: any[]) => any> = {},
52
+ Functions extends Record<string, (env: Environment<any, any, any>) => (...args: any[]) => any> = {},
53
53
  NamedAccounts extends UnresolvedUnknownNamedAccounts = UnresolvedUnknownNamedAccounts,
54
54
  Data extends UnresolvedNetworkSpecificData = UnresolvedNetworkSpecificData,
55
55
  Deployments extends UnknownDeployments = UnknownDeployments,
@@ -6,30 +6,40 @@ const mockEnv = {} as Environment;
6
6
 
7
7
  // Example utility functions that take Environment as first parameter
8
8
  const utilityFunctions = {
9
- deployContract: async (env: Environment, contractName: string, args: any[] = []): Promise<string> => {
10
- console.log(`Deploying ${contractName} with args:`, args);
11
- return '0x1234567890123456789012345678901234567890';
12
- },
9
+ deployContract:
10
+ (env: Environment) =>
11
+ async (contractName: string, args: any[] = []): Promise<string> => {
12
+ console.log(`Deploying ${contractName} with args:`, args);
13
+ return '0x1234567890123456789012345678901234567890';
14
+ },
13
15
 
14
- verifyContract: async (env: Environment, address: string): Promise<boolean> => {
15
- console.log(`Verifying contract at ${address}`);
16
- return true;
17
- },
16
+ verifyContract:
17
+ (env: Environment) =>
18
+ async (address: string): Promise<boolean> => {
19
+ console.log(`Verifying contract at ${address}`);
20
+ return true;
21
+ },
18
22
 
19
- getBalance: async (env: Environment, address: string): Promise<bigint> => {
20
- console.log(`Getting balance for ${address}`);
21
- return BigInt('1000000000000000000'); // 1 ETH
22
- },
23
+ getBalance:
24
+ (env: Environment) =>
25
+ async (address: string): Promise<bigint> => {
26
+ console.log(`Getting balance for ${address}`);
27
+ return BigInt('1000000000000000000'); // 1 ETH
28
+ },
23
29
 
24
- calculateGas: (env: Environment, operation: string): number => {
25
- console.log(`Calculating gas for ${operation}`);
26
- return 21000;
27
- },
30
+ calculateGas:
31
+ (env: Environment) =>
32
+ (operation: string): number => {
33
+ console.log(`Calculating gas for ${operation}`);
34
+ return 21000;
35
+ },
28
36
 
29
- isDeployed: (env: Environment, contractName: string): boolean => {
30
- console.log(`Checking if ${contractName} is deployed`);
31
- return false;
32
- },
37
+ isDeployed:
38
+ (env: Environment) =>
39
+ (contractName: string): boolean => {
40
+ console.log(`Checking if ${contractName} is deployed`);
41
+ return false;
42
+ },
33
43
  };
34
44
 
35
45
  // Create the enhanced execute function using setup
@@ -89,19 +99,25 @@ async function testTypes() {
89
99
  export const exampleUsage = () => {
90
100
  // Define your utility functions
91
101
  const myFunctions = {
92
- deployERC20: async (env: Environment, name: string, symbol: string): Promise<string> => {
93
- // Implementation would use env.save, env.network.provider, etc.
94
- return '0x...';
95
- },
96
-
97
- setupPermissions: async (env: Environment, contractAddress: string, admin: string): Promise<void> => {
98
- // Implementation would interact with contracts
99
- },
100
-
101
- verifyOnEtherscan: async (env: Environment, address: string, constructorArgs: any[]): Promise<boolean> => {
102
- // Implementation would call verification service
103
- return true;
104
- },
102
+ deployERC20:
103
+ (env: Environment) =>
104
+ async (name: string, symbol: string): Promise<string> => {
105
+ // Implementation would use env.save, env.network.provider, etc.
106
+ return '0x...';
107
+ },
108
+
109
+ setupPermissions:
110
+ (env: Environment) =>
111
+ async (contractAddress: string, admin: string): Promise<void> => {
112
+ // Implementation would interact with contracts
113
+ },
114
+
115
+ verifyOnEtherscan:
116
+ (env: Environment) =>
117
+ async (address: string, constructorArgs: any[]): Promise<boolean> => {
118
+ // Implementation would call verification service
119
+ return true;
120
+ },
105
121
  };
106
122
 
107
123
  // Create the enhanced execute function
@@ -35,17 +35,17 @@ export type ScriptCallback<
35
35
  > = (env: Environment<NamedAccounts, Data, Deployments, Extra>) => Promise<void>;
36
36
 
37
37
  /**
38
- * Utility type to remove the first parameter from a function type
38
+ * Utility type to extract the return value from a higher-order function
39
+ * For functions of type (firstParam: T) => (...args: any[]) => V or (firstParam: T) => V
39
40
  */
40
- type RemoveFirstParameter<T> = T extends (first: any, ...rest: infer R) => infer Return
41
- ? (...args: R) => Return
42
- : never;
41
+ export type ExtractReturnFunction<T> = T extends (first: any) => infer Return ? Return : never;
43
42
 
44
43
  /**
45
- * Utility type to transform an object of functions by removing their first parameter
44
+ * Utility type to transform an object of higher-order functions by extracting their return types
45
+ * This handles both regular functions and getter functions
46
46
  */
47
- type CurriedFunctions<T> = {
48
- [K in keyof T]: RemoveFirstParameter<T[K]>;
47
+ export type CurriedFunctions<T> = {
48
+ [K in keyof T]: ExtractReturnFunction<T[K]>;
49
49
  };
50
50
 
51
51
  /**
@@ -0,0 +1,53 @@
1
+ import type {Environment} from '../environment/types.js';
2
+ import {withEnvironment} from './extensions.js';
3
+
4
+ // Mock environment for testing
5
+ const mockEnv = {} as Environment;
6
+
7
+ // Example functions that take environment as first parameter
8
+ const exampleExtensions = {
9
+ deploy:
10
+ (env: Environment) =>
11
+ async (contractName: string, args: any[]): Promise<void> => {
12
+ return Promise.resolve();
13
+ },
14
+
15
+ verify:
16
+ (env: Environment) =>
17
+ async (address: string): Promise<boolean> => {
18
+ return Promise.resolve(true);
19
+ },
20
+
21
+ getBalance:
22
+ (env: Environment) =>
23
+ async (address: string): Promise<bigint> => {
24
+ return Promise.resolve(BigInt(0));
25
+ },
26
+
27
+ syncFunction:
28
+ (env: Environment) =>
29
+ (value: number): number => {
30
+ return value * 2;
31
+ },
32
+
33
+ provider: (env: Environment) => env.network.provider,
34
+ };
35
+
36
+ // Test the currying function
37
+ const enhancedEnv = withEnvironment(mockEnv, exampleExtensions);
38
+
39
+ // Type tests - these should compile without errors
40
+ async function testTypes() {
41
+ // These calls should work without passing env
42
+ await enhancedEnv.deploy('MyContract', []);
43
+ const isVerified = await enhancedEnv.verify('0x123...');
44
+ const balance = await enhancedEnv.getBalance('0x456...');
45
+ const doubled = enhancedEnv.syncFunction(42);
46
+ const provider = enhancedEnv.provider;
47
+
48
+ console.log('Type tests passed!');
49
+ console.log({isVerified, balance, doubled, provider});
50
+ }
51
+
52
+ // Export for potential use in actual tests
53
+ export {testTypes, enhancedEnv, exampleExtensions};
@@ -0,0 +1,72 @@
1
+ import type {
2
+ Environment,
3
+ UnknownDeployments,
4
+ UnresolvedNetworkSpecificData,
5
+ UnresolvedUnknownNamedAccounts,
6
+ } from '../environment/types.js';
7
+ import {CurriedFunctions} from '../executor/types.js';
8
+
9
+ /**
10
+ * @param env - The environment object to inject as the first parameter
11
+ * @param functionsAndGetters - An object containing functions that expect the environment as their first parameter,
12
+ * or getter functions that return a value from the environment
13
+ * @returns An object with the same function/property names, but with the environment parameter removed
14
+ *
15
+ * @example
16
+ * ```typescript
17
+ * const functionsAndGetters = {
18
+ * // Functions that expect env as first parameter
19
+ * deploy: (env: Environment, contractName: string, args: any[]) => Promise<void>,
20
+ * verify: (env: Environment, address: string) => Promise<boolean>,
21
+ *
22
+ * // Getter properties that can be accessed directly
23
+ * myValue: (env: Environment) => env.someValue,
24
+ * networkId: (env: Environment) => env.network.id
25
+ * };
26
+ *
27
+ * const enhancedEnv = withEnvironment(env, functionsAndGetters);
28
+ *
29
+ * // Now you can call functions without passing env:
30
+ * await enhancedEnv.deploy('MyContract', []);
31
+ * await enhancedEnv.verify('0x123...');
32
+ *
33
+ * // And access getter properties directly:
34
+ * console.log(enhancedEnv.myValue);
35
+ * console.log(enhancedEnv.networkId);
36
+ * ```
37
+ */
38
+ export function withEnvironment<
39
+ NamedAccounts extends UnresolvedUnknownNamedAccounts = UnresolvedUnknownNamedAccounts,
40
+ Data extends UnresolvedNetworkSpecificData = UnresolvedNetworkSpecificData,
41
+ Deployments extends UnknownDeployments = UnknownDeployments,
42
+ Extra extends Record<string, unknown> = Record<string, unknown>,
43
+ T extends Record<
44
+ string,
45
+ | ((env: Environment<NamedAccounts, Data, Deployments, Extra>) => (...args: any[]) => any)
46
+ | ((env: Environment<NamedAccounts, Data, Deployments, Extra>) => any)
47
+ > = Record<
48
+ string,
49
+ | ((env: Environment<NamedAccounts, Data, Deployments>) => (...args: any[]) => any)
50
+ | ((env: Environment<NamedAccounts, Data, Deployments>) => any)
51
+ >
52
+ >(env: Environment<NamedAccounts, Data, Deployments, Extra>, functionsAndGetters: T): CurriedFunctions<T> {
53
+ const result = {} as CurriedFunctions<T>;
54
+
55
+ for (const [key, func] of Object.entries(functionsAndGetters)) {
56
+ // Check if the function is a getter or a regular function
57
+ const value = func(env);
58
+
59
+ if (typeof value === 'function') {
60
+ // Regular function case: Create a function that automatically passes the environment
61
+ (result as any)[key] = (...args: any[]) => func(env)(...args);
62
+ } else {
63
+ // Getter case: Define property with getter that returns the value
64
+ Object.defineProperty(result, key, {
65
+ get: () => func(env),
66
+ enumerable: true,
67
+ });
68
+ }
69
+ }
70
+
71
+ return result;
72
+ }
@@ -1,42 +0,0 @@
1
- import type {Environment} from '../environment/types.js';
2
- import {withEnvironment} from './curry.js';
3
-
4
- // Mock environment for testing
5
- const mockEnv = {} as Environment;
6
-
7
- // Example functions that take environment as first parameter
8
- const exampleFunctions = {
9
- deploy: (env: Environment, contractName: string, args: any[]): Promise<void> => {
10
- return Promise.resolve();
11
- },
12
-
13
- verify: (env: Environment, address: string): Promise<boolean> => {
14
- return Promise.resolve(true);
15
- },
16
-
17
- getBalance: (env: Environment, address: string): Promise<bigint> => {
18
- return Promise.resolve(BigInt(0));
19
- },
20
-
21
- syncFunction: (env: Environment, value: number): number => {
22
- return value * 2;
23
- },
24
- };
25
-
26
- // Test the currying function
27
- const curriedFunctions = withEnvironment(mockEnv, exampleFunctions);
28
-
29
- // Type tests - these should compile without errors
30
- async function testTypes() {
31
- // These calls should work without passing env
32
- await curriedFunctions.deploy('MyContract', []);
33
- const isVerified = await curriedFunctions.verify('0x123...');
34
- const balance = await curriedFunctions.getBalance('0x456...');
35
- const doubled = curriedFunctions.syncFunction(42);
36
-
37
- console.log('Type tests passed!');
38
- console.log({isVerified, balance, doubled});
39
- }
40
-
41
- // Export for potential use in actual tests
42
- export {testTypes, curriedFunctions, exampleFunctions};
@@ -1,61 +0,0 @@
1
- import type {
2
- Environment,
3
- UnknownDeployments,
4
- UnresolvedNetworkSpecificData,
5
- UnresolvedUnknownNamedAccounts,
6
- } from '../environment/types.js';
7
-
8
- /**
9
- * Utility type to remove the first parameter from a function type
10
- */
11
- type RemoveFirstParameter<T> = T extends (first: any, ...rest: infer R) => infer Return
12
- ? (...args: R) => Return
13
- : never;
14
-
15
- /**
16
- * Utility type to transform an object of functions by removing their first parameter
17
- */
18
- type CurriedFunctions<T> = {
19
- [K in keyof T]: RemoveFirstParameter<T[K]>;
20
- };
21
-
22
- /**
23
- * Creates a curried version of functions that automatically inject an environment as the first parameter.
24
- *
25
- * @param env - The environment object to inject as the first parameter
26
- * @param functions - An object containing functions that expect the environment as their first parameter
27
- * @returns An object with the same function names, but with the environment parameter removed
28
- *
29
- * @example
30
- * ```typescript
31
- * const functions = {
32
- * deploy: (env: Environment, contractName: string, args: any[]) => Promise<void>,
33
- * verify: (env: Environment, address: string) => Promise<boolean>
34
- * };
35
- *
36
- * const curriedFunctions = withEnvironment(env, functions);
37
- *
38
- * // Now you can call without passing env:
39
- * await curriedFunctions.deploy('MyContract', []);
40
- * await curriedFunctions.verify('0x123...');
41
- * ```
42
- */
43
- export function withEnvironment<
44
- NamedAccounts extends UnresolvedUnknownNamedAccounts = UnresolvedUnknownNamedAccounts,
45
- Data extends UnresolvedNetworkSpecificData = UnresolvedNetworkSpecificData,
46
- Deployments extends UnknownDeployments = UnknownDeployments,
47
- Extra extends Record<string, unknown> = Record<string, unknown>,
48
- T extends Record<string, (env: Environment<NamedAccounts, Data, Deployments, Extra>, ...args: any[]) => any> = Record<
49
- string,
50
- (env: Environment<NamedAccounts, Data, Deployments>, ...args: any[]) => any
51
- >
52
- >(env: Environment<NamedAccounts, Data, Deployments, Extra>, functions: T): CurriedFunctions<T> {
53
- const result = {} as CurriedFunctions<T>;
54
-
55
- for (const [key, func] of Object.entries(functions)) {
56
- // Create a new function that automatically passes the environment as the first argument
57
- (result as any)[key] = (...args: any[]) => func(env, ...args);
58
- }
59
-
60
- return result;
61
- }