Skip to content

Commit

Permalink
Lint fixes. Add two missing test cases from go.
Browse files Browse the repository at this point in the history
  • Loading branch information
clemire committed Sep 6, 2024
1 parent addd3cb commit 1ae4073
Show file tree
Hide file tree
Showing 3 changed files with 43 additions and 28 deletions.
3 changes: 0 additions & 3 deletions packages/sdk/src/spaceWithEntitlements.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -1169,9 +1169,6 @@ describe('spaceWithEntitlements', () => {
aliceProvider.wallet,
)

const balance = await TestEthBalance.getBaseBalance(alicesWallet.address as Address)
console.log("Alice's wallet balance after joining space", balance)

const doneStart = Date.now()
// kill the clients
await bob.stopSync()
Expand Down
57 changes: 39 additions & 18 deletions packages/web3/src/entitlement.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -172,11 +172,6 @@ const nftMultiCheckHighThresholdBaseSepolia: CheckOperationV2 = {
params: encodeThresholdParams({ threshold: 100n }),
} as const

const ethSepoliaProvider = new ethers.providers.JsonRpcProvider(
'https://ethereum-sepolia-rpc.publicnode.com',
)
const baseSepoliaProvider = new ethers.providers.JsonRpcProvider('https://sepolia.base.org')

const xchainConfig: XchainConfig = {
supportedRpcUrls: new Map<number, string>([
[Number(ethereumSepoliaChainId), 'https://ethereum-sepolia-rpc.publicnode.com'],
Expand All @@ -185,6 +180,14 @@ const xchainConfig: XchainConfig = {
etherBasedChains: [Number(ethereumSepoliaChainId), Number(baseSepoliaChainId)],
}

const minimalEtherChainsConfig: XchainConfig = {
supportedRpcUrls: new Map<number, string>([
[Number(ethereumSepoliaChainId), 'https://ethereum-sepolia-rpc.publicnode.com'],
[Number(baseSepoliaChainId), 'https://sepolia.base.org'],
]),
etherBasedChains: [Number(ethereumSepoliaChainId)],
}

const nftCases = [
{
desc: 'base sepolia',
Expand Down Expand Up @@ -290,8 +293,6 @@ const baseSepoliaChainLinkWallet_25Link2: Address = '0x4BCfC6962Ab0297aF801da212
const baseSepoliaChainLinkWallet_25Link: Address = '0xa4D440AeA5F555feEB5AEa0ddcED6e1B9FaD6A9C'
const testEmptyAccount: Address = '0xb227905F186095083869928BAb49cA9CE9546817'

// This wallet has no eth in it on any chains
const emptyEthWallet = '0xb227905F186095083869928BAb49cA9CE9546817'
// This wallet has .4ETH on Sepolia, and .1ETH on Base Sepolia
const ethWallet_0_5Eth = '0x3ef41b0469c1B808Caad9d643F596023e2aa8f11'
// This wallet has .1ETH on Sepolia, and .1ETH on Base Sepolia
Expand Down Expand Up @@ -416,21 +417,18 @@ const erc1155Cases = [
desc: 'base sepolia token id 0 (no wallets)',
check: erc1155CheckBaseSepolia_TokenId0_700Tokens,
wallets: [],
provider: baseSepoliaProvider,
expectedResult: false,
},
{
desc: 'base sepolia token id 0 (single wallet, insufficient balance)',
check: erc1155CheckBaseSepolia_TokenId0_700Tokens,
wallets: [baseSepoliaErc1155Wallet_TokenId0_300Tokens],
provider: baseSepoliaProvider,
expectedResult: false,
},
{
desc: 'base sepolia token id 0 (single wallet)',
check: erc1155CheckBaseSepolia_TokenId0_700Tokens,
wallets: [baseSepoliaErc1155Wallet_TokenId0_700Tokens],
provider: baseSepoliaProvider,
expectedResult: true,
},
{
Expand All @@ -440,7 +438,6 @@ const erc1155Cases = [
baseSepoliaErc1155Wallet_TokenId0_700Tokens,
baseSepoliaErc1155Wallet_TokenId0_300Tokens,
],
provider: baseSepoliaProvider,
expectedResult: false,
},
{
Expand All @@ -450,28 +447,24 @@ const erc1155Cases = [
baseSepoliaErc1155Wallet_TokenId0_700Tokens,
baseSepoliaErc1155Wallet_TokenId0_300Tokens,
],
provider: baseSepoliaProvider,
expectedResult: true,
},
{
desc: 'base sepolia token id 1 (no wallets)',
check: erc1155CheckBaseSepolia_TokenId1_100Tokens,
wallets: [],
provider: baseSepoliaProvider,
expectedResult: false,
},
{
desc: 'base sepolia token id 1 (single wallet, insufficient balance)',
check: erc1155CheckBaseSepolia_TokenId1_100Tokens,
wallets: [baseSepoliaErc1155Wallet_TokenId1_50Tokens],
provider: baseSepoliaProvider,
expectedResult: false,
},
{
desc: 'base sepolia token id 1 (single wallet)',
check: erc1155CheckBaseSepolia_TokenId1_100Tokens,
wallets: [baseSepoliaErc1155Wallet_TokenId1_100Tokens],
provider: baseSepoliaProvider,
expectedResult: true,
},
{
Expand All @@ -481,7 +474,6 @@ const erc1155Cases = [
baseSepoliaErc1155Wallet_TokenId1_100Tokens,
baseSepoliaErc1155Wallet_TokenId1_50Tokens,
],
provider: baseSepoliaProvider,
expectedResult: false,
},
{
Expand All @@ -491,13 +483,12 @@ const erc1155Cases = [
baseSepoliaErc1155Wallet_TokenId1_100Tokens,
baseSepoliaErc1155Wallet_TokenId1_50Tokens,
],
provider: baseSepoliaProvider,
expectedResult: true,
},
]

test.each(erc1155Cases)('ERC1155 Check - $desc', async (props) => {
const { check, wallets, provider, expectedResult } = props
const { check, wallets, expectedResult } = props
const controller = new AbortController()
const result = await evaluateTree(controller, wallets, xchainConfig, check)
if (expectedResult) {
Expand Down Expand Up @@ -552,6 +543,36 @@ test.each(ethBalanceCases)('Eth Balance Check - $desc', async (props) => {
}
})

const ethBalanceCasesMinimalEtherChains = [
{
desc: 'positive result',
check: ethBalance_0_4,
wallets: [ethWallet_0_5Eth],
expectedResult: true,
},
{
desc: 'negative result',
check: ethBalance_0_5,
wallets: [ethWallet_0_5Eth],
expectedResult: false,
},
]

test.each(ethBalanceCasesMinimalEtherChains)(
'Eth Balance Check - Ether chains < xChain supported chains - $desc',
async (props) => {
const { check, wallets, expectedResult } = props
const controller = new AbortController()
const result = await evaluateTree(controller, wallets, minimalEtherChainsConfig, check)
if (expectedResult) {
expect(result as Address).toBeTruthy()
expect(result).not.toEqual(zeroAddress)
} else {
expect(result).toEqual(zeroAddress)
}
},
)

const erc20Cases = [
{
desc: 'base sepolia (empty wallet, false)',
Expand Down
11 changes: 4 additions & 7 deletions packages/web3/src/entitlement.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,7 @@ import {
Hex,
} from 'viem'

import { ethers, providers } from 'ethers'
import { ethers } from 'ethers'
import { Address } from './ContractTypes'
import { MOCK_ADDRESS } from './Utils'

Expand Down Expand Up @@ -608,10 +608,7 @@ async function evaluateCheckOperation(
return evaluateCustomEntitledOperation(operation, controller, provider, linkedWallets)
}
case CheckOperationType.ETH_BALANCE: {
const etherChainProviders = await findEtherChainProviders(
xchainConfig,
operation.chainId,
)
const etherChainProviders = await findEtherChainProviders(xchainConfig)

if (!etherChainProviders.length) {
controller.abort()
Expand Down Expand Up @@ -993,7 +990,7 @@ async function getEthBalance(
wallet: string,
): Promise<{ wallet: string; balance: ethers.BigNumber }> {
try {
const balance = (await provider.getBalance(wallet)) as ethers.BigNumber
const balance = await provider.getBalance(wallet)
return {
wallet,
balance,
Expand Down Expand Up @@ -1099,7 +1096,7 @@ async function findProviderFromChainId(xchainConfig: XchainConfig, chainId: bigi
return provider
}

async function findEtherChainProviders(xchainConfig: XchainConfig, chainId: bigint) {
async function findEtherChainProviders(xchainConfig: XchainConfig) {
const etherChainProviders = []
for (const chainId of xchainConfig.etherBasedChains) {
if (!xchainConfig.supportedRpcUrls.has(Number(chainId))) {
Expand Down

0 comments on commit 1ae4073

Please sign in to comment.