@ponziland/account
Version:
Account management library for Starknet with wallet modal and connection state
32 lines (31 loc) • 974 B
JavaScript
const DEFAULT_RPC_URL = "https://api.cartridge.gg/x/starknet/mainnet";
const DEFAULT_CHAIN_ID = "mainnet";
let _accountConfig = {
rpcUrl: DEFAULT_RPC_URL,
chainId: DEFAULT_CHAIN_ID,
};
export const accountConfig = new Proxy(_accountConfig, {
get(target, prop) {
return target[prop];
},
set() {
throw new Error('Use configureAccount() to update configuration');
}
});
export function configureAccount(config) {
if (config.rpcUrl !== undefined) {
_accountConfig.rpcUrl = config.rpcUrl;
}
if (config.chainId !== undefined) {
if (config.chainId !== 'mainnet' && config.chainId !== 'sepolia') {
throw new Error('chainId must be either "mainnet" or "sepolia"');
}
_accountConfig.chainId = config.chainId;
}
if (config.policies !== undefined) {
_accountConfig.policies = config.policies;
}
}
export function getAccountConfig() {
return { ..._accountConfig };
}