@opendatalabs/vana-sdk
Version:
A TypeScript library for interacting with Vana Network smart contracts.
47 lines • 1.16 kB
JavaScript
import {
createPublicClient,
http,
createWalletClient as viemCreateWalletClient
} from "viem";
import { chains, mokshaTestnet } from "../config/chains.js";
const defaultFromBlocks = {
14800: 732312n,
// Moksha Testnet - earliest contract deployment
1480: 758584n
// Vana Mainnet - earliest contract deployment
};
function getDefaultFromBlock(chainId) {
return defaultFromBlocks[chainId] || 0n;
}
let cachedClient;
const createClient = (chainId = mokshaTestnet.id) => {
if (!cachedClient || cachedClient.chain?.id !== chainId) {
const chain = chains[chainId];
if (!chain) {
throw new Error(`Chain ${chainId} not found`);
}
cachedClient = createPublicClient({
chain,
transport: http()
});
}
return cachedClient;
};
const createWalletClient = (chainId = mokshaTestnet.id, account) => {
const chain = chains[chainId];
if (!chain) {
throw new Error(`Chain ${chainId} not found`);
}
return viemCreateWalletClient({
chain,
transport: http(),
account
});
};
export {
createClient,
createWalletClient,
defaultFromBlocks,
getDefaultFromBlock
};
//# sourceMappingURL=client.js.map