UNPKG

@bsv/wallet-toolbox

Version:

BRC100 conforming wallet, wallet storage and wallet signer components

69 lines (64 loc) 2.2 kB
import { randomBytesHex, sdk } from '../index.client' import { ChaintracksServiceClient } from './chaintracker' export function createDefaultWalletServicesOptions( chain: sdk.Chain, arcCallbackUrl?: string, arcCallbackToken?: string, arcApiKey?: string ): sdk.WalletServicesOptions { const deploymentId = `wallet-toolbox-${randomBytesHex(16)}` const taalApiKey = arcApiKey || chain === 'main' ? 'mainnet_9596de07e92300c6287e4393594ae39c' // no plan : 'testnet_0e6cf72133b43ea2d7861da2a38684e3' // personal "starter" key const o: sdk.WalletServicesOptions = { chain, taalApiKey, bsvExchangeRate: { timestamp: new Date('2023-12-13'), base: 'USD', rate: 47.52 }, bsvUpdateMsecs: 1000 * 60 * 15, // 15 minutes fiatExchangeRates: { timestamp: new Date('2023-12-13'), base: 'USD', rates: { USD: 1, GBP: 0.8, EUR: 0.93 } }, fiatUpdateMsecs: 1000 * 60 * 60 * 24, // 24 hours disableMapiCallback: true, // Rely on WalletMonitor by default. exchangeratesapiKey: 'bd539d2ff492bcb5619d5f27726a766f', chaintracksFiatExchangeRatesUrl: `https://npm-registry.babbage.systems:${chain === 'main' ? 8084 : 8083}/getFiatExchangeRates`, chaintracks: new ChaintracksServiceClient( chain, `https://npm-registry.babbage.systems:${chain === 'main' ? 8084 : 8083}` ), arcUrl: arcDefaultUrl(chain), arcConfig: { apiKey: arcApiKey ?? undefined, deploymentId, callbackUrl: arcCallbackUrl ?? undefined, callbackToken: arcCallbackToken ?? undefined }, arcGorillaPoolUrl: arcGorillaPoolUrl(chain), arcGorillaPoolConfig: { apiKey: arcApiKey ?? undefined, deploymentId, callbackUrl: arcCallbackUrl ?? undefined, callbackToken: arcCallbackToken ?? undefined } } return o } export function arcDefaultUrl(chain: sdk.Chain): string { const url = chain === 'main' ? 'https://arc.taal.com' : 'https://arc-test.taal.com' return url } export function arcGorillaPoolUrl(chain: sdk.Chain): string | undefined { const url = chain === 'main' ? 'https://arc.gorillapool.io' : undefined return url }