Skip to content

Commit ae698af

Browse files
committed
mini fixes
1 parent a19f72f commit ae698af

13 files changed

Lines changed: 337 additions & 657 deletions

File tree

apps/app/components/WalletProviders/Wagmi.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ function WagmiComponent({ children }: Props) {
8787
}
8888

8989
cachedConfig = createConfig({
90-
connectors: [...defaultConnectors],
90+
connectors: typeof window === 'undefined' ? [] : [...defaultConnectors],
9191
chains: chains as [Chain, ...Chain[]],
9292
transports,
9393
ssr: true

apps/app/lib/balances/balanceResolver.ts

Lines changed: 3 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,8 @@ import {
99
EVMBalanceProvider,
1010
FuelBalanceProvider,
1111
SolanaBalanceProvider,
12-
StarknetBalanceProvider
13-
//BitcoinBalanceProvider,
14-
//LoopringBalanceProvider,
15-
//ParadexBalanceProvider,
16-
//QueryBalanceProvider,
17-
//TonBalanceProvider,
18-
//TronBalanceProvider,
19-
//ZkSyncBalanceProvider,
20-
//HyperliquidBalanceProvider
12+
StarknetBalanceProvider,
13+
TronBalanceProvider,
2114
} from "./providers";
2215

2316
function formatErrorBalances(errorBalances: TokenBalance[]) {
@@ -42,19 +35,12 @@ function formatErrorBalances(errorBalances: TokenBalance[]) {
4235
export class BalanceResolver {
4336

4437
private providers: BalanceProvider[] = [
45-
// new QueryBalanceProvider(),
4638
new AztecBalanceProvider(),
4739
new EVMBalanceProvider(),
4840
new FuelBalanceProvider(),
49-
// new LoopringBalanceProvider(),
5041
new SolanaBalanceProvider(),
5142
new StarknetBalanceProvider(),
52-
// new TonBalanceProvider(),
53-
// new ZkSyncBalanceProvider(),
54-
// new TronBalanceProvider(),
55-
// // new ParadexBalanceProvider(),
56-
// new BitcoinBalanceProvider(),
57-
// new HyperliquidBalanceProvider()
43+
new TronBalanceProvider(),
5844
];
5945

6046
async getBalance(network: ExtendedNetwork, address?: string, options?: { timeoutMs?: number, retryCount?: number }): Promise<NetworkBalance> {

apps/app/lib/balances/providers/index.tsx

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,5 @@ export { AztecBalanceProvider } from "./aztecBalanceProvider";
22
export { EVMBalanceProvider } from "./evmBalanceProvider";
33
export { FuelBalanceProvider } from "./fuelBalanceProvider";
44
export { SolanaBalanceProvider } from "./solanaBalanceProvider";
5-
export { StarknetBalanceProvider } from "./starknetBalanceProvider";
5+
export { StarknetBalanceProvider } from "./starknetBalanceProvider";
6+
export { TronBalanceProvider } from "./tronBalanceProvider";

apps/app/lib/balances/providers/tonBalanceProvider.ts

Lines changed: 0 additions & 125 deletions
This file was deleted.
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
import { TokenBalance } from "../../../Models/Balance";
2+
import { Network, Token } from "../../../Models/Network";
3+
import { formatUnits } from "viem";
4+
import KnownInternalNames from "../../knownIds";
5+
import { TronWeb } from 'tronweb'
6+
import { insertIfNotExists } from "../helpers";
7+
import { BalanceProvider } from "@/Models/BalanceProvider";
8+
import { getNetworkRpcUrl } from "@/lib/rpc/resolveNetworkRpcUrl";
9+
10+
export class TronBalanceProvider extends BalanceProvider {
11+
supportsNetwork: BalanceProvider['supportsNetwork'] = (network) => {
12+
return (KnownInternalNames.Networks.TronMainnet.includes(network.caip2Id) || KnownInternalNames.Networks.TronNile.includes(network.caip2Id))
13+
}
14+
15+
fetchBalance: BalanceProvider['fetchBalance'] = async (address, network) => {
16+
let balances: TokenBalance[] = []
17+
const nodeUrl = getNetworkRpcUrl(network)
18+
19+
const provider = new TronWeb({ fullNode: nodeUrl, solidityNode: nodeUrl, privateKey: '01', });
20+
21+
for (const token of network.tokens) {
22+
try {
23+
const balance = await resolveBalance({ network, address, token, provider })
24+
25+
balances.push(balance)
26+
27+
}
28+
catch (e) {
29+
balances.push(this.resolveTokenBalanceFetchError(e, token, network))
30+
}
31+
}
32+
33+
return balances
34+
}
35+
}
36+
37+
type GetBalanceProps = {
38+
network: Network,
39+
token: Token,
40+
address: string,
41+
provider: TronWeb
42+
}
43+
44+
export const resolveBalance = async ({ address, network, token, provider }: GetBalanceProps) => {
45+
46+
if (token.contract !== '0x0000000000000000000000000000000000000000') {
47+
const res = await getTRC20Balance({ network, token, address, provider })
48+
return res
49+
}
50+
else {
51+
const res = await getNativeAssetBalance({ network, token, address, provider })
52+
return res
53+
}
54+
}
55+
56+
const getNativeAssetBalance = async ({ network, token, address, provider }: GetBalanceProps) => {
57+
58+
const balance = await provider.trx.getBalance(address);
59+
60+
return ({
61+
network: network.caip2Id,
62+
token: token.symbol,
63+
amount: Number(formatUnits(BigInt(balance.toString()), Number(token?.decimals))),
64+
request_time: new Date().toJSON(),
65+
decimals: Number(token?.decimals),
66+
isNativeCurrency: true,
67+
})
68+
69+
}
70+
71+
const getTRC20Balance = async ({ network, token, address, provider }: GetBalanceProps) => {
72+
if (!token.contract) throw new Error("Token contract address is missing")
73+
74+
const tokenContractAddress = token.contract;
75+
const contract = await provider.contract().at(tokenContractAddress);
76+
77+
const balanceResponse = await contract.methods.balanceOf(address).call();
78+
79+
const balance = {
80+
network: network.caip2Id,
81+
token: token.symbol,
82+
amount: Number(formatUnits(BigInt(balanceResponse as any), token.decimals)),
83+
request_time: new Date().toJSON(),
84+
decimals: token.decimals,
85+
isNativeCurrency: false,
86+
}
87+
88+
return balance
89+
}

apps/app/lib/balances/providers/zkSyncBalanceProvider.ts

Lines changed: 0 additions & 82 deletions
This file was deleted.

apps/app/lib/knownIds.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ export default class KnownInternalNames {
1616

1717
public static readonly TronMainnet: string = "TRON_MAINNET"
1818

19-
public static readonly TronTestnet: string = "tron:3448148188"
19+
public static readonly TronNile: string = "tron:3448148188"
2020

2121
public static readonly CronosMainnet: string = "CRONOS_MAINNET";
2222

apps/app/lib/wallets/evm/connectors/walletConnect.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -259,6 +259,7 @@ export function walletConnect(parameters: Params) {
259259
return provider.accounts.map((x: string) => getAddress(x))
260260
},
261261
async getProvider({ chainId } = {}) {
262+
if (typeof window === 'undefined') return undefined as unknown as Provider
262263
async function initProvider() {
263264
const optionalChains = config.chains.map((x) => x.id) as [number]
264265
if (!optionalChains.length) return

apps/app/lib/wallets/tron/useTron.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ const id = 'tron'
1010

1111
const commonSupportedNetworks = [
1212
KnownInternalNames.Networks.TronMainnet,
13-
KnownInternalNames.Networks.TronTestnet
13+
KnownInternalNames.Networks.TronNile
1414
]
1515

1616
export default function useTron(): WalletProvider {

apps/app/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@
7878
"@walletconnect/types": "2.21.8",
7979
"@walletconnect/universal-provider": "2.21.8",
8080
"@walletconnect/utils": "2.21.8",
81-
"axios": "1.14.0",
81+
"axios": "1.16.0",
8282
"bn.js": "^5.2.0",
8383
"bs58": "^6.0.0",
8484
"class-variance-authority": "^0.7.1",

0 commit comments

Comments
 (0)