@klaytn/hardhat-utils
Advanced tools
Comparing version 0.0.7 to 0.0.8
@@ -34,2 +34,3 @@ import type ethers from "ethers"; | ||
export declare function currentNetworkEIP3085(): Promise<any>; | ||
export declare const extendHardhatEthers: ProxyHandler<any>; | ||
export declare function getWallet(address: string): Promise<ethers.Wallet>; | ||
@@ -36,0 +37,0 @@ export declare function getWallets(): Promise<ethers.Wallet[]>; |
@@ -6,3 +6,3 @@ "use strict"; | ||
Object.defineProperty(exports, "__esModule", { value: true }); | ||
exports.runDockerCompose = exports.getWallets = exports.getWallet = exports.currentNetworkEIP3085 = exports.isDevDependency = exports.isFilePath = exports.sleep = exports.PluginError = exports.normalizeRpcResult = exports.normalizeCallResult = exports.resolveFuncArgs = exports.AmountArgType = exports.FromArgType = void 0; | ||
exports.runDockerCompose = exports.getWallets = exports.getWallet = exports.extendHardhatEthers = exports.currentNetworkEIP3085 = exports.isDevDependency = exports.isFilePath = exports.sleep = exports.PluginError = exports.normalizeRpcResult = exports.normalizeCallResult = exports.resolveFuncArgs = exports.AmountArgType = exports.FromArgType = void 0; | ||
const child_process_1 = __importDefault(require("child_process")); | ||
@@ -135,2 +135,37 @@ const fs_1 = __importDefault(require("fs")); | ||
exports.currentNetworkEIP3085 = currentNetworkEIP3085; | ||
class propOverrideProxyHandler { | ||
constructor(overrides) { | ||
this.overrides = overrides; | ||
} | ||
get(target, prop, receiver) { | ||
if (lodash_1.default.has(this.overrides, prop)) { | ||
return this.overrides[prop]; | ||
} | ||
return Reflect.get(target, prop, receiver); | ||
} | ||
getOwnPropertyDescriptor(target, prop) { | ||
if (lodash_1.default.has(this.overrides, prop)) { | ||
return { | ||
enumerable: true, | ||
writable: false, | ||
value: this.overrides[prop] | ||
}; | ||
} | ||
return Reflect.getOwnPropertyDescriptor(target, prop); | ||
} | ||
has(target, prop) { | ||
if (lodash_1.default.has(this.overrides, prop)) { | ||
return true; | ||
} | ||
return Reflect.has(target, prop); | ||
} | ||
ownKeys(target) { | ||
let keys = Reflect.ownKeys(target); | ||
return lodash_1.default.concat(keys, lodash_1.default.keys(this.overrides)); | ||
} | ||
} | ||
exports.extendHardhatEthers = new propOverrideProxyHandler({ | ||
"getWallet": getWallet, | ||
"getWallets": getWallets, | ||
}); | ||
// Maps address => privateKey | ||
@@ -137,0 +172,0 @@ let knownWallets = {}; |
@@ -28,6 +28,4 @@ "use strict"; | ||
// Because hardhat-dodoc is a non-critical feature, don't check here. | ||
// Extend hre.ethers | ||
// See https://github.com/NomicFoundation/hardhat/blob/main/packages/hardhat-ethers/src/internal/index.ts | ||
hre.ethers.getWallet = helpers_1.getWallet; | ||
hre.ethers.getWallets = helpers_1.getWallets; | ||
// Lazy extend the `hre.ethers` object using the ES6 object Proxy | ||
hre.ethers = new Proxy(hre.ethers, helpers_1.extendHardhatEthers); | ||
}); | ||
@@ -34,0 +32,0 @@ __exportStar(require("./abi"), exports); |
{ | ||
"name": "@klaytn/hardhat-utils", | ||
"version": "0.0.7", | ||
"version": "0.0.8", | ||
"description": "Hardhat utility tasks", | ||
@@ -5,0 +5,0 @@ "repository": "github:klaytn/hardhat-utils", |
@@ -5,3 +5,4 @@ import type ethers from "ethers"; | ||
import { HardhatPluginError } from "hardhat/plugins"; | ||
import _ from "lodash"; | ||
import _, {over} from "lodash"; | ||
import { HardhatEthersHelpers } from "@nomiclabs/hardhat-ethers/types"; | ||
import { normalizeHardhatNetworkAccountsConfig } from "hardhat/internal/core/providers/util"; | ||
@@ -145,2 +146,52 @@ import { HardhatNetworkAccountConfig, HardhatNetworkHDAccountsConfig } from "hardhat/types"; | ||
// propOverrideProxyHandler is an ES6 ProxyHandler that addsa several readonly properties. | ||
// | ||
// See https://github.com/NomicFoundation/hardhat/blob/main/packages/hardhat-ethers/src/internal/index.ts | ||
// See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy | ||
// See node_modules/typescript/lib/lib.es2015.proxy.d.ts | ||
type propOverrides = {[prop: PropertyKey]: any }; | ||
class propOverrideProxyHandler implements ProxyHandler<any> { | ||
overrides: propOverrides; | ||
constructor(overrides: propOverrides) { | ||
this.overrides = overrides; | ||
} | ||
get(target: any, prop: PropertyKey, receiver: any) { | ||
if (_.has(this.overrides, prop)) { | ||
return this.overrides[prop]; | ||
} | ||
return Reflect.get(target, prop, receiver); | ||
} | ||
getOwnPropertyDescriptor(target: any, prop: PropertyKey) { | ||
if (_.has(this.overrides, prop)) { | ||
return { | ||
enumerable: true, | ||
writable: false, | ||
value: this.overrides[prop] | ||
}; | ||
} | ||
return Reflect.getOwnPropertyDescriptor(target, prop); | ||
} | ||
has(target: any, prop: PropertyKey) { | ||
if (_.has(this.overrides, prop)) { | ||
return true; | ||
} | ||
return Reflect.has(target, prop); | ||
} | ||
ownKeys(target: any): any[] { | ||
let keys = Reflect.ownKeys(target); | ||
return _.concat(keys, _.keys(this.overrides)); | ||
} | ||
} | ||
export const extendHardhatEthers: ProxyHandler<any> = new propOverrideProxyHandler({ | ||
"getWallet": getWallet, | ||
"getWallets": getWallets, | ||
}); | ||
// Maps address => privateKey | ||
@@ -147,0 +198,0 @@ let knownWallets: { [key: string]: string } = {}; |
import { extendEnvironment } from "hardhat/config"; | ||
import { HardhatRuntimeEnvironment } from "hardhat/types"; | ||
import { getWallet, getWallets, PluginError } from "./helpers"; | ||
import { extendHardhatEthers, PluginError } from "./helpers"; | ||
@@ -16,6 +16,4 @@ import "./type-extensions"; | ||
// Extend hre.ethers | ||
// See https://github.com/NomicFoundation/hardhat/blob/main/packages/hardhat-ethers/src/internal/index.ts | ||
hre.ethers.getWallet = getWallet; | ||
hre.ethers.getWallets = getWallets; | ||
// Lazy extend the `hre.ethers` object using the ES6 object Proxy | ||
hre.ethers = new Proxy(hre.ethers, extendHardhatEthers); | ||
}); | ||
@@ -22,0 +20,0 @@ |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
257466
3775