diff --git a/lib.esm/_tests/create-provider.js b/lib.esm/_tests/create-provider.js index c8a2e23a8b..03769ddcd1 100644 --- a/lib.esm/_tests/create-provider.js +++ b/lib.esm/_tests/create-provider.js @@ -8,14 +8,14 @@ JsonRpcProvider, FallbackProvider, isError, } from "../index.js"; import { inspect } from "./utils-debug.js"; import { INFURA_APIKEY } from "./utils.js"; ; -const ethNetworks = ["default", "mainnet", "sepolia"]; +const ethNetworks = ["default", "mainnet", "sepolia", "bnb", "bnbt",]; //const maticNetworks = [ "matic", "maticmum" ]; const ProviderCreators = [ { name: "AlchemyProvider", networks: ethNetworks, create: function (network) { - return new AlchemyProvider(network, "YrPw6SWb20vJDRFkhWq8aKnTQ8JRNRHM"); + return new AlchemyProvider(network, "d-Gyo1Pogy5dRD562tK-tGyYWT0FvpvD"); } }, { diff --git a/lib.esm/_tests/create-provider.js.map b/lib.esm/_tests/create-provider.js.map index 0edfeda4a5..415c111e9b 100644 --- a/lib.esm/_tests/create-provider.js.map +++ b/lib.esm/_tests/create-provider.js.map @@ -1 +1 @@ -{"version":3,"file":"create-provider.js","sourceRoot":"","sources":["../../src.ts/_tests/create-provider.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"create-provider.js","sourceRoot":"","sources":["../../src.ts/_tests/create-provider.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/lib.esm/_tests/test-provider-alchemy.d.ts b/lib.esm/_tests/test-provider-alchemy.d.ts new file mode 100644 index 0000000000..ed07394b9a --- /dev/null +++ b/lib.esm/_tests/test-provider-alchemy.d.ts @@ -0,0 +1,2 @@ +export {}; +//# sourceMappingURL=test-provider-alchemy.d.ts.map \ No newline at end of file diff --git a/lib.esm/_tests/test-provider-alchemy.d.ts.map b/lib.esm/_tests/test-provider-alchemy.d.ts.map new file mode 100644 index 0000000000..130c35b28a --- /dev/null +++ b/lib.esm/_tests/test-provider-alchemy.d.ts.map @@ -0,0 +1 @@ +{"version":3,"file":"test-provider-alchemy.d.ts","sourceRoot":"","sources":["../../src.ts/_tests/test-provider-alchemy.ts"],"names":[],"mappings":""} \ No newline at end of file diff --git a/lib.esm/_tests/test-provider-alchemy.js b/lib.esm/_tests/test-provider-alchemy.js new file mode 100644 index 0000000000..40cd248c35 --- /dev/null +++ b/lib.esm/_tests/test-provider-alchemy.js @@ -0,0 +1,21 @@ +import assert from "assert"; +import { setupProviders, getProvider } from "./create-provider.js"; +import { AlchemyProvider } from "../index.js"; // import if needed +setupProviders(); +describe("AlchemyProvider BNB support", function () { + it("should create BNB mainnet provider", async function () { + const provider = getProvider("AlchemyProvider", "bnb"); + // console.log(provider); + assert.ok(provider instanceof AlchemyProvider, "provider is AlchemyProvider"); + const chainId = await provider.send("eth_chainId", []); + assert.equal(parseInt(chainId), 56); // BNB mainnet + }); + it("should create BNB testnet provider", async function () { + const provider = getProvider("AlchemyProvider", "bnbt"); + // console.log(provider); + assert.ok(provider instanceof AlchemyProvider, "provider is AlchemyProvider"); + const chainId = await provider.send("eth_chainId", []); + assert.equal(parseInt(chainId), 97); // BNB testnet + }); +}); +//# sourceMappingURL=test-provider-alchemy.js.map \ No newline at end of file diff --git a/lib.esm/_tests/test-provider-alchemy.js.map b/lib.esm/_tests/test-provider-alchemy.js.map new file mode 100644 index 0000000000..a5a70e8785 --- /dev/null +++ b/lib.esm/_tests/test-provider-alchemy.js.map @@ -0,0 +1 @@ +{"version":3,"file":"test-provider-alchemy.js","sourceRoot":"","sources":["../../src.ts/_tests/test-provider-alchemy.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC,CAAC,mBAAmB;AAElE,cAAc,EAAE,CAAC;AAEjB,QAAQ,CAAC,6BAA6B,EAAE;IACpC,EAAE,CAAC,oCAAoC,EAAE,KAAK;QAC1C,MAAM,QAAQ,GAAG,WAAW,CAAC,iBAAiB,EAAE,KAAK,CAAC,CAAC;QACvD,0BAA0B;QAC1B,MAAM,CAAC,EAAE,CAAC,QAAQ,YAAY,eAAe,EAAE,6BAA6B,CAAC,CAAC;QAC9E,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oCAAoC,EAAE,KAAK;QAC1C,MAAM,QAAQ,GAAG,WAAW,CAAC,iBAAiB,EAAE,MAAM,CAAC,CAAC;QACxD,yBAAyB;QACzB,MAAM,CAAC,EAAE,CAAC,QAAQ,YAAY,eAAe,EAAE,6BAA6B,CAAC,CAAC;QAC9E,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,EAAE,CAAC,CAAC;QACvD,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc;IACvD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"} \ No newline at end of file diff --git a/lib.esm/providers/provider-alchemy.d.ts b/lib.esm/providers/provider-alchemy.d.ts index 0fe1a7d181..9f99301149 100644 --- a/lib.esm/providers/provider-alchemy.d.ts +++ b/lib.esm/providers/provider-alchemy.d.ts @@ -19,7 +19,8 @@ * - Polygon (``matic``) * - Polygon Amoy Testnet (``matic-amoy``) * - Polygon Mumbai Testnet (``matic-mumbai``) - * + * - BNB Smart Chain (``bnb``) + * - BNB Smart Chain Testnet (``bnbt``) * @_subsection: api/providers/thirdparty:Alchemy [providers-alchemy] */ import { FetchRequest } from "../utils/index.js"; diff --git a/lib.esm/providers/provider-alchemy.d.ts.map b/lib.esm/providers/provider-alchemy.d.ts.map index 9cbe30b80d..e44fe55437 100644 --- a/lib.esm/providers/provider-alchemy.d.ts.map +++ b/lib.esm/providers/provider-alchemy.d.ts.map @@ -1 +1 @@ -{"version":3,"file":"provider-alchemy.d.ts","sourceRoot":"","sources":["../../src.ts/providers/provider-alchemy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAEH,OAAO,EAEH,YAAY,EACf,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AA2C/C;;;;;;;;;;GAUG;AACH,qBAAa,eAAgB,SAAQ,eAAgB,YAAW,oBAAoB;IAChF,QAAQ,CAAC,MAAM,EAAG,MAAM,CAAC;gBAEb,QAAQ,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,MAAM;IAWzD,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB;IAOzC,QAAQ,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC;IAmCvD,mBAAmB,IAAI,OAAO;IAI9B,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY;CAerE"} \ No newline at end of file +{"version":3,"file":"provider-alchemy.d.ts","sourceRoot":"","sources":["../../src.ts/providers/provider-alchemy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,OAAO,EAEH,YAAY,EACf,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAExD,OAAO,KAAK,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AACrF,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAgD/C;;;;;;;;;;GAUG;AACH,qBAAa,eAAgB,SAAQ,eAAgB,YAAW,oBAAoB;IAChF,QAAQ,CAAC,MAAM,EAAG,MAAM,CAAC;gBAEb,QAAQ,CAAC,EAAE,UAAU,EAAE,MAAM,CAAC,EAAE,IAAI,GAAG,MAAM;IAWzD,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,gBAAgB;IAOzC,QAAQ,CAAC,GAAG,EAAE,oBAAoB,GAAG,OAAO,CAAC,GAAG,CAAC;IAmCvD,mBAAmB,IAAI,OAAO;IAI9B,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,YAAY;CAerE"} \ No newline at end of file diff --git a/lib.esm/providers/provider-alchemy.js b/lib.esm/providers/provider-alchemy.js index 3e28f27049..ec41202bab 100644 --- a/lib.esm/providers/provider-alchemy.js +++ b/lib.esm/providers/provider-alchemy.js @@ -19,7 +19,8 @@ * - Polygon (``matic``) * - Polygon Amoy Testnet (``matic-amoy``) * - Polygon Mumbai Testnet (``matic-mumbai``) - * + * - BNB Smart Chain (``bnb``) + * - BNB Smart Chain Testnet (``bnbt``) * @_subsection: api/providers/thirdparty:Alchemy [providers-alchemy] */ import { defineProperties, resolveProperties, assert, assertArgument, FetchRequest } from "../utils/index.js"; @@ -59,6 +60,10 @@ function getHost(name) { return "opt-goerli.g.alchemy.com"; case "optimism-sepolia": return "opt-sepolia.g.alchemy.com"; + case "bnb": + return "bnb-mainnet.g.alchemy.com"; + case "bnbt": + return "bnb-testnet.g.alchemy.com"; } assertArgument(false, "unsupported network", "network", name); } diff --git a/lib.esm/providers/provider-alchemy.js.map b/lib.esm/providers/provider-alchemy.js.map index b9b137a4c4..c75f4dbd2c 100644 --- a/lib.esm/providers/provider-alchemy.js.map +++ b/lib.esm/providers/provider-alchemy.js.map @@ -1 +1 @@ -{"version":3,"file":"provider-alchemy.js","sourceRoot":"","sources":["../../src.ts/providers/provider-alchemy.ts"],"names":[],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"provider-alchemy.js","sourceRoot":"","sources":["../../src.ts/providers/provider-alchemy.ts"],"names":[],"mappings":"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"} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index f567922f22..599d647d61 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "ethers", - "version": "6.13.5", + "version": "6.15.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "ethers", - "version": "6.13.5", + "version": "6.15.0", "funding": [ { "type": "individual", diff --git a/src.ts/_tests/create-provider.ts b/src.ts/_tests/create-provider.ts index 2a9965758a..dc277b1bb1 100644 --- a/src.ts/_tests/create-provider.ts +++ b/src.ts/_tests/create-provider.ts @@ -1,13 +1,13 @@ import { AlchemyProvider, BlockscoutProvider, -// AnkrProvider, -// CloudflareProvider, + // AnkrProvider, + // CloudflareProvider, ChainstackProvider, EtherscanProvider, InfuraProvider, -// PocketProvider, -// QuickNodeProvider, + // PocketProvider, + // QuickNodeProvider, JsonRpcProvider, FallbackProvider, @@ -26,22 +26,22 @@ interface ProviderCreator { create: (network: string) => null | AbstractProvider; }; -const ethNetworks = [ "default", "mainnet", "sepolia" ]; +const ethNetworks = ["default", "mainnet", "sepolia", "bnb", "bnbt",]; //const maticNetworks = [ "matic", "maticmum" ]; const ProviderCreators: Array = [ { name: "AlchemyProvider", networks: ethNetworks, - create: function(network: string) { - return new AlchemyProvider(network, "YrPw6SWb20vJDRFkhWq8aKnTQ8JRNRHM"); + create: function (network: string) { + return new AlchemyProvider(network, "xxxxxxxxxxxxxxx"); } }, { name: "BlockscoutProvider", //networks: ethNetworks, // @TODO: they are backfilling some Sepolia txs - networks: [ "mainnet" ], - create: function(network: string) { + networks: ["mainnet"], + create: function (network: string) { //return new BlockscoutProvider(network); return new BlockscoutProvider(network, "fdbfa288-1695-454e-a369-4501253a120"); } @@ -66,22 +66,22 @@ const ProviderCreators: Array = [ */ { name: "ChainstackProvider", - networks: [ "default", "mainnet", "arbitrum", "bnb", "matic" ], - create: function(network: string) { + networks: ["default", "mainnet", "arbitrum", "bnb", "matic"], + create: function (network: string) { return new ChainstackProvider(network); } }, { name: "EtherscanProvider", networks: ethNetworks, - create: function(network: string) { + create: function (network: string) { return new EtherscanProvider(network, "FPFGK6JSW2UHJJ2666FG93KP7WC999MNW7"); } }, { name: "InfuraProvider", networks: ethNetworks, - create: function(network: string) { + create: function (network: string) { return new InfuraProvider(network, INFURA_APIKEY || undefined); } }, @@ -94,30 +94,30 @@ const ProviderCreators: Array = [ } }, */ -/* - { - name: "PocketProvider", - networks: ethNetworks, - create: function(network: string) { - return new PocketProvider(network); - } - }, -*/ -/* - { - name: "QuickNodeProvider", - networks: ethNetworks, - create: function(network: string) { - return new QuickNodeProvider(network); - } - }, -*/ + /* + { + name: "PocketProvider", + networks: ethNetworks, + create: function(network: string) { + return new PocketProvider(network); + } + }, + */ + /* + { + name: "QuickNodeProvider", + networks: ethNetworks, + create: function(network: string) { + return new QuickNodeProvider(network); + } + }, + */ { name: "FallbackProvider", networks: ethNetworks, - create: function(network: string) { + create: function (network: string) { const providers: Array = []; - for (const providerName of [ "AlchemyProvider", "AnkrProvider", "EtherscanProvider", "InfuraProvider" ]) { + for (const providerName of ["AlchemyProvider", "AnkrProvider", "EtherscanProvider", "InfuraProvider"]) { const provider = getProvider(providerName, network); if (provider) { providers.push(provider); } } @@ -128,9 +128,9 @@ const ProviderCreators: Array = [ ]; let setup = false; -const cleanup: Array<() => void> = [ ]; +const cleanup: Array<() => void> = []; export function setupProviders(): void { - after(function() { + after(function () { for (const func of cleanup) { func(); } }); setup = true; @@ -147,7 +147,7 @@ function getCreator(provider: string): null | ProviderCreator { export function getProviderNetworks(provider: string): Array { const creator = getCreator(provider); if (creator) { return creator.networks; } - return [ ]; + return []; } export function getProvider(provider: string, network: string): null | AbstractProvider { @@ -199,6 +199,6 @@ export function getDevProvider(): JsonRpcProvider { export function connect(network: string): AbstractProvider { const provider = getProvider("InfuraProvider", network); - if (provider == null) { throw new Error(`could not connect to ${ network }`); } + if (provider == null) { throw new Error(`could not connect to ${network}`); } return provider; } diff --git a/src.ts/_tests/test-provider-alchemy.ts b/src.ts/_tests/test-provider-alchemy.ts new file mode 100644 index 0000000000..1d5b08addd --- /dev/null +++ b/src.ts/_tests/test-provider-alchemy.ts @@ -0,0 +1,23 @@ +import assert from "assert"; +import { setupProviders, getProvider } from "./create-provider.js"; +import { AlchemyProvider } from "../index.js"; // import if needed + +setupProviders(); + +describe("AlchemyProvider BNB support", function () { + it("should create BNB mainnet provider", async function () { + const provider = getProvider("AlchemyProvider", "bnb"); + // console.log(provider); + assert.ok(provider instanceof AlchemyProvider, "provider is AlchemyProvider"); + const chainId = await provider.send("eth_chainId", []); + assert.equal(parseInt(chainId), 56); // BNB mainnet + }); + + it("should create BNB testnet provider", async function () { + const provider = getProvider("AlchemyProvider", "bnbt"); + // console.log(provider); + assert.ok(provider instanceof AlchemyProvider, "provider is AlchemyProvider"); + const chainId = await provider.send("eth_chainId", []); + assert.equal(parseInt(chainId), 97); // BNB testnet + }); +}); diff --git a/src.ts/providers/provider-alchemy.ts b/src.ts/providers/provider-alchemy.ts index aa9d269259..4392d786dd 100644 --- a/src.ts/providers/provider-alchemy.ts +++ b/src.ts/providers/provider-alchemy.ts @@ -19,7 +19,8 @@ * - Polygon (``matic``) * - Polygon Amoy Testnet (``matic-amoy``) * - Polygon Mumbai Testnet (``matic-mumbai``) - * + * - BNB Smart Chain (``bnb``) + * - BNB Smart Chain Testnet (``bnbt``) * @_subsection: api/providers/thirdparty:Alchemy [providers-alchemy] */ @@ -40,7 +41,7 @@ import type { Networkish } from "./network.js"; const defaultApiKey = "_gg7wSSi0KMBsdKnGVfHDueq6xMB9EkC" function getHost(name: string): string { - switch(name) { + switch (name) { case "mainnet": return "eth-mainnet.alchemyapi.io"; case "goerli": @@ -72,6 +73,11 @@ function getHost(name: string): string { return "opt-goerli.g.alchemy.com"; case "optimism-sepolia": return "opt-sepolia.g.alchemy.com"; + case "bnb": + return "bnb-mainnet.g.alchemy.com"; + case "bnbt": + return "bnb-testnet.g.alchemy.com"; + } assertArgument(false, "unsupported network", "network", name); @@ -114,7 +120,7 @@ export class AlchemyProvider extends JsonRpcProvider implements CommunityResourc // https://docs.alchemy.com/reference/trace-transaction if (req.method === "getTransactionResult") { const { trace, tx } = await resolveProperties({ - trace: this.send("trace_transaction", [ req.hash ]), + trace: this.send("trace_transaction", [req.hash]), tx: this.getTransaction(req.hash) }); if (trace == null || tx == null) { return null; } @@ -151,7 +157,7 @@ export class AlchemyProvider extends JsonRpcProvider implements CommunityResourc static getRequest(network: Network, apiKey?: string): FetchRequest { if (apiKey == null) { apiKey = defaultApiKey; } - const request = new FetchRequest(`https:/\/${ getHost(network.name) }/v2/${ apiKey }`); + const request = new FetchRequest(`https:/\/${getHost(network.name)}/v2/${apiKey}`); request.allowGzip = true; if (apiKey === defaultApiKey) {