@keyban/sdk-base
Version:
Keyban Javascript SDK provides core functionalities for the MPC wallet solution, supporting web and Node.js apps with TypeScript, custom storage, and Ethereum blockchain integration.
3 lines • 6.8 kB
JavaScript
import {b}from'./chunk-DWBGILVH.mjs';import {InMemoryCache}from'@apollo/client/cache';import {createHttpLink,split,ApolloClient,ApolloLink}from'@apollo/client/core';import {setContext}from'@apollo/client/link/context';import {GraphQLWsLink}from'@apollo/client/link/subscriptions';import {getMainDefinition,relayStylePagination}from'@apollo/client/utilities';import {createClient}from'graphql-ws';import {formatUnits}from'viem';var h=class{rpcClient;constructor(t){this.rpcClient=t;}async tppClaim(t){return this.rpcClient.call("tpp","claim",t,this.address)}async loyaltySetup(){return Promise.resolve()}};function C(i,t){let e=setContext(async(o,{headers:a})=>{let l=await t?.();return {headers:{...a,authorization:l?`Bearer ${l}`:""}}}),r=createHttpLink({uri:i.toString()}),n=new URL(i);n.protocol="wss";let s=new GraphQLWsLink(createClient({url:n.toString()})),m=split(({query:o})=>{let a=getMainDefinition(o);return a.kind==="OperationDefinition"&&a.operation==="subscription"},s,r);return new ApolloClient({connectToDevTools:true,cache:new InMemoryCache({typePolicies:{Query:{fields:{tokenBalances:relayStylePagination(["filter"]),nftBalances:relayStylePagination(["filter"]),assetTransfers:relayStylePagination(["filter"])}},Transaction:{fields:{date:{read(o){return o&&o+"Z"}}}}}}),link:ApolloLink.from([e,m])})}var y=class{apiUrl;appId;network;apolloClient;clientShareProvider;metadataConfig;constructor(t,e){this.apiUrl=new URL(t.apiUrl??"https://api.prod.keyban.io"),this.appId=t.appId,this.network=t.network,this.clientShareProvider=t.clientShareProvider,this.clientShareProvider instanceof p&&this.clientShareProvider.registerClient(this);let r={EthereumAnvil:"subql-ethereum-anvil.",PolygonAmoy:"subql-polygon-amoy.",StarknetDevnet:"subql-starknet-devnet.",StarknetSepolia:"subql-starknet-sepolia.",StarknetMainnet:"subql-starknet-mainnet.",StellarQuickstart:"subql-stellar-quickstart.",StellarTestnet:"subql-stellar-testnet.",StellarMainnet:"subql-stellar-mainnet."}[this.network];this.apolloClient=C(new URL(this.apiUrl.origin.replace("api.",r)));let n=new URL("/v1/metadata",this.apiUrl);n.searchParams.set("network",this.network),this.metadataConfig=e??fetch(n).then(s=>s.json());}get rpcClient(){return b.getInstance(this)}get nativeCurrency(){return {EthereumAnvil:{decimals:18,name:"Ether",symbol:"ETH"},PolygonAmoy:{name:"POL",symbol:"POL",decimals:18},StarknetDevnet:{name:"Starknet Token",symbol:"STRK",decimals:18},StarknetSepolia:{name:"StarkNet Token",symbol:"STRK",decimals:18},StarknetMainnet:{name:"StarkNet Token",symbol:"STRK",decimals:18},StellarQuickstart:{name:"Lumen",symbol:"XLM",decimals:7},StellarTestnet:{name:"Lumen",symbol:"XLM",decimals:7},StellarMainnet:{name:"Lumen",symbol:"XLM",decimals:7}}[this.network]}get feesUnit(){return {EthereumAnvil:{symbol:"gwei",decimals:9},PolygonAmoy:{symbol:"gwei",decimals:9},StarknetDevnet:{symbol:"FRI",decimals:18},StarknetSepolia:{symbol:"FRI",decimals:18},StarknetMainnet:{symbol:"FRI",decimals:18},StellarQuickstart:{symbol:"stroop",decimals:7},StellarTestnet:{symbol:"stroop",decimals:7},StellarMainnet:{symbol:"stroop",decimals:7}}[this.network]}async apiStatus(){return fetch(new URL("/health/ready",this.apiUrl)).then(t=>t.ok?"operational":"down").catch(t=>(console.error("Failed to perform health check",t),"down"))}async isAuthenticated(){return this.rpcClient.call("auth","isAuthenticated")}async getUser(){return this.rpcClient.call("auth","getUser")}async passwordLogin(t,e){return this.rpcClient.call("auth","passwordLogin",t,e)}async passwordlessStart(t,e){return this.rpcClient.call("auth","passwordlessStart",t,e)}async passwordlessLogin(t,e,r){return this.rpcClient.call("auth","passwordlessLogin",t,e,r)}async login(t){let e=await this.rpcClient.call("auth","getLoginUrl",t),r=500,n=685,s=window.screenX+(window.innerWidth-r)/2,m=window.screenY+(window.innerHeight-n)/2,o=window.open(e,`keyban:auth:${this.appId}`,`left=${s},top=${m},width=${r},height=${n},popup,resizable,scrollbars`),a=new Promise(l=>{let c=b=>{b.origin===this.apiUrl.origin&&b.data==="keyban:auth:isAuthenticated"&&(window.removeEventListener("message",c),l());};window.addEventListener("message",c);});await new Promise(l=>{let c=setInterval(()=>{o?.closed&&(clearInterval(c),l());},100);}),await Promise.race([a,new Promise(l=>setTimeout(l,2e3))]);}async logout(){let t=await this.rpcClient.call("auth","getLogoutUrl",window.location.href),e=500,r=685,n=window.screenX+(window.innerWidth-e)/2,s=window.screenY+(window.innerHeight-r)/2,m=window.open(t,`keyban:auth:${this.appId}`,`left=${n},top=${s},width=${e},height=${r},popup,resizable,scrollbars`);await new Promise(o=>{let a=setInterval(()=>{m?.closed&&(clearInterval(a),o());},100);});}},u=class extends y{#e;#t=new Map;constructor(t){super(t),this.#e={EthereumAnvil:()=>import('./evm-SFTA44SI.mjs').then(({KeybanEvmClient:e})=>new e(t,this.metadataConfig)),PolygonAmoy:()=>import('./evm-SFTA44SI.mjs').then(({KeybanEvmClient:e})=>new e(t,this.metadataConfig)),StarknetDevnet:()=>import('./starknet-Q5CMNFHK.mjs').then(({StarknetClient:e})=>new e(t,this.metadataConfig)),StarknetSepolia:()=>import('./starknet-Q5CMNFHK.mjs').then(({StarknetClient:e})=>new e(t,this.metadataConfig)),StarknetMainnet:()=>import('./starknet-Q5CMNFHK.mjs').then(({StarknetClient:e})=>new e(t,this.metadataConfig)),StellarQuickstart:()=>import('./stellar-PRHQHVS4.mjs').then(({StellarClient:e})=>new e(t,this.metadataConfig)),StellarTestnet:()=>import('./stellar-PRHQHVS4.mjs').then(({StellarClient:e})=>new e(t,this.metadataConfig)),StellarMainnet:()=>import('./stellar-PRHQHVS4.mjs').then(({StellarClient:e})=>new e(t,this.metadataConfig))}[this.network]();}async initialize(){let t="WHATEVER",e=this.#t.get(t);if(e)return e;let r=this.#e.then(n=>n.initialize());return this.#t.set(t,r),r.catch(()=>{}).finally(()=>this.#t.delete(t)),r}};var p=class{#e;registerClient(t){this.#e=t;}get#t(){return b.getInstance(this.#e)}async get(t){return this.#t.call("clientShareStorage","get",t)}async set(t,e){return this.#t.call("clientShareStorage","set",t,e)}};var f=(a=>(a.EthereumAnvil="EthereumAnvil",a.PolygonAmoy="PolygonAmoy",a.StarknetDevnet="StarknetDevnet",a.StarknetSepolia="StarknetSepolia",a.StarknetMainnet="StarknetMainnet",a.StellarQuickstart="StellarQuickstart",a.StellarTestnet="StellarTestnet",a.StellarMainnet="StellarMainnet",a))(f||{});function _(i,t,e){let r=t.decimals,n=t.symbol;t.isFees?(r=i.feesUnit.decimals,n=i.feesUnit.symbol):t.isNative?(r=i.nativeCurrency.decimals,n=i.nativeCurrency.symbol):e&&(r=e.decimals??void 0,n=e.symbol??void 0),r=r??0;let s=formatUnits(typeof t.raw=="bigint"?t.raw:BigInt(t.raw),r);return n?`${s} ${n}`:s}
export{h as a,f as b,y as c,u as d,p as e,_ as f};//# sourceMappingURL=chunk-WPOOJWVI.mjs.map
//# sourceMappingURL=chunk-WPOOJWVI.mjs.map