@stardust-collective/dag4-xchain-ethereum
Advanced tools
Comparing version 0.1.5 to 0.1.6
@@ -43,9 +43,9 @@ "use strict"; | ||
} | ||
getTokenInfo(address, chainId = 1) { | ||
getTokenInfo(tokenContractAddress, chainId = 1) { | ||
const infuraProvider = new ethers_1.ethers.providers.InfuraProvider(chainId, this.infuraProjectId); | ||
return token_contract_service_1.tokenContractService.getTokenInfo(infuraProvider, address); | ||
return token_contract_service_1.tokenContractService.getTokenInfo(infuraProvider, tokenContractAddress); | ||
} | ||
async getTokenBalance(ethAddress, tokenInfo, chainId = 1) { | ||
const infuraProvider = new ethers_1.ethers.providers.InfuraProvider(chainId, this.infuraProjectId); | ||
const tokenBalances = await token_contract_service_1.tokenContractService.getTokenBalance(infuraProvider, ethAddress, tokenInfo.address); | ||
const tokenBalances = await token_contract_service_1.tokenContractService.getTokenBalance(infuraProvider, ethAddress, tokenInfo.address, chainId); | ||
return ethers_1.FixedNumber.fromValue(ethers_1.BigNumber.from(tokenBalances[tokenInfo.address]), tokenInfo.decimals).toUnsafeFloat(); | ||
@@ -70,3 +70,3 @@ } | ||
const ethBalanceNum = ethers_1.FixedNumber.fromValue(ethers_1.BigNumber.from(ethBalance), 18).toUnsafeFloat(); | ||
const tokenBalances = await token_contract_service_1.tokenContractService.getAddressBalances(infuraProvider, address, tokens); | ||
const tokenBalances = await token_contract_service_1.tokenContractService.getAddressBalances(infuraProvider, address, tokens, chainId); | ||
const assetBalances = Object.keys(tokenBalances).map(address => { | ||
@@ -73,0 +73,0 @@ const assetInfo = map[address]; |
@@ -11,2 +11,7 @@ "use strict"; | ||
const TOKEN_BALANCE_CONTRACT = '0xb1f8e55c7f64d203c1400b9d8555d050f94adf39'; | ||
const NETWORK_TO_CONTRACT_MAP = { | ||
1: '0xb1f8e55c7f64d203c1400b9d8555d050f94adf39', | ||
3: '0x8D9708f3F514206486D7E988533f770a16d074a7', | ||
4: '0x3183B673f4816C94BeF53958BaF93C671B7F8Cf2' | ||
}; | ||
class TokenContractService { | ||
@@ -24,15 +29,15 @@ formatAddressBalances(values, addresses, tokens) { | ||
} | ||
async getAddressBalances(provider, ethAddress, tokenContractAddress) { | ||
const contract = new ethers_1.Contract(TOKEN_BALANCE_CONTRACT, BalanceChecker_abi_json_1.default, provider); | ||
async getAddressBalances(provider, ethAddress, tokenContractAddress, chainId = 1) { | ||
const contract = new ethers_1.Contract(NETWORK_TO_CONTRACT_MAP[chainId], BalanceChecker_abi_json_1.default, provider); | ||
const balances = await contract.balances([ethAddress], tokenContractAddress); | ||
return this.formatAddressBalances(balances, [ethAddress], tokenContractAddress)[ethAddress]; | ||
} | ||
async getTokenBalance(provider, ethAddress, tokenContractAddress) { | ||
const contract = new ethers_1.Contract(TOKEN_BALANCE_CONTRACT, BalanceChecker_abi_json_1.default, provider); | ||
async getTokenBalance(provider, ethAddress, tokenContractAddress, chainId = 1) { | ||
const contract = new ethers_1.Contract(NETWORK_TO_CONTRACT_MAP[chainId], BalanceChecker_abi_json_1.default, provider); | ||
const balances = await contract.balances([ethAddress], [tokenContractAddress]); | ||
return this.formatAddressBalances(balances, [ethAddress], [tokenContractAddress])[ethAddress]; | ||
} | ||
async getTokenInfo(provider, tokenAddress) { | ||
async getTokenInfo(provider, tokenContractAddress) { | ||
let name = '', decimals, symbol; | ||
const contract = new ethers_1.Contract(tokenAddress, Meta_abi_json_1.default, provider); | ||
const contract = new ethers_1.Contract(tokenContractAddress, Meta_abi_json_1.default, provider); | ||
try { | ||
@@ -47,3 +52,3 @@ decimals = await contract.decimals(); | ||
return { | ||
address: tokenAddress, | ||
address: tokenContractAddress, | ||
decimals, | ||
@@ -50,0 +55,0 @@ symbol, |
@@ -18,9 +18,9 @@ import { BigNumber, ethers, FixedNumber } from 'ethers'; | ||
} | ||
getTokenInfo(address, chainId = 1) { | ||
getTokenInfo(tokenContractAddress, chainId = 1) { | ||
const infuraProvider = new ethers.providers.InfuraProvider(chainId, this.infuraProjectId); | ||
return tokenContractService.getTokenInfo(infuraProvider, address); | ||
return tokenContractService.getTokenInfo(infuraProvider, tokenContractAddress); | ||
} | ||
async getTokenBalance(ethAddress, tokenInfo, chainId = 1) { | ||
const infuraProvider = new ethers.providers.InfuraProvider(chainId, this.infuraProjectId); | ||
const tokenBalances = await tokenContractService.getTokenBalance(infuraProvider, ethAddress, tokenInfo.address); | ||
const tokenBalances = await tokenContractService.getTokenBalance(infuraProvider, ethAddress, tokenInfo.address, chainId); | ||
return FixedNumber.fromValue(BigNumber.from(tokenBalances[tokenInfo.address]), tokenInfo.decimals).toUnsafeFloat(); | ||
@@ -45,3 +45,3 @@ } | ||
const ethBalanceNum = FixedNumber.fromValue(BigNumber.from(ethBalance), 18).toUnsafeFloat(); | ||
const tokenBalances = await tokenContractService.getAddressBalances(infuraProvider, address, tokens); | ||
const tokenBalances = await tokenContractService.getAddressBalances(infuraProvider, address, tokens, chainId); | ||
const assetBalances = Object.keys(tokenBalances).map(address => { | ||
@@ -48,0 +48,0 @@ const assetInfo = map[address]; |
@@ -5,2 +5,7 @@ import { Contract } from 'ethers'; | ||
const TOKEN_BALANCE_CONTRACT = '0xb1f8e55c7f64d203c1400b9d8555d050f94adf39'; | ||
const NETWORK_TO_CONTRACT_MAP = { | ||
1: '0xb1f8e55c7f64d203c1400b9d8555d050f94adf39', | ||
3: '0x8D9708f3F514206486D7E988533f770a16d074a7', | ||
4: '0x3183B673f4816C94BeF53958BaF93C671B7F8Cf2' | ||
}; | ||
export class TokenContractService { | ||
@@ -18,15 +23,15 @@ formatAddressBalances(values, addresses, tokens) { | ||
} | ||
async getAddressBalances(provider, ethAddress, tokenContractAddress) { | ||
const contract = new Contract(TOKEN_BALANCE_CONTRACT, BalanceCheckerABI, provider); | ||
async getAddressBalances(provider, ethAddress, tokenContractAddress, chainId = 1) { | ||
const contract = new Contract(NETWORK_TO_CONTRACT_MAP[chainId], BalanceCheckerABI, provider); | ||
const balances = await contract.balances([ethAddress], tokenContractAddress); | ||
return this.formatAddressBalances(balances, [ethAddress], tokenContractAddress)[ethAddress]; | ||
} | ||
async getTokenBalance(provider, ethAddress, tokenContractAddress) { | ||
const contract = new Contract(TOKEN_BALANCE_CONTRACT, BalanceCheckerABI, provider); | ||
async getTokenBalance(provider, ethAddress, tokenContractAddress, chainId = 1) { | ||
const contract = new Contract(NETWORK_TO_CONTRACT_MAP[chainId], BalanceCheckerABI, provider); | ||
const balances = await contract.balances([ethAddress], [tokenContractAddress]); | ||
return this.formatAddressBalances(balances, [ethAddress], [tokenContractAddress])[ethAddress]; | ||
} | ||
async getTokenInfo(provider, tokenAddress) { | ||
async getTokenInfo(provider, tokenContractAddress) { | ||
let name = '', decimals, symbol; | ||
const contract = new Contract(tokenAddress, MetaABI, provider); | ||
const contract = new Contract(tokenContractAddress, MetaABI, provider); | ||
try { | ||
@@ -41,3 +46,3 @@ decimals = await contract.decimals(); | ||
return { | ||
address: tokenAddress, | ||
address: tokenContractAddress, | ||
decimals, | ||
@@ -44,0 +49,0 @@ symbol, |
{ | ||
"name": "@stardust-collective/dag4-xchain-ethereum", | ||
"version": "0.1.5", | ||
"version": "0.1.6", | ||
"description": "Cross chain communication with Ethereum", | ||
@@ -5,0 +5,0 @@ "author": "Frank Fox", |
@@ -17,3 +17,3 @@ import { ExplorerUrl, InfuraCreds } from '@xchainjs/xchain-ethereum'; | ||
isValidEthereumAddress(address: string): boolean; | ||
getTokenInfo(address: string, chainId?: number): Promise<{ | ||
getTokenInfo(tokenContractAddress: string, chainId?: number): Promise<{ | ||
address: string; | ||
@@ -20,0 +20,0 @@ decimals: any; |
@@ -12,5 +12,5 @@ import { ethers } from 'ethers'; | ||
formatAddressBalances<T>(values: T[], addresses: string[], tokens: string[]): AddressBalanceMap; | ||
getAddressBalances(provider: Provider | Signer, ethAddress: string, tokenContractAddress: string[]): Promise<BalanceMap>; | ||
getTokenBalance(provider: Provider | Signer, ethAddress: string, tokenContractAddress: string): Promise<BalanceMap>; | ||
getTokenInfo(provider: Provider | Signer, tokenAddress: string): Promise<{ | ||
getAddressBalances(provider: Provider | Signer, ethAddress: string, tokenContractAddress: string[], chainId?: number): Promise<BalanceMap>; | ||
getTokenBalance(provider: Provider | Signer, ethAddress: string, tokenContractAddress: string, chainId?: number): Promise<BalanceMap>; | ||
getTokenInfo(provider: Provider | Signer, tokenContractAddress: string): Promise<{ | ||
address: string; | ||
@@ -17,0 +17,0 @@ decimals: any; |
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
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
63665
1347