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 +12 -0
- package/dist/executor/index.d.ts +3 -3
- package/dist/executor/index.d.ts.map +1 -1
- package/dist/executor/index.js +3 -3
- package/dist/executor/index.js.map +1 -1
- package/dist/executor/setup.test.d.ts +5 -5
- package/dist/executor/setup.test.d.ts.map +1 -1
- package/dist/executor/setup.test.js +8 -8
- package/dist/executor/setup.test.js.map +1 -1
- package/dist/executor/types.d.ts +7 -6
- package/dist/executor/types.d.ts.map +1 -1
- package/dist/utils/curry.d.ts +21 -20
- package/dist/utils/curry.d.ts.map +1 -1
- package/dist/utils/curry.js +34 -12
- package/dist/utils/curry.js.map +1 -1
- package/dist/utils/curry.test.d.ts +14 -12
- package/dist/utils/curry.test.d.ts.map +1 -1
- package/dist/utils/curry.test.js +14 -12
- package/dist/utils/curry.test.js.map +1 -1
- package/dist/utils/extensions.d.ts +33 -0
- package/dist/utils/extensions.d.ts.map +1 -0
- package/dist/utils/extensions.js +49 -0
- package/dist/utils/extensions.js.map +1 -0
- package/dist/utils/extensions.test.d.ts +18 -0
- package/dist/utils/extensions.test.d.ts.map +1 -0
- package/dist/utils/extensions.test.js +35 -0
- package/dist/utils/extensions.test.js.map +1 -0
- package/package.json +1 -1
- package/src/executor/index.ts +4 -4
- package/src/executor/setup.test.ts +49 -33
- package/src/executor/types.ts +7 -7
- package/src/utils/extensions.test.ts +53 -0
- package/src/utils/extensions.ts +72 -0
- package/src/utils/curry.test.ts +0 -42
- package/src/utils/curry.ts +0 -61
package/CHANGELOG.md
CHANGED
package/dist/executor/index.d.ts
CHANGED
|
@@ -11,8 +11,8 @@ import { DeployScriptFunction, DeployScriptModule, EnhancedDeployScriptFunction
|
|
|
11
11
|
* @example
|
|
12
12
|
* ```typescript
|
|
13
13
|
* const functions = {
|
|
14
|
-
* deploy: (env: Environment
|
|
15
|
-
* verify: (env: Environment
|
|
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
|
|
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":"AAAA,OAAO,EAAC,6BAA6B,EAAE,4BAA4B,EAAC,MAAM,UAAU,CAAC;AAMrF,OAAO,KAAK,EACX,MAAM,EACN,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,6BAA6B,EAC7B,8BAA8B,EAC9B,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAoB,sBAAsB,EAAC,MAAM,yBAAyB,CAAC;AAClF,OAAO,EAAC,oBAAoB,EAAE,kBAAkB,EAAE,4BAA4B,EAAsB,MAAM,YAAY,CAAC;AASvH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,KAAK,CACpB,SAAS,SAAS,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/executor/index.ts"],"names":[],"mappings":"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"}
|
package/dist/executor/index.js
CHANGED
|
@@ -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/
|
|
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
|
|
23
|
-
* verify: (env: Environment
|
|
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
|
|
4
|
-
verifyContract: (env: Environment
|
|
5
|
-
getBalance: (env: Environment
|
|
6
|
-
calculateGas: (env: Environment
|
|
7
|
-
isDeployed: (env: Environment
|
|
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;
|
|
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 (
|
|
6
|
+
deployContract: (env) => async (contractName, args = []) => {
|
|
7
7
|
console.log(`Deploying ${contractName} with args:`, args);
|
|
8
8
|
return '0x1234567890123456789012345678901234567890';
|
|
9
9
|
},
|
|
10
|
-
verifyContract: async (
|
|
10
|
+
verifyContract: (env) => async (address) => {
|
|
11
11
|
console.log(`Verifying contract at ${address}`);
|
|
12
12
|
return true;
|
|
13
13
|
},
|
|
14
|
-
getBalance: async (
|
|
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
|
|
18
|
+
calculateGas: (env) => (operation) => {
|
|
19
19
|
console.log(`Calculating gas for ${operation}`);
|
|
20
20
|
return 21000;
|
|
21
21
|
},
|
|
22
|
-
isDeployed: (env
|
|
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 (
|
|
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 (
|
|
78
|
+
setupPermissions: (env) => async (contractAddress, admin) => {
|
|
79
79
|
// Implementation would interact with contracts
|
|
80
80
|
},
|
|
81
|
-
verifyOnEtherscan: async (
|
|
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":"AACA,OAAO,EAAC,KAAK,EAAC,MAAM,YAAY,CAAC;AAEjC,+BAA+B;AAC/B,MAAM,OAAO,GAAG,EAAiB,CAAC;AAElC,qEAAqE;AACrE,MAAM,gBAAgB,GAAG;IACxB,cAAc,
|
|
1
|
+
{"version":3,"file":"setup.test.js","sourceRoot":"","sources":["../../src/executor/setup.test.ts"],"names":[],"mappings":"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"}
|
package/dist/executor/types.d.ts
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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]:
|
|
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":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,kBAAkB,EAClB,6BAA6B,EAC7B,8BAA8B,EAC9B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,oBAAoB,CAC/B,aAAa,SAAS,8BAA8B,GAAG,8BAA8B,EACrF,IAAI,SAAS,6BAA6B,GAAG,6BAA6B,EAC1E,cAAc,GAAG,SAAS,EAC1B,WAAW,SAAS,kBAAkB,GAAG,kBAAkB,EAC3D,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC5D,CAAC,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;AAElH,MAAM,WAAW,kBAAkB,CAClC,aAAa,SAAS,8BAA8B,GAAG,8BAA8B,EACrF,IAAI,SAAS,6BAA6B,GAAG,6BAA6B,EAC1E,cAAc,GAAG,SAAS,EAC1B,WAAW,SAAS,kBAAkB,GAAG,kBAAkB,EAC3D,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAE/D,CAAC,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;IAC5G,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,MAAM,cAAc,CACzB,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,IAC5D,CAAC,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEjF
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/executor/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACX,WAAW,EACX,kBAAkB,EAClB,6BAA6B,EAC7B,8BAA8B,EAC9B,MAAM,yBAAyB,CAAC;AAEjC,MAAM,MAAM,oBAAoB,CAC/B,aAAa,SAAS,8BAA8B,GAAG,8BAA8B,EACrF,IAAI,SAAS,6BAA6B,GAAG,6BAA6B,EAC1E,cAAc,GAAG,SAAS,EAC1B,WAAW,SAAS,kBAAkB,GAAG,kBAAkB,EAC3D,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC5D,CAAC,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,cAAc,KAAK,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;AAElH,MAAM,WAAW,kBAAkB,CAClC,aAAa,SAAS,8BAA8B,GAAG,8BAA8B,EACrF,IAAI,SAAS,6BAA6B,GAAG,6BAA6B,EAC1E,cAAc,GAAG,SAAS,EAC1B,WAAW,SAAS,kBAAkB,GAAG,kBAAkB,EAC3D,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAE/D,CAAC,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC;IAC5G,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;CACZ;AAED,MAAM,MAAM,cAAc,CACzB,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,IAC5D,CAAC,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;AAEjF;;;GAGG;AACH,MAAM,MAAM,qBAAqB,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,KAAK,MAAM,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAE/F;;;GAGG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,IAAI;KAChC,CAAC,IAAI,MAAM,CAAC,GAAG,qBAAqB,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3C,CAAC;AAEF;;;GAGG;AACH,MAAM,MAAM,mBAAmB,CAC9B,aAAa,SAAS,8BAA8B,GAAG,8BAA8B,EACrF,IAAI,SAAS,6BAA6B,GAAG,6BAA6B,EAC1E,WAAW,SAAS,kBAAkB,GAAG,kBAAkB,EAC3D,SAAS,SAAS,MAAM,CACvB,MAAM,EACN,CAAC,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAC3E,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAC/F,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC5D,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,CAAC,GAAG,gBAAgB,CAAC,SAAS,CAAC,CAAC;AAEvF;;GAEG;AACH,MAAM,MAAM,4BAA4B,CACvC,aAAa,SAAS,8BAA8B,GAAG,8BAA8B,EACrF,IAAI,SAAS,6BAA6B,GAAG,6BAA6B,EAC1E,cAAc,GAAG,SAAS,EAC1B,WAAW,SAAS,kBAAkB,GAAG,kBAAkB,EAC3D,SAAS,SAAS,MAAM,CACvB,MAAM,EACN,CAAC,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAC3E,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,WAAW,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC,EAC/F,KAAK,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,IAC5D,CACH,GAAG,EAAE,mBAAmB,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,SAAS,EAAE,KAAK,CAAC,EAC5E,IAAI,CAAC,EAAE,cAAc,KACjB,OAAO,CAAC,IAAI,GAAG,OAAO,CAAC,CAAC"}
|
package/dist/utils/curry.d.ts
CHANGED
|
@@ -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
|
|
17
|
-
*
|
|
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
|
|
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
|
|
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
|
-
* //
|
|
29
|
-
*
|
|
30
|
-
*
|
|
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
|
|
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;
|
|
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"}
|
package/dist/utils/curry.js
CHANGED
|
@@ -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
|
|
6
|
-
*
|
|
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
|
|
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
|
|
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
|
-
* //
|
|
18
|
-
*
|
|
19
|
-
*
|
|
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,
|
|
33
|
+
export function withEnvironment(env, functionsAndGetters) {
|
|
23
34
|
const result = {};
|
|
24
|
-
for (const [key, func] of Object.entries(
|
|
25
|
-
//
|
|
26
|
-
|
|
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
|
}
|
package/dist/utils/curry.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"curry.js","sourceRoot":"","sources":["../../src/utils/curry.ts"],"names":[],"mappings":"
|
|
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
|
|
3
|
-
deploy: (env: Environment
|
|
4
|
-
verify: (env: Environment
|
|
5
|
-
getBalance: (env: Environment
|
|
6
|
-
syncFunction: (env: Environment
|
|
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,
|
|
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,
|
|
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"}
|
package/dist/utils/curry.test.js
CHANGED
|
@@ -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
|
|
6
|
-
deploy: (env
|
|
5
|
+
const exampleExtensions = {
|
|
6
|
+
deploy: (env) => async (contractName, args) => {
|
|
7
7
|
return Promise.resolve();
|
|
8
8
|
},
|
|
9
|
-
verify: (env
|
|
9
|
+
verify: (env) => async (address) => {
|
|
10
10
|
return Promise.resolve(true);
|
|
11
11
|
},
|
|
12
|
-
getBalance: (env
|
|
12
|
+
getBalance: (env) => async (address) => {
|
|
13
13
|
return Promise.resolve(BigInt(0));
|
|
14
14
|
},
|
|
15
|
-
syncFunction: (env
|
|
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
|
|
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
|
|
25
|
-
const isVerified = await
|
|
26
|
-
const balance = await
|
|
27
|
-
const doubled =
|
|
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,
|
|
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,
|
|
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
package/src/executor/index.ts
CHANGED
|
@@ -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/
|
|
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
|
|
35
|
-
* verify: (env: Environment
|
|
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
|
|
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:
|
|
10
|
-
|
|
11
|
-
|
|
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:
|
|
15
|
-
|
|
16
|
-
|
|
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:
|
|
20
|
-
|
|
21
|
-
|
|
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:
|
|
25
|
-
|
|
26
|
-
|
|
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:
|
|
30
|
-
|
|
31
|
-
|
|
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:
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
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
|
package/src/executor/types.ts
CHANGED
|
@@ -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
|
|
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
|
|
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
|
|
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]:
|
|
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
|
+
}
|
package/src/utils/curry.test.ts
DELETED
|
@@ -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};
|
package/src/utils/curry.ts
DELETED
|
@@ -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
|
-
}
|