Use consistent naming scheme for plugins.
This commit is contained in:
parent
a22eb3fbe5
commit
8f30da1858
@ -94,7 +94,7 @@ export abstract class MulticoinProviderPlugin implements AbstractProviderPlugin
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const BasicMulticoinPluginId = "org.ethers.plugins.BasicMulticoin";
|
const BasicMulticoinPluginId = "org.ethers.plugins.provider.BasicMulticoin";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A basic multicoin provider plugin.
|
* A basic multicoin provider plugin.
|
||||||
@ -492,7 +492,7 @@ export class EnsResolver {
|
|||||||
static async getEnsAddress(provider: Provider): Promise<string> {
|
static async getEnsAddress(provider: Provider): Promise<string> {
|
||||||
const network = await provider.getNetwork();
|
const network = await provider.getNetwork();
|
||||||
|
|
||||||
const ensPlugin = network.getPlugin<EnsPlugin>("org.ethers.network-plugins.ens");
|
const ensPlugin = network.getPlugin<EnsPlugin>("org.ethers.plugins.network.Ens");
|
||||||
|
|
||||||
// No ENS...
|
// No ENS...
|
||||||
assert(ensPlugin, "network does not support ENS", "UNSUPPORTED_OPERATION", {
|
assert(ensPlugin, "network does not support ENS", "UNSUPPORTED_OPERATION", {
|
||||||
@ -502,16 +502,10 @@ export class EnsResolver {
|
|||||||
}
|
}
|
||||||
|
|
||||||
static async #getResolver(provider: Provider, name: string): Promise<null | string> {
|
static async #getResolver(provider: Provider, name: string): Promise<null | string> {
|
||||||
const network = await provider.getNetwork();
|
const ensAddr = await EnsResolver.getEnsAddress(provider);
|
||||||
|
|
||||||
const ensPlugin = network.getPlugin<EnsPlugin>("org.ethers.network-plugins.ens");
|
|
||||||
|
|
||||||
// No ENS...
|
|
||||||
assert(ensPlugin, "network does not support ENS", "UNSUPPORTED_OPERATION", {
|
|
||||||
operation: "getResolver", info: { network: network.name } });
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const contract = new Contract(ensPlugin.address, [
|
const contract = new Contract(ensAddr, [
|
||||||
"function resolver(bytes32) view returns (address)"
|
"function resolver(bytes32) view returns (address)"
|
||||||
], provider);
|
], provider);
|
||||||
|
|
||||||
|
@ -143,7 +143,7 @@ export class Network {
|
|||||||
}
|
}
|
||||||
|
|
||||||
computeIntrinsicGas(tx: TransactionLike): number {
|
computeIntrinsicGas(tx: TransactionLike): number {
|
||||||
const costs = this.getPlugin<GasCostPlugin>("org.ethers.gas-cost") || (new GasCostPlugin());
|
const costs = this.getPlugin<GasCostPlugin>("org.ethers.plugins.network.GasCost") || (new GasCostPlugin());
|
||||||
|
|
||||||
let gas = costs.txBase;
|
let gas = costs.txBase;
|
||||||
if (tx.to == null) { gas += costs.txCreate; }
|
if (tx.to == null) { gas += costs.txCreate; }
|
||||||
|
@ -5,7 +5,7 @@ import { defineProperties } from "../utils/index.js";
|
|||||||
import type { AbstractProvider, PerformActionRequest } from "./abstract-provider.js";
|
import type { AbstractProvider, PerformActionRequest } from "./abstract-provider.js";
|
||||||
|
|
||||||
|
|
||||||
export const PluginIdFallbackProvider = "org.ethers.plugins.QualifiedPlugin";
|
export const PluginIdFallbackProvider = "org.ethers.plugins.provider.QualifiedPlugin";
|
||||||
|
|
||||||
export class CheckQualifiedPlugin implements AbstractProviderPlugin {
|
export class CheckQualifiedPlugin implements AbstractProviderPlugin {
|
||||||
declare name: string;
|
declare name: string;
|
||||||
|
@ -50,7 +50,7 @@ export class GasCostPlugin extends NetworkPlugin implements GasCostParameters {
|
|||||||
|
|
||||||
constructor(effectiveBlock?: number, costs?: GasCostParameters) {
|
constructor(effectiveBlock?: number, costs?: GasCostParameters) {
|
||||||
if (effectiveBlock == null) { effectiveBlock = 0; }
|
if (effectiveBlock == null) { effectiveBlock = 0; }
|
||||||
super(`org.ethers.network-plugins.gas-cost#${ (effectiveBlock || 0) }`);
|
super(`org.ethers.network.plugins.GasCost#${ (effectiveBlock || 0) }`);
|
||||||
|
|
||||||
const props: Record<string, number> = { effectiveBlock };
|
const props: Record<string, number> = { effectiveBlock };
|
||||||
function set(name: keyof GasCostParameters, nullish: number): void {
|
function set(name: keyof GasCostParameters, nullish: number): void {
|
||||||
@ -86,7 +86,7 @@ export class EnsPlugin extends NetworkPlugin {
|
|||||||
readonly targetNetwork!: number;
|
readonly targetNetwork!: number;
|
||||||
|
|
||||||
constructor(address?: null | string, targetNetwork?: null | number) {
|
constructor(address?: null | string, targetNetwork?: null | number) {
|
||||||
super("org.ethers.network-plugins.ens");
|
super("org.ethers.plugins.network.Ens");
|
||||||
defineProperties<EnsPlugin>(this, {
|
defineProperties<EnsPlugin>(this, {
|
||||||
address: (address || EnsAddress),
|
address: (address || EnsAddress),
|
||||||
targetNetwork: ((targetNetwork == null) ? 1: targetNetwork)
|
targetNetwork: ((targetNetwork == null) ? 1: targetNetwork)
|
||||||
@ -96,39 +96,17 @@ export class EnsPlugin extends NetworkPlugin {
|
|||||||
clone(): EnsPlugin {
|
clone(): EnsPlugin {
|
||||||
return new EnsPlugin(this.address, this.targetNetwork);
|
return new EnsPlugin(this.address, this.targetNetwork);
|
||||||
}
|
}
|
||||||
|
|
||||||
// validate(network: Network): this {
|
|
||||||
// network.formatter.address(this.address);
|
|
||||||
// return this;
|
|
||||||
// }
|
|
||||||
}
|
}
|
||||||
/*
|
|
||||||
export class MaxPriorityFeePlugin extends NetworkPlugin {
|
|
||||||
readonly priorityFee!: bigint;
|
|
||||||
|
|
||||||
constructor(priorityFee: BigNumberish) {
|
|
||||||
super("org.ethers.plugins.max-priority-fee");
|
|
||||||
defineProperties<MaxPriorityFeePlugin>(this, {
|
|
||||||
priorityFee: logger.getBigInt(priorityFee)
|
|
||||||
});
|
|
||||||
}
|
|
||||||
|
|
||||||
async getPriorityFee(provider: Provider): Promise<bigint> {
|
|
||||||
return this.priorityFee;
|
|
||||||
}
|
|
||||||
|
|
||||||
clone(): MaxPriorityFeePlugin {
|
|
||||||
return new MaxPriorityFeePlugin(this.priorityFee);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
export class FeeDataNetworkPlugin extends NetworkPlugin {
|
export class FeeDataNetworkPlugin extends NetworkPlugin {
|
||||||
readonly #feeDataFunc: (provider: Provider) => Promise<FeeData>;
|
readonly #feeDataFunc: (provider: Provider) => Promise<FeeData>;
|
||||||
|
|
||||||
get feeDataFunc(): (provider: Provider) => Promise<FeeData> { return this.#feeDataFunc; }
|
get feeDataFunc(): (provider: Provider) => Promise<FeeData> {
|
||||||
|
return this.#feeDataFunc;
|
||||||
|
}
|
||||||
|
|
||||||
constructor(feeDataFunc: (provider: Provider) => Promise<FeeData>) {
|
constructor(feeDataFunc: (provider: Provider) => Promise<FeeData>) {
|
||||||
super("org.ethers.network-plugins.fee-data");
|
super("org.ethers.plugins.network.FeeData");
|
||||||
this.#feeDataFunc = feeDataFunc;
|
this.#feeDataFunc = feeDataFunc;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -140,6 +118,7 @@ export class FeeDataNetworkPlugin extends NetworkPlugin {
|
|||||||
return new FeeDataNetworkPlugin(this.#feeDataFunc);
|
return new FeeDataNetworkPlugin(this.#feeDataFunc);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
export class CustomBlockNetworkPlugin extends NetworkPlugin {
|
export class CustomBlockNetworkPlugin extends NetworkPlugin {
|
||||||
readonly #blockFunc: (provider: Provider, block: BlockParams<string>) => Block<string>;
|
readonly #blockFunc: (provider: Provider, block: BlockParams<string>) => Block<string>;
|
||||||
|
@ -48,7 +48,7 @@ export type DebugEventEtherscanProvider = {
|
|||||||
error: any
|
error: any
|
||||||
};
|
};
|
||||||
|
|
||||||
const EtherscanPluginId = "org.ethers.plugins.Etherscan";
|
const EtherscanPluginId = "org.ethers.plugins.provider.Etherscan";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* A Network can include an **EtherscanPlugin** to provide
|
* A Network can include an **EtherscanPlugin** to provide
|
||||||
|
Loading…
Reference in New Issue
Block a user