From 01f72217d5b816e7890f06b7386b6c31bb286fc7 Mon Sep 17 00:00:00 2001 From: Sebastian Pape Date: Tue, 2 May 2023 15:49:50 +0200 Subject: [PATCH] v14.2.0: mock multiple providers --- README.md | 13 ++++++++++ dist/esm/index.bundle.js | 51 +++++++++++++++++++++++++++++++--------- dist/esm/index.evm.js | 10 ++++---- dist/esm/index.js | 10 ++++---- dist/esm/index.solana.js | 10 ++++---- dist/umd/index.bundle.js | 51 +++++++++++++++++++++++++++++++--------- dist/umd/index.evm.js | 10 ++++---- dist/umd/index.js | 10 ++++---- dist/umd/index.solana.js | 10 ++++---- package.evm.json | 4 ++-- package.json | 10 ++++---- package.solana.json | 4 ++-- src/mock.js | 10 ++++---- yarn.lock | 28 +++++++++++----------- 14 files changed, 158 insertions(+), 73 deletions(-) diff --git a/README.md b/README.md index 604897ec..f9329704 100644 --- a/README.md +++ b/README.md @@ -1495,6 +1495,19 @@ mock({ // and allows to trigger walletlink events with "trigger" ``` +### Providers (mocking multiple providers) + +If you are working with multiple providers, you can pass `providers` instead of `provider` and have Web3Mock iterate of the list of providers internaly: + +```javascript +const providers = await getProviders('ethereum') + +mock({ + providers, + //... +}) +``` + ### Test Helpers #### normalize diff --git a/dist/esm/index.bundle.js b/dist/esm/index.bundle.js index 2cc5dfe0..a04319a8 100644 --- a/dist/esm/index.bundle.js +++ b/dist/esm/index.bundle.js @@ -22512,7 +22512,11 @@ var bsc = { if(token) { return `https://bscscan.com/token/${token}` } if(address) { return `https://bscscan.com/address/${address}` } }, - rpc: 'https://bsc-dataseed1.binance.org', + endpoints: [ // make sure provider supports batch size of 99 batch requests! + 'https://bsc-dataseed.binance.org', + 'https://bsc-dataseed1.ninicoin.io', + 'https://bsc-dataseed3.defibit.io' + ], tokens: [ // only major tokens {"address": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", "symbol": "BNB", "name": "Binance Coin", "decimals": 18, "logo": logo$5, "type": "NATIVE"}, {"address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", "symbol": "WBNB", "name": "Wrapped BNB", "decimals": 18, "logo": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c/logo.png", "type": "20"}, @@ -22556,7 +22560,11 @@ var ethereum = { if(token) { return `https://etherscan.io/token/${token}` } if(address) { return `https://etherscan.io/address/${address}` } }, - rpc: ['https://mainnet.infura.io/v3/9aa3d95b3bc4', '40fa88ea12eaa4456161'].join(''), + endpoints: [ // make sure provider supports batch size of 99 batch requests! + 'https://rpc.ankr.com/eth', + 'https://eth.llamarpc.com', + 'https://ethereum.publicnode.com' + ], tokens: [ // only major tokens {"address": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", "symbol": "ETH", "name": "Ether", "decimals": 18, "logo": logo$4, "type": "NATIVE"}, {"address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", "symbol": "WETH", "name": "Wrapped Ether", "decimals": 18, "logo": "https://raw.githubusercontent.com/Uniswap/assets/master/blockchains/ethereum/assets/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/logo.png", "type": "20"}, @@ -22601,7 +22609,11 @@ var fantom = { if(token) { return `https://ftmscan.com/token/${token}` } if(address) { return `https://ftmscan.com/address/${address}` } }, - rpc: 'https://endpoints.omniatech.io/v1/fantom/mainnet/public', + endpoints: [ // make sure provider supports batch size of 99 batch requests! + 'https://rpc.ftm.tools', + 'https://fantom.publicnode.com', + 'https://rpc2.fantom.network' + ], tokens: [ // only major tokens {"address": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", "symbol": "FTM", "name": "Fantom", "decimals": 18, "logo": logo$3, "type": "NATIVE"}, {"address": "0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83", "symbol": "WFTM", "name": "Wrapped Fantom", "decimals": 18, "logo": logo$3, "type": "20"}, @@ -22643,7 +22655,11 @@ var polygon = { if(token) { return `https://polygonscan.com/token/${token}` } if(address) { return `https://polygonscan.com/address/${address}` } }, - rpc: 'https://rpc-mainnet.matic.network', + endpoints: [ // make sure provider supports batch size of 99 batch requests! + 'https://polygon-rpc.com', + 'https://poly-rpc.gateway.pokt.network', + 'https://polygon.llamarpc.com' + ], tokens: [ // only major tokens {"address": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", "symbol": "MATIC", "name": "Polygon", "decimals": 18, "logo": logo$2, "type": "NATIVE"}, {"address": "0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270", "symbol": "WMATIC", "name": "Wrapped Matic", "decimals": 18, "logo": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0/logo.png", "type": "20"}, @@ -22685,12 +22701,19 @@ var solana = { if(token) { return `https://solscan.io/token/${token}` } if(address) { return `https://solscan.io/address/${address}` } }, + endpoints: [ + 'https://solana-mainnet.phantom.app/YBPpkkN4g91xDiAnTE9r0RcMkjg0sKUIWvAfoFVJ', + 'https://mainnet-beta.solflare.network', + 'https://solana-mainnet.rpc.extrnode.com' + ], rpc: 'https://api.mainnet-beta.solana.com', tokens: [ // only major tokens {"address": "11111111111111111111111111111111", "symbol": "SOL", "name": "Solana", "decimals": 9, "logo": logo$1, "type": "NATIVE"}, - {"address": "So11111111111111111111111111111111111111112", "symbol": "WSOL", "name": "Wrapped SOL", "decimals": 9, "logo": "https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png", "type": "SPL"}, {"address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", "symbol": "USDC", "name": "USD Coin", "decimals": 6, "logo": "https://img.raydium.io/icon/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v.png", "type": "SPL"}, - {"address": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", "symbol": "USDT", "name": "USDT", "decimals": 6, "logo": "https://img.raydium.io/icon/Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB.png", "type": "SPL"} + {"address": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", "symbol": "USDT", "name": "USDT", "decimals": 6, "logo": "https://img.raydium.io/icon/Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB.png", "type": "SPL"}, + {"address": "7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj", "symbol": "stSOL", "name": "Lido Staked SOL", "decimals": 9, "logo": "https://img.raydium.io/icon/7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj.png", "type": "SPL"}, + {"address": "9n4nbM75f5Ui33ZbPYXn59EwSgE8CGsHtAeTH5YFeJ9E", "symbol": "wBTC", "name": "Wrapped Bitcoin (Sollet)", "decimals": 6, "logo": "https://img.raydium.io/icon/9n4nbM75f5Ui33ZbPYXn59EwSgE8CGsHtAeTH5YFeJ9E.png", "type": "SPL"}, + {"address": "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263", "symbol": "BONK", "name": "BONK", "decimals": 5, "logo": "https://img.raydium.io/icon/DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263.png", "type": "SPL"}, ], zero: '0', maxInt: '340282366920938463463374607431768211455', @@ -22724,7 +22747,11 @@ var velas = { if(token) { return `https://evmexplorer.velas.com/token/${token}` } if(address) { return `https://evmexplorer.velas.com/address/${address}` } }, - rpc: 'https://evmexplorer.velas.com/rpc', + endpoints: [ // make sure provider supports batch size of 99 batch requests! + 'https://mainnet.velas.com/rpc', + 'https://evmexplorer.velas.com/rpc', + 'https://explorer.velas.com/rpc' + ], tokens: [ // only major tokens {"address": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", "symbol": "VLX", "name": "Velas", "decimals": 18, "logo": logo, "type": "NATIVE"}, {"address": "0xc579D1f3CF86749E05CD06f7ADe17856c2CE3126", "symbol": "WVLX", "name": "Wrapped Velas", "decimals": 18, "logo": "https://github.com/wagyuswapapp/assets/blob/master/blockchains/velas/assets/0xc579d1f3cf86749e05cd06f7ade17856c2ce3126/logo.png?raw=true", "type": "20"}, @@ -64956,19 +64983,21 @@ let mock = (configuration, call) => { let window = getWindow(configuration); let blockchain = getBlockchain(configuration); - let provider = configuration.provider; let mock; if (configuration.transaction) { configuration.transaction._id = getRandomTransactionHash(blockchain); } - mock = mockBlockchain({ blockchain, configuration, window, provider }); + (configuration.providers || [configuration.provider]).forEach((provider)=>{ + if(provider) { provider._blockchain = blockchain; } + mock = mockBlockchain({ blockchain, configuration, window, provider }); + mocks.unshift(mock); + }); + mockWallet({ blockchain, configuration, window }); - mocks.unshift(mock); if (configuration.require) { requireMock(configuration.require); } - if (provider) { provider._blockchain = blockchain; } return spy(mock) }; diff --git a/dist/esm/index.evm.js b/dist/esm/index.evm.js index 1b29dc76..6d68c068 100644 --- a/dist/esm/index.evm.js +++ b/dist/esm/index.evm.js @@ -1479,19 +1479,21 @@ let mock = (configuration, call) => { let window = getWindow(configuration); let blockchain = getBlockchain(configuration); - let provider = configuration.provider; let mock; if (configuration.transaction) { configuration.transaction._id = getRandomTransactionHash(blockchain); } - mock = mockBlockchain({ blockchain, configuration, window, provider }); + (configuration.providers || [configuration.provider]).forEach((provider)=>{ + if(provider) { provider._blockchain = blockchain; } + mock = mockBlockchain({ blockchain, configuration, window, provider }); + mocks.unshift(mock); + }); + mockWallet({ blockchain, configuration, window }); - mocks.unshift(mock); if (configuration.require) { requireMock(configuration.require); } - if (provider) { provider._blockchain = blockchain; } return spy(mock) }; diff --git a/dist/esm/index.js b/dist/esm/index.js index 72b452ac..429c5e71 100644 --- a/dist/esm/index.js +++ b/dist/esm/index.js @@ -2157,19 +2157,21 @@ let mock = (configuration, call) => { let window = getWindow(configuration); let blockchain = getBlockchain(configuration); - let provider = configuration.provider; let mock; if (configuration.transaction) { configuration.transaction._id = getRandomTransactionHash(blockchain); } - mock = mockBlockchain({ blockchain, configuration, window, provider }); + (configuration.providers || [configuration.provider]).forEach((provider)=>{ + if(provider) { provider._blockchain = blockchain; } + mock = mockBlockchain({ blockchain, configuration, window, provider }); + mocks.unshift(mock); + }); + mockWallet({ blockchain, configuration, window }); - mocks.unshift(mock); if (configuration.require) { requireMock(configuration.require); } - if (provider) { provider._blockchain = blockchain; } return spy(mock) }; diff --git a/dist/esm/index.solana.js b/dist/esm/index.solana.js index 9bb56141..591c0239 100644 --- a/dist/esm/index.solana.js +++ b/dist/esm/index.solana.js @@ -1196,19 +1196,21 @@ let mock = (configuration, call) => { let window = getWindow(configuration); let blockchain = getBlockchain(configuration); - let provider = configuration.provider; let mock; if (configuration.transaction) { configuration.transaction._id = getRandomTransactionHash(blockchain); } - mock = mockBlockchain({ blockchain, configuration, window, provider }); + (configuration.providers || [configuration.provider]).forEach((provider)=>{ + if(provider) { provider._blockchain = blockchain; } + mock = mockBlockchain({ blockchain, configuration, window, provider }); + mocks.unshift(mock); + }); + mockWallet({ blockchain, configuration, window }); - mocks.unshift(mock); if (configuration.require) { requireMock(configuration.require); } - if (provider) { provider._blockchain = blockchain; } return spy(mock) }; diff --git a/dist/umd/index.bundle.js b/dist/umd/index.bundle.js index add15d81..16a5e2f0 100644 --- a/dist/umd/index.bundle.js +++ b/dist/umd/index.bundle.js @@ -22520,7 +22520,11 @@ if(token) { return `https://bscscan.com/token/${token}` } if(address) { return `https://bscscan.com/address/${address}` } }, - rpc: 'https://bsc-dataseed1.binance.org', + endpoints: [ // make sure provider supports batch size of 99 batch requests! + 'https://bsc-dataseed.binance.org', + 'https://bsc-dataseed1.ninicoin.io', + 'https://bsc-dataseed3.defibit.io' + ], tokens: [ // only major tokens {"address": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", "symbol": "BNB", "name": "Binance Coin", "decimals": 18, "logo": logo$5, "type": "NATIVE"}, {"address": "0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c", "symbol": "WBNB", "name": "Wrapped BNB", "decimals": 18, "logo": "https://assets.trustwalletapp.com/blockchains/smartchain/assets/0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c/logo.png", "type": "20"}, @@ -22564,7 +22568,11 @@ if(token) { return `https://etherscan.io/token/${token}` } if(address) { return `https://etherscan.io/address/${address}` } }, - rpc: ['https://mainnet.infura.io/v3/9aa3d95b3bc4', '40fa88ea12eaa4456161'].join(''), + endpoints: [ // make sure provider supports batch size of 99 batch requests! + 'https://rpc.ankr.com/eth', + 'https://eth.llamarpc.com', + 'https://ethereum.publicnode.com' + ], tokens: [ // only major tokens {"address": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", "symbol": "ETH", "name": "Ether", "decimals": 18, "logo": logo$4, "type": "NATIVE"}, {"address": "0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2", "symbol": "WETH", "name": "Wrapped Ether", "decimals": 18, "logo": "https://raw.githubusercontent.com/Uniswap/assets/master/blockchains/ethereum/assets/0xC02aaA39b223FE8D0A0e5C4F27eAD9083C756Cc2/logo.png", "type": "20"}, @@ -22609,7 +22617,11 @@ if(token) { return `https://ftmscan.com/token/${token}` } if(address) { return `https://ftmscan.com/address/${address}` } }, - rpc: 'https://endpoints.omniatech.io/v1/fantom/mainnet/public', + endpoints: [ // make sure provider supports batch size of 99 batch requests! + 'https://rpc.ftm.tools', + 'https://fantom.publicnode.com', + 'https://rpc2.fantom.network' + ], tokens: [ // only major tokens {"address": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", "symbol": "FTM", "name": "Fantom", "decimals": 18, "logo": logo$3, "type": "NATIVE"}, {"address": "0x21be370D5312f44cB42ce377BC9b8a0cEF1A4C83", "symbol": "WFTM", "name": "Wrapped Fantom", "decimals": 18, "logo": logo$3, "type": "20"}, @@ -22651,7 +22663,11 @@ if(token) { return `https://polygonscan.com/token/${token}` } if(address) { return `https://polygonscan.com/address/${address}` } }, - rpc: 'https://rpc-mainnet.matic.network', + endpoints: [ // make sure provider supports batch size of 99 batch requests! + 'https://polygon-rpc.com', + 'https://poly-rpc.gateway.pokt.network', + 'https://polygon.llamarpc.com' + ], tokens: [ // only major tokens {"address": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", "symbol": "MATIC", "name": "Polygon", "decimals": 18, "logo": logo$2, "type": "NATIVE"}, {"address": "0x0d500B1d8E8eF31E21C99d1Db9A6444d3ADf1270", "symbol": "WMATIC", "name": "Wrapped Matic", "decimals": 18, "logo": "https://raw.githubusercontent.com/trustwallet/assets/master/blockchains/ethereum/assets/0x7D1AfA7B718fb893dB30A3aBc0Cfc608AaCfeBB0/logo.png", "type": "20"}, @@ -22693,12 +22709,19 @@ if(token) { return `https://solscan.io/token/${token}` } if(address) { return `https://solscan.io/address/${address}` } }, + endpoints: [ + 'https://solana-mainnet.phantom.app/YBPpkkN4g91xDiAnTE9r0RcMkjg0sKUIWvAfoFVJ', + 'https://mainnet-beta.solflare.network', + 'https://solana-mainnet.rpc.extrnode.com' + ], rpc: 'https://api.mainnet-beta.solana.com', tokens: [ // only major tokens {"address": "11111111111111111111111111111111", "symbol": "SOL", "name": "Solana", "decimals": 9, "logo": logo$1, "type": "NATIVE"}, - {"address": "So11111111111111111111111111111111111111112", "symbol": "WSOL", "name": "Wrapped SOL", "decimals": 9, "logo": "https://img.raydium.io/icon/So11111111111111111111111111111111111111112.png", "type": "SPL"}, {"address": "EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v", "symbol": "USDC", "name": "USD Coin", "decimals": 6, "logo": "https://img.raydium.io/icon/EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v.png", "type": "SPL"}, - {"address": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", "symbol": "USDT", "name": "USDT", "decimals": 6, "logo": "https://img.raydium.io/icon/Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB.png", "type": "SPL"} + {"address": "Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB", "symbol": "USDT", "name": "USDT", "decimals": 6, "logo": "https://img.raydium.io/icon/Es9vMFrzaCERmJfrF4H2FYD4KCoNkY11McCe8BenwNYB.png", "type": "SPL"}, + {"address": "7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj", "symbol": "stSOL", "name": "Lido Staked SOL", "decimals": 9, "logo": "https://img.raydium.io/icon/7dHbWXmci3dT8UFYWYZweBLXgycu7Y3iL6trKn1Y7ARj.png", "type": "SPL"}, + {"address": "9n4nbM75f5Ui33ZbPYXn59EwSgE8CGsHtAeTH5YFeJ9E", "symbol": "wBTC", "name": "Wrapped Bitcoin (Sollet)", "decimals": 6, "logo": "https://img.raydium.io/icon/9n4nbM75f5Ui33ZbPYXn59EwSgE8CGsHtAeTH5YFeJ9E.png", "type": "SPL"}, + {"address": "DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263", "symbol": "BONK", "name": "BONK", "decimals": 5, "logo": "https://img.raydium.io/icon/DezXAZ8z7PnrnRJjz3wXBoRgixCa6xjnB7YaB1pPB263.png", "type": "SPL"}, ], zero: '0', maxInt: '340282366920938463463374607431768211455', @@ -22732,7 +22755,11 @@ if(token) { return `https://evmexplorer.velas.com/token/${token}` } if(address) { return `https://evmexplorer.velas.com/address/${address}` } }, - rpc: 'https://evmexplorer.velas.com/rpc', + endpoints: [ // make sure provider supports batch size of 99 batch requests! + 'https://mainnet.velas.com/rpc', + 'https://evmexplorer.velas.com/rpc', + 'https://explorer.velas.com/rpc' + ], tokens: [ // only major tokens {"address": "0xEeeeeEeeeEeEeeEeEeEeeEEEeeeeEeeeeeeeEEeE", "symbol": "VLX", "name": "Velas", "decimals": 18, "logo": logo, "type": "NATIVE"}, {"address": "0xc579D1f3CF86749E05CD06f7ADe17856c2CE3126", "symbol": "WVLX", "name": "Wrapped Velas", "decimals": 18, "logo": "https://github.com/wagyuswapapp/assets/blob/master/blockchains/velas/assets/0xc579d1f3cf86749e05cd06f7ade17856c2ce3126/logo.png?raw=true", "type": "20"}, @@ -64964,19 +64991,21 @@ let window = getWindow(configuration); let blockchain = getBlockchain(configuration); - let provider = configuration.provider; let mock; if (configuration.transaction) { configuration.transaction._id = getRandomTransactionHash(blockchain); } - mock = mockBlockchain({ blockchain, configuration, window, provider }); + (configuration.providers || [configuration.provider]).forEach((provider)=>{ + if(provider) { provider._blockchain = blockchain; } + mock = mockBlockchain({ blockchain, configuration, window, provider }); + mocks.unshift(mock); + }); + mockWallet({ blockchain, configuration, window }); - mocks.unshift(mock); if (configuration.require) { requireMock(configuration.require); } - if (provider) { provider._blockchain = blockchain; } return spy(mock) }; diff --git a/dist/umd/index.evm.js b/dist/umd/index.evm.js index 73e565ed..63fac224 100644 --- a/dist/umd/index.evm.js +++ b/dist/umd/index.evm.js @@ -1486,19 +1486,21 @@ let window = getWindow(configuration); let blockchain = getBlockchain(configuration); - let provider = configuration.provider; let mock; if (configuration.transaction) { configuration.transaction._id = getRandomTransactionHash(blockchain); } - mock = mockBlockchain({ blockchain, configuration, window, provider }); + (configuration.providers || [configuration.provider]).forEach((provider)=>{ + if(provider) { provider._blockchain = blockchain; } + mock = mockBlockchain({ blockchain, configuration, window, provider }); + mocks.unshift(mock); + }); + mockWallet({ blockchain, configuration, window }); - mocks.unshift(mock); if (configuration.require) { requireMock(configuration.require); } - if (provider) { provider._blockchain = blockchain; } return spy(mock) }; diff --git a/dist/umd/index.js b/dist/umd/index.js index 9189a02d..2e2ecb6c 100644 --- a/dist/umd/index.js +++ b/dist/umd/index.js @@ -2163,19 +2163,21 @@ let window = getWindow(configuration); let blockchain = getBlockchain(configuration); - let provider = configuration.provider; let mock; if (configuration.transaction) { configuration.transaction._id = getRandomTransactionHash(blockchain); } - mock = mockBlockchain({ blockchain, configuration, window, provider }); + (configuration.providers || [configuration.provider]).forEach((provider)=>{ + if(provider) { provider._blockchain = blockchain; } + mock = mockBlockchain({ blockchain, configuration, window, provider }); + mocks.unshift(mock); + }); + mockWallet({ blockchain, configuration, window }); - mocks.unshift(mock); if (configuration.require) { requireMock(configuration.require); } - if (provider) { provider._blockchain = blockchain; } return spy(mock) }; diff --git a/dist/umd/index.solana.js b/dist/umd/index.solana.js index 01a3e043..34649dd3 100644 --- a/dist/umd/index.solana.js +++ b/dist/umd/index.solana.js @@ -1202,19 +1202,21 @@ let window = getWindow(configuration); let blockchain = getBlockchain(configuration); - let provider = configuration.provider; let mock; if (configuration.transaction) { configuration.transaction._id = getRandomTransactionHash(blockchain); } - mock = mockBlockchain({ blockchain, configuration, window, provider }); + (configuration.providers || [configuration.provider]).forEach((provider)=>{ + if(provider) { provider._blockchain = blockchain; } + mock = mockBlockchain({ blockchain, configuration, window, provider }); + mocks.unshift(mock); + }); + mockWallet({ blockchain, configuration, window }); - mocks.unshift(mock); if (configuration.require) { requireMock(configuration.require); } - if (provider) { provider._blockchain = blockchain; } return spy(mock) }; diff --git a/package.evm.json b/package.evm.json index 080aa833..93dd8c95 100644 --- a/package.evm.json +++ b/package.evm.json @@ -1,7 +1,7 @@ { "name": "@depay/web3-mock-evm", "moduleName": "Web3Mock", - "version": "14.1.0", + "version": "14.2.0", "description": "JavaScript library to mock web3 responses either by emulating web3 wallets or web3 RPC requests.", "main": "./dist/umd/index.evm.js", "module": "./dist/esm/index.evm.js", @@ -25,7 +25,7 @@ "homepage": "https://depay.com", "private": false, "dependencies": { - "@depay/web3-blockchains": "^7.1.0", + "@depay/web3-blockchains": "^8.0.1", "ethers": "^5.7.1" }, "peerDependencies": { diff --git a/package.json b/package.json index 35f65603..16674862 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@depay/web3-mock", "moduleName": "Web3Mock", - "version": "14.1.0", + "version": "14.2.0", "description": "JavaScript library to mock web3 responses either by emulating web3 wallets or web3 RPC requests.", "main": "./dist/umd/index.js", "module": "./dist/esm/index.js", @@ -36,7 +36,7 @@ "private": false, "dependencies": { "@depay/solana-web3.js": "^1.21.2", - "@depay/web3-blockchains": "^7.1.0", + "@depay/web3-blockchains": "^8.0.1", "ethers": "^5.7.1" }, "engines": { @@ -48,9 +48,9 @@ "@babel/preset-env": "^7.12.7", "@babel/runtime": "^7.18.6", "@depay/solana-web3.js": "^1.21.2", - "@depay/web3-blockchains": "^7.1.0", - "@depay/web3-tokens": "^9.17.0", - "@depay/web3-client": "^10.7.0", + "@depay/web3-blockchains": "^8.0.1", + "@depay/web3-tokens": "^9.18.0", + "@depay/web3-client": "^10.11.0", "@playwright/test": "^1.24.0", "@rollup/plugin-commonjs": "^18.0.0", "@rollup/plugin-json": "^4.1.0", diff --git a/package.solana.json b/package.solana.json index 42116a95..60c92a9f 100644 --- a/package.solana.json +++ b/package.solana.json @@ -1,7 +1,7 @@ { "name": "@depay/web3-mock-solana", "moduleName": "Web3Mock", - "version": "14.1.0", + "version": "14.2.0", "description": "JavaScript library to mock web3 responses either by emulating web3 wallets or web3 RPC requests.", "main": "./dist/umd/index.solana.js", "module": "./dist/esm/index.solana.js", @@ -26,7 +26,7 @@ "private": false, "dependencies": { "@depay/solana-web3.js": "^1.21.2", - "@depay/web3-blockchains": "^7.1.0", + "@depay/web3-blockchains": "^8.0.1", "ethers": "^5.7.1" }, "peerDependencies": { diff --git a/src/mock.js b/src/mock.js index 61e45ef3..72f2430b 100644 --- a/src/mock.js +++ b/src/mock.js @@ -197,19 +197,21 @@ let mock = (configuration, call) => { let window = getWindow(configuration) let blockchain = getBlockchain(configuration) - let provider = configuration.provider let mock if (configuration.transaction) { configuration.transaction._id = getRandomTransactionHash(blockchain) } - mock = mockBlockchain({ blockchain, configuration, window, provider }) + (configuration.providers || [configuration.provider]).forEach((provider)=>{ + if(provider) { provider._blockchain = blockchain } + mock = mockBlockchain({ blockchain, configuration, window, provider }) + mocks.unshift(mock) + }) + mockWallet({ blockchain, configuration, window }) - mocks.unshift(mock) if (configuration.require) { requireMock(configuration.require) } - if (provider) { provider._blockchain = blockchain } return spy(mock) } diff --git a/yarn.lock b/yarn.lock index a35f815c..7058f050 100644 --- a/yarn.lock +++ b/yarn.lock @@ -991,20 +991,20 @@ resolved "https://registry.yarnpkg.com/@depay/solana-web3.js/-/solana-web3.js-1.21.2.tgz#65b2b60b66ad8b42f717ee22bc753ca538f2f56e" integrity sha512-9UON+nXRrFnCYqg2vcGceP+4Ly+zzAJ88RthuvVhHtIfPeEqDyjj9S77iwZT/4/lmYDnUPoC9pl4otfmX7B+9w== -"@depay/web3-blockchains@^7.1.0": - version "7.1.0" - resolved "https://registry.yarnpkg.com/@depay/web3-blockchains/-/web3-blockchains-7.1.0.tgz#101c4d36e263f5d703e1604899b3b17fdd084bbb" - integrity sha512-/ZhT+c5Z58SCpo9aU7Z2mDGQxMc2Ia2BM8RKt/V337I9fYNp7zRdiYX8U+hnN4BvB9S0yu3l8vRgKwEAU1fhuA== - -"@depay/web3-client@^10.7.0": - version "10.7.1" - resolved "https://registry.yarnpkg.com/@depay/web3-client/-/web3-client-10.7.1.tgz#1b50f747e72b8d8cfaf5c67dcfcf72fb3c0e7e49" - integrity sha512-whDS23DH2GeDODOzG5EEpoQFXTQPInyBS9YEtL91U8QiZ6tfzMcXZ/K/EQt8HKH/H0ey96SqFSJS3/eySJVqWA== - -"@depay/web3-tokens@^9.17.0": - version "9.17.0" - resolved "https://registry.yarnpkg.com/@depay/web3-tokens/-/web3-tokens-9.17.0.tgz#d22cb1d1ee33c30239428271e5d5c498f3f92039" - integrity sha512-4pNODncPZu46sZvODb535ceY+wgAF8kA98glEk2q3eHgUagQ7igNkji1w1iRwkb8nq4/NuKn3WdW5OtCVXjMxw== +"@depay/web3-blockchains@^8.0.1": + version "8.0.1" + resolved "https://registry.yarnpkg.com/@depay/web3-blockchains/-/web3-blockchains-8.0.1.tgz#c61f2308c23ea577bbcea1091bd61e5a9a37b60a" + integrity sha512-Y63aVTDfsFgoptAoh2XFbPi08kVITEaDwiM/d8BDoMU3yWgCBJhGpIlyvL4rQcatZPqa8LYNrLVKeE2ETBviow== + +"@depay/web3-client@^10.11.0": + version "10.11.0" + resolved "https://registry.yarnpkg.com/@depay/web3-client/-/web3-client-10.11.0.tgz#94cf8f26f5d473b0ac5ed7e93d25ea32829eb145" + integrity sha512-VQ0XcA3xkxVg9JRqa0YscjPPteMhEbVl2qUma0c+E4cn9BOvgnZwvqFGq6UdtE5V6whaZhr2k61tfLEH2TBe4g== + +"@depay/web3-tokens@^9.18.0": + version "9.18.0" + resolved "https://registry.yarnpkg.com/@depay/web3-tokens/-/web3-tokens-9.18.0.tgz#225ce35090ba2058a499293bb0b73f6422d3b059" + integrity sha512-cKh6SbJqqJCvDtAouJ02N+QRQtUqUWosmF72YwHtM0F/f37ElMA637VTLZXVPXWi71rBOkrnWcWAuZITTReT2Q== "@eslint/eslintrc@^0.4.3": version "0.4.3"