superstack-wallet-sdk 0.5.8 → 0.5.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- import t from"axios";import{Network as e,WalletType as a,isVersionedTransaction as r}from"./types.js";import{Storage as n}from"./storage.js";import{Connection as o,PublicKey as i,LAMPORTS_PER_SOL as s}from"@solana/web3.js";import l from"bs58";import{PhantomWalletAdapter as d}from"./adapters/phantom.js";import{v4 as h}from"uuid";import{getOnrampBuyUrl as c}from"./utils/coinbaseUtils.js";import{Buffer as u}from"../_virtual/_polyfill-node.buffer.js";import"./polyfills.js";import{createPublicClient as w}from"../node_modules/.pnpm/viem@2.37.8_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10/node_modules/viem/_esm/clients/createPublicClient.js";import{http as p}from"../node_modules/.pnpm/viem@2.37.8_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10/node_modules/viem/_esm/clients/transports/http.js";import{serializeSignature as m}from"../node_modules/.pnpm/viem@2.37.8_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10/node_modules/viem/_esm/utils/signature/serializeSignature.js";import{formatEther as f}from"../node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/utils/units.js";class v{constructor(a){this.selectedWalletId=null,this.solanaConnection=null,this.ethereumProvider=null,this.walletInfo=null,this.phantomAdapter=null,this.walletType="embedded",this.backupWalletType="embedded_backup",this.ethereumNetwork=null,this.defaultNetwork=e.Solana,this.api=t.create({baseURL:a.baseURL,headers:{"Content-Type":"application/json"}}),this.middleAccountApi=t.create({baseURL:a.middleAccountBaseURL||"https://yeezy-payment-service-sit-a0dchfccbufeh5bx.z03.azurefd.net",headers:{"Content-Type":"application/json"}}),this.solanaCluster=a.solanaCluster,this.solanaConnection=new o(a.solanaCluster.rpcUrl),a.ethereumNetwork&&(this.ethereumNetwork={...a.ethereumNetwork,chainId:Number(a.ethereumNetwork.chainId)},this.ethereumProvider=w({transport:p(a.ethereumNetwork.rpcUrl)})),this.defaultNetwork=a.defaultNetwork||e.Solana}setWallet(t){this.walletInfo=t}setWalletType(t){this.walletType=t,n.saveWalletType(t)}setBackupWalletType(t){this.backupWalletType=t,n.saveBackupWalletType(t),console.log(33)}getWallet(){return this.walletInfo}getPhantomAdapter(){return this.phantomAdapter}getWalletType(){return this.walletType}getBackupWalletType(){return this.backupWalletType}get wallet(){var t;return(null===(t=this.walletInfo)||void 0===t?void 0:t.wallets.find(t=>t.network===this.defaultNetwork))||null}get address(){var t;return(null===(t=this.wallet)||void 0===t?void 0:t.address)||null}get network(){var t;return(null===(t=this.wallet)||void 0===t?void 0:t.network)||null}get ethereumWallet(){var t,a;return(null===(t=this.walletInfo)||void 0===t?void 0:t.wallets.find(t=>t.address===n.getSwitchedAccountAddress()))||(null===(a=this.walletInfo)||void 0===a?void 0:a.wallets.find(t=>t.network===e.Ethereum&&"Main"===t.wallet_set))||null}get ethereumAddress(){var t;return(null===(t=this.ethereumWallet)||void 0===t?void 0:t.address)||null}get solanaWallet(){var t,a,r,o;const i=null===(a=null===(t=this.walletInfo)||void 0===t?void 0:t.wallets.find(t=>t.address===n.getSwitchedAccountAddress()))||void 0===a?void 0:a.wallet_set;return i?(null===(r=this.walletInfo)||void 0===r?void 0:r.wallets.find(t=>t.network===e.Solana&&t.wallet_set===i))||null:(null===(o=this.walletInfo)||void 0===o?void 0:o.wallets.find(t=>t.network===e.Solana&&"Main"===t.wallet_set))||null}get forwardSolanaWallet(){var t;return(null===(t=this.walletInfo)||void 0===t?void 0:t.wallets.find(t=>t.network===e.Solana&&"Forward-0"===t.wallet_set))||null}get forwardSolanaAddress(){var t;return(null===(t=this.forwardSolanaWallet)||void 0===t?void 0:t.address)||null}get forwardEthereumWallet(){var t;return(null===(t=this.walletInfo)||void 0===t?void 0:t.wallets.find(t=>t.network===e.Ethereum&&"Forward-0"===t.wallet_set))||null}get forwardEthereumAddress(){var t;return(null===(t=this.forwardEthereumWallet)||void 0===t?void 0:t.address)||null}get solanaAddress(){var t;return(null===(t=this.solanaWallet)||void 0===t?void 0:t.address)||null}get id(){var t;return(null===(t=this.walletInfo)||void 0===t?void 0:t.id)||null}get social_links(){var t;return(null===(t=this.walletInfo)||void 0===t?void 0:t.social_links)||null}async reconnect(t){try{if(n.getWalletType()==="phantom"+(t?"_backup":"")){return await this.connectPhantom()}if(!t){const t=await this.getSession();return this.setWallet(t),t}const e=n.getBackupWalletInfo();return this.setWallet(e),e}catch(t){return null}}async connectPhantom(){try{if(this.phantomAdapter||(this.phantomAdapter=new d),await this.phantomAdapter.connect(),!this.phantomAdapter.publicKey)throw new Error("Failed to connect to Phantom wallet");const t=this.phantomAdapter.publicKey.toString(),r={id:h(),wallets:[{id:t,address:t,network:e.Solana,wallet_type:a.Phantom,wallet_set:"Main",account_index:0,is_enabled:!0}],social_links:[],social_infos:[],account_info:{name:null,sub_accounts:[]},created_at:Date.now(),is_exported:!1};return this.setWallet(r),this.setWalletType("phantom"),r}catch(t){throw console.error("Phantom connect error:",t),new Error(t instanceof Error?t.message:"Failed to connect to Phantom wallet")}}async updateAccountName(t,e){if(!this.walletInfo)throw new Error("No wallet info");const a={name:t};void 0!==e&&(a.account_index=e);const r=(await this.api.post("/account/update",a,{withCredentials:!0})).data;return this.setWallet(r),r}async manageMultiAccount(t){if(!this.walletInfo)throw new Error("No wallet info");const e=(await this.api.post("/account/multi",t,{withCredentials:!0})).data;return this.setWallet(e),e}async createSubAccount(t){return this.manageMultiAccount({type:"Create",data:{name:null!=t?t:null}})}async enableSubAccount(t){return this.manageMultiAccount({type:"Enable",data:{index:t}})}async disableSubAccount(t){return this.manageMultiAccount({type:"Disable",data:{index:t}})}async signSolanaTransaction(t){try{if(!this.walletInfo)throw new Error("No wallet info");if(!this.solanaConnection)throw new Error("No rpc connection");const{blockhash:a}=await this.solanaConnection.getLatestBlockhash();if(r(t)?t.message.recentBlockhash=a:t.recentBlockhash=a,this.phantomAdapter&&this.phantomAdapter.publicKey)return await this.phantomAdapter.signTransaction(t);const n=this.solanaWallet;if(!n)throw new Error("No solana wallet available");const o={user_id:this.walletInfo.id,address:n.address,network:e.Solana,tx:{Solana:l.encode(r(t)?t.message.serialize():t.serializeMessage())}},s=await this.api.post("/v3/sign",o,{withCredentials:!0}),{signature:d}=s.data;return t.addSignature(new i(n.address),u.from(l.decode(d))),t}catch(t){throw new Error(t instanceof Error?t.message:"Failed to sign transaction")}}async signEthereumEip712(t){if(!this.ethereumNetwork)throw new Error("No Ethereum network");if(!this.ethereumProvider)throw new Error("No Ethereum provider");if(!this.walletInfo)throw new Error("No wallet info");if(!this.ethereumAddress)throw new Error("No Ethereum address");const a={user_id:this.walletInfo.id,address:this.ethereumAddress,network:e.Ethereum,tx:{EthereumEip712:t}},r=await this.api.post("/v2/sign",a,{withCredentials:!0}),{signature:n}=r.data;return n}async sendSolanaTransaction(t){if(!this.solanaConnection)throw new Error("No rpc connection");try{return await this.solanaConnection.sendRawTransaction(t,{maxRetries:3,skipPreflight:!1})}catch(t){throw t}}async sendEthereumTransaction(t){if(!this.ethereumProvider)throw new Error("No Ethereum provider");try{return await this.ethereumProvider.sendRawTransaction({serializedTransaction:t})}catch(t){throw t}}async sendEmailVerificationCode(t){await this.api.post("/send_verification",{email:t})}async sendPhoneVerificationCode(t){t.startsWith("+")||(t=`+${t}`),await this.api.post("/send_verification",{phone:t,type:"phone"})}async verifyEmailVerificationCode({email:t,code:e}){const a={type:"Email",data:{network:this.defaultNetwork,email:t,code:e}},r=(await this.api.post("/login",a,{withCredentials:!0})).data;return this.setWallet(r),this.setWalletType("embedded"),r}async verifyPhoneVerificationCode({phone:t,code:e}){const a={type:"Phone",data:{network:this.defaultNetwork,phone:t,code:e}},r=(await this.api.post("/login",a,{withCredentials:!0})).data;return this.setWallet(r),this.setWalletType("embedded"),r}async twitterLogin(t){const e={type:"TwitterOAuth",data:{network:this.defaultNetwork,...t}},a=(await this.api.post("/login",e,{withCredentials:!0})).data;return this.setWallet(a),this.setWalletType("embedded"),a}async googleLogin(t){const e={type:"GoogleOAuth",data:{network:this.defaultNetwork,...t}},a=(await this.api.post("/login",e,{withCredentials:!0})).data;return this.setWallet(a),this.setWalletType("embedded"),a}async oauthLogin(t,e){const a={type:t,data:{network:e.network||this.defaultNetwork,...e}},r=(await this.api.post("/login",a,{withCredentials:!0})).data;return this.setWallet(r),e.isBackup?this.setBackupWalletType("embedded_backup"):this.setWalletType("embedded"),r}async loginWithChallenge(t,e){const a={type:t,data:{network:e.network||this.defaultNetwork,...e}},r=(await this.api.post("/login",a,{withCredentials:!0})).data;return this.setWallet(r),console.log(11),e.isBackup?(console.log(22),this.setBackupWalletType("embedded_backup")):this.setWalletType("embedded"),r}async oauthInit(t){return(await this.api.post("/oauth/init",t)).data}async getSignChallenge(t){return(await this.api.get(`/challenge?method=${t.method}&id=${t.id}`)).data}async getSession(){const t=(await this.api.get("/session",{withCredentials:!0})).data,{access_token:e,...a}=t;return e&&n.saveAccessToken(e),t}async logout(t){this.phantomAdapter?(this.phantomAdapter.disconnect(),this.phantomAdapter=null):await this.api.post("/logout",{},{withCredentials:!0}),this.setWallet(null),t?n.clearBackup():n.clear()}async getOAuth2ClientId(t){return(await this.api.get(`/oauth_id/${t}`)).data.client_id}setSelectedWallet(t){this.selectedWalletId=t}getSelectedWallet(){return this.selectedWalletId}async getSolanaBalance(){if(!this.solanaConnection||!this.solanaAddress)throw new Error("Solana connection not available");return(await this.solanaConnection.getBalance(new i(this.solanaAddress))/s).toString()}async getEthereumBalance(){if(!this.ethereumProvider||!this.ethereumAddress)throw new Error("Ethereum provider not available");const t=await this.ethereumProvider.getBalance({address:this.ethereumAddress});return f(t)}async fetchCoinbaseToken(t,e="solana"){return(await this.api.post("/ramp/coinbase",{addresses:[{address:t,blockchains:[e]}],assets:["solana"===e?"SOL":"ETH"]})).data.token}viemSignerAdapter(){return{signTypedData:async t=>{if(!this.ethereumNetwork)throw new Error("No Ethereum network");if(!this.ethereumProvider)throw new Error("No Ethereum provider");if(!this.walletInfo)throw new Error("No wallet info");if(!this.ethereumAddress)throw new Error("No Ethereum address");const a={user_id:this.walletInfo.id,address:this.ethereumAddress,network:e.Ethereum,tx:{EthereumEip712:t}},r=await this.api.post("/v2/sign",a,{withCredentials:!0}),{signature:n}=r.data,o=l.decode(n),i=o[64];return m({r:`0x${u.from(o.slice(0,32)).toString("hex")}`,s:`0x${u.from(o.slice(32,64)).toString("hex")}`,v:BigInt(i+27)})}}}async createMiddleAccount(t){try{return(await this.middleAccountApi.post("/create",t)).data}catch(t){throw new Error(t instanceof Error?t.message:"Failed to create middle account")}}async getCoinbaseOnrampUrlForMiddleAccount(t){try{const a={sessionToken:await this.fetchCoinbaseToken(t.middleAccountAddress,t.network===e.Solana?"solana":"ethereum"),presetCryptoAmount:Number(t.amount),redirectUrl:t.redirectUrl||window.location.href};return c(a)}catch(t){throw new Error(t instanceof Error?t.message:"Failed to get Coinbase onramp URL")}}async getOrderState(t){try{return(await this.middleAccountApi.get(`/order/${t}`)).data}catch(t){throw new Error(t instanceof Error?t.message:"Failed to get order status")}}async transfer(t){var e,a;if(!this.walletInfo)throw new Error("No wallet info available");const r={user_id:this.walletInfo.id,from:t.from,to:t.to,amount:t.amount,decimals:t.decimals,token:t.token,network:t.network,chain_id:t.chain_id};try{return(await this.api.post("/transfer",r,{withCredentials:!0})).data}catch(t){if(null===(a=null===(e=t.response)||void 0===e?void 0:e.data)||void 0===a?void 0:a.error)throw new Error(t.response.data.error);throw new Error(t instanceof Error?t.message:"Transfer failed")}}async buildTransaction(t,e){var a,r;if(!this.walletInfo)throw new Error("No wallet info available");try{const a={};e&&(a["Wallet-Address"]=e);return(await this.api.post("/v3/build_transaction",t,{withCredentials:!0,headers:a})).data}catch(t){if(null===(r=null===(a=t.response)||void 0===a?void 0:a.data)||void 0===r?void 0:r.error)throw new Error(t.response.data.error);throw new Error(t instanceof Error?t.message:"Failed to build transaction")}}}export{v as WalletClient};
1
+ import e from"axios";import{Network as t,WalletType as r,isVersionedTransaction as a}from"./types.js";import{Storage as o}from"./storage.js";import{Connection as n,PublicKey as i,LAMPORTS_PER_SOL as s}from"@solana/web3.js";import l from"bs58";import{PhantomWalletAdapter as d}from"./adapters/phantom.js";import{v4 as h}from"uuid";import{getOnrampBuyUrl as c}from"./utils/coinbaseUtils.js";import{Buffer as w}from"../_virtual/_polyfill-node.buffer.js";import"./polyfills.js";import{createPublicClient as u}from"../node_modules/.pnpm/viem@2.37.8_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10/node_modules/viem/_esm/clients/createPublicClient.js";import{http as p}from"../node_modules/.pnpm/viem@2.37.8_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10/node_modules/viem/_esm/clients/transports/http.js";import{serializeSignature as f}from"../node_modules/.pnpm/viem@2.37.8_bufferutil@4.0.9_typescript@5.9.2_utf-8-validate@5.0.10/node_modules/viem/_esm/utils/signature/serializeSignature.js";import{formatEther as m}from"../node_modules/.pnpm/ethers@6.15.0_bufferutil@4.0.9_utf-8-validate@5.0.10/node_modules/ethers/lib.esm/utils/units.js";function v(){const e=new Uint8Array(16);return crypto.getRandomValues(e),Array.from(e,e=>e.toString(16).padStart(2,"0")).join("")}class g{constructor(r){this.selectedWalletId=null,this.solanaConnection=null,this.ethereumProvider=null,this.walletInfo=null,this.phantomAdapter=null,this.walletType="embedded",this.backupWalletType="embedded_backup",this.ethereumNetwork=null,this.defaultNetwork=t.Solana,this.api=e.create({baseURL:r.baseURL,headers:{"Content-Type":"application/json"}}),this.middleAccountApi=e.create({baseURL:r.middleAccountBaseURL||"https://yeezy-payment-service-sit-a0dchfccbufeh5bx.z03.azurefd.net",headers:{"Content-Type":"application/json"}}),this.solanaCluster=r.solanaCluster,this.solanaConnection=new n(r.solanaCluster.rpcUrl),r.ethereumNetwork&&(this.ethereumNetwork={...r.ethereumNetwork,chainId:Number(r.ethereumNetwork.chainId)},this.ethereumProvider=u({transport:p(r.ethereumNetwork.rpcUrl)})),this.defaultNetwork=r.defaultNetwork||t.Solana}setWallet(e){this.walletInfo=e}setWalletType(e){this.walletType=e,o.saveWalletType(e)}setBackupWalletType(e){this.backupWalletType=e,o.saveBackupWalletType(e),console.log(33)}getWallet(){return this.walletInfo}getPhantomAdapter(){return this.phantomAdapter}getWalletType(){return this.walletType}getBackupWalletType(){return this.backupWalletType}get wallet(){var e;return(null===(e=this.walletInfo)||void 0===e?void 0:e.wallets.find(e=>e.network===this.defaultNetwork))||null}get address(){var e;return(null===(e=this.wallet)||void 0===e?void 0:e.address)||null}get network(){var e;return(null===(e=this.wallet)||void 0===e?void 0:e.network)||null}get ethereumWallet(){var e,r;return(null===(e=this.walletInfo)||void 0===e?void 0:e.wallets.find(e=>e.address===o.getSwitchedAccountAddress()))||(null===(r=this.walletInfo)||void 0===r?void 0:r.wallets.find(e=>e.network===t.Ethereum&&"Main"===e.wallet_set))||null}get ethereumAddress(){var e;return(null===(e=this.ethereumWallet)||void 0===e?void 0:e.address)||null}get solanaWallet(){var e,r,a,n;const i=null===(r=null===(e=this.walletInfo)||void 0===e?void 0:e.wallets.find(e=>e.address===o.getSwitchedAccountAddress()))||void 0===r?void 0:r.wallet_set;return i?(null===(a=this.walletInfo)||void 0===a?void 0:a.wallets.find(e=>e.network===t.Solana&&e.wallet_set===i))||null:(null===(n=this.walletInfo)||void 0===n?void 0:n.wallets.find(e=>e.network===t.Solana&&"Main"===e.wallet_set))||null}get forwardSolanaWallet(){var e;return(null===(e=this.walletInfo)||void 0===e?void 0:e.wallets.find(e=>e.network===t.Solana&&"Forward-0"===e.wallet_set))||null}get forwardSolanaAddress(){var e;return(null===(e=this.forwardSolanaWallet)||void 0===e?void 0:e.address)||null}get forwardEthereumWallet(){var e;return(null===(e=this.walletInfo)||void 0===e?void 0:e.wallets.find(e=>e.network===t.Ethereum&&"Forward-0"===e.wallet_set))||null}get forwardEthereumAddress(){var e;return(null===(e=this.forwardEthereumWallet)||void 0===e?void 0:e.address)||null}get solanaAddress(){var e;return(null===(e=this.solanaWallet)||void 0===e?void 0:e.address)||null}get id(){var e;return(null===(e=this.walletInfo)||void 0===e?void 0:e.id)||null}get social_links(){var e;return(null===(e=this.walletInfo)||void 0===e?void 0:e.social_links)||null}async reconnect(e){try{if(o.getWalletType()==="phantom"+(e?"_backup":"")){return await this.connectPhantom()}if(!e){const e=await this.getSession();return this.setWallet(e),e}const t=o.getBackupWalletInfo();return this.setWallet(t),t}catch(e){return null}}async connectPhantom(){try{if(this.phantomAdapter||(this.phantomAdapter=new d),await this.phantomAdapter.connect(),!this.phantomAdapter.publicKey)throw new Error("Failed to connect to Phantom wallet");const e=this.phantomAdapter.publicKey.toString(),a={id:h(),wallets:[{id:e,address:e,network:t.Solana,wallet_type:r.Phantom,wallet_set:"Main",account_index:0,is_enabled:!0}],social_links:[],social_infos:[],account_info:{name:null,sub_accounts:[]},created_at:Date.now(),is_exported:!1};return this.setWallet(a),this.setWalletType("phantom"),a}catch(e){throw console.error("Phantom connect error:",e),new Error(e instanceof Error?e.message:"Failed to connect to Phantom wallet")}}async updateAccountName(e,t){if(!this.walletInfo)throw new Error("No wallet info");const r={name:e};void 0!==t&&(r.account_index=t);const a=(await this.api.post("/account/update",r,{withCredentials:!0})).data;return this.setWallet(a),a}async manageMultiAccount(e){if(!this.walletInfo)throw new Error("No wallet info");const t=(await this.api.post("/account/multi",e,{withCredentials:!0})).data;return this.setWallet(t),t}async createSubAccount(e){return this.manageMultiAccount({type:"Create",data:{name:null!=e?e:null}})}async enableSubAccount(e){return this.manageMultiAccount({type:"Enable",data:{index:e}})}async disableSubAccount(e){return this.manageMultiAccount({type:"Disable",data:{index:e}})}async signSolanaTransaction(e){try{if(!this.walletInfo)throw new Error("No wallet info");if(!this.solanaConnection)throw new Error("No rpc connection");const{blockhash:r}=await this.solanaConnection.getLatestBlockhash();if(a(e)?e.message.recentBlockhash=r:e.recentBlockhash=r,this.phantomAdapter&&this.phantomAdapter.publicKey)return await this.phantomAdapter.signTransaction(e);const o=this.solanaWallet;if(!o)throw new Error("No solana wallet available");const n=await this.signV3({network:t.Solana,address:o.address,tx:{Solana:l.encode(a(e)?e.message.serialize():e.serializeMessage())}});return e.addSignature(new i(o.address),w.from(l.decode(n))),e}catch(e){throw new Error(e instanceof Error?e.message:"Failed to sign transaction")}}async signEthereumEip712(e){if(!this.ethereumNetwork)throw new Error("No Ethereum network");if(!this.ethereumProvider)throw new Error("No Ethereum provider");if(!this.walletInfo)throw new Error("No wallet info");if(!this.ethereumAddress)throw new Error("No Ethereum address");return await this.signV2({network:t.Ethereum,address:this.ethereumAddress,tx:{EthereumEip712:e}})}async sendSolanaTransaction(e){if(!this.solanaConnection)throw new Error("No rpc connection");try{return await this.solanaConnection.sendRawTransaction(e,{maxRetries:3,skipPreflight:!1})}catch(e){throw e}}async sendEthereumTransaction(e){if(!this.ethereumProvider)throw new Error("No Ethereum provider");try{return await this.ethereumProvider.sendRawTransaction({serializedTransaction:e})}catch(e){throw e}}async sendEmailVerificationCode(e){await this.api.post("/send_verification",{email:e})}async sendPhoneVerificationCode(e){e.startsWith("+")||(e=`+${e}`),await this.api.post("/send_verification",{phone:e,type:"phone"})}async verifyEmailVerificationCode({email:e,code:t}){const r={type:"Email",data:{network:this.defaultNetwork,email:e,code:t}},a=(await this.api.post("/login",r,{withCredentials:!0})).data;return this.setWallet(a),this.setWalletType("embedded"),a}async verifyPhoneVerificationCode({phone:e,code:t}){const r={type:"Phone",data:{network:this.defaultNetwork,phone:e,code:t}},a=(await this.api.post("/login",r,{withCredentials:!0})).data;return this.setWallet(a),this.setWalletType("embedded"),a}async twitterLogin(e){const t={type:"TwitterOAuth",data:{network:this.defaultNetwork,...e}},r=(await this.api.post("/login",t,{withCredentials:!0})).data;return this.setWallet(r),this.setWalletType("embedded"),r}async googleLogin(e){const t={type:"GoogleOAuth",data:{network:this.defaultNetwork,...e}},r=(await this.api.post("/login",t,{withCredentials:!0})).data;return this.setWallet(r),this.setWalletType("embedded"),r}async oauthLogin(e,t){const r={type:e,data:{network:t.network||this.defaultNetwork,...t}},a=(await this.api.post("/login",r,{withCredentials:!0})).data;return this.setWallet(a),t.isBackup?this.setBackupWalletType("embedded_backup"):this.setWalletType("embedded"),a}async loginWithChallenge(e,t){const r={type:e,data:{network:t.network||this.defaultNetwork,...t}},a=(await this.api.post("/login",r,{withCredentials:!0})).data;return this.setWallet(a),console.log(11),t.isBackup?(console.log(22),this.setBackupWalletType("embedded_backup")):this.setWalletType("embedded"),a}async oauthInit(e){return(await this.api.post("/oauth/init",e)).data}async getSignChallenge(e){return(await this.api.get(`/challenge?method=${e.method}&id=${e.id}`)).data}async getSession(){const e=(await this.api.get("/session",{withCredentials:!0})).data,{access_token:t,...r}=e;return t&&o.saveAccessToken(t),e}async logout(e){this.phantomAdapter?(this.phantomAdapter.disconnect(),this.phantomAdapter=null):await this.api.post("/logout",{},{withCredentials:!0}),this.setWallet(null),e?o.clearBackup():o.clear()}async getOAuth2ClientId(e){return(await this.api.get(`/oauth_id/${e}`)).data.client_id}setSelectedWallet(e){this.selectedWalletId=e}getSelectedWallet(){return this.selectedWalletId}async getSolanaBalance(){if(!this.solanaConnection||!this.solanaAddress)throw new Error("Solana connection not available");return(await this.solanaConnection.getBalance(new i(this.solanaAddress))/s).toString()}async getEthereumBalance(){if(!this.ethereumProvider||!this.ethereumAddress)throw new Error("Ethereum provider not available");const e=await this.ethereumProvider.getBalance({address:this.ethereumAddress});return m(e)}async fetchCoinbaseToken(e,t="solana"){return(await this.api.post("/ramp/coinbase",{addresses:[{address:e,blockchains:[t]}],assets:["solana"===t?"SOL":"ETH"]})).data.token}viemSignerAdapter(){return{signTypedData:async e=>{if(!this.ethereumNetwork)throw new Error("No Ethereum network");if(!this.ethereumProvider)throw new Error("No Ethereum provider");if(!this.walletInfo)throw new Error("No wallet info");if(!this.ethereumAddress)throw new Error("No Ethereum address");const r=await this.signV2({network:t.Ethereum,address:this.ethereumAddress,tx:{EthereumEip712:e}}),a=l.decode(r),o=a[64];return f({r:`0x${w.from(a.slice(0,32)).toString("hex")}`,s:`0x${w.from(a.slice(32,64)).toString("hex")}`,v:BigInt(o+27)})}}}async createMiddleAccount(e){try{return(await this.middleAccountApi.post("/create",e)).data}catch(e){throw new Error(e instanceof Error?e.message:"Failed to create middle account")}}async getCoinbaseOnrampUrlForMiddleAccount(e){try{const r={sessionToken:await this.fetchCoinbaseToken(e.middleAccountAddress,e.network===t.Solana?"solana":"ethereum"),presetCryptoAmount:Number(e.amount),redirectUrl:e.redirectUrl||window.location.href};return c(r)}catch(e){throw new Error(e instanceof Error?e.message:"Failed to get Coinbase onramp URL")}}async getOrderState(e){try{return(await this.middleAccountApi.get(`/order/${e}`)).data}catch(e){throw new Error(e instanceof Error?e.message:"Failed to get order status")}}async transfer(e){var t,r;if(!this.walletInfo)throw new Error("No wallet info available");const a={user_id:this.walletInfo.id,from:e.from,to:e.to,amount:e.amount,decimals:e.decimals,token:e.token,network:e.network,chain_id:e.chain_id};try{return(await this.api.post("/v3/sign/transfer",a,{withCredentials:!0})).data}catch(e){if(null===(r=null===(t=e.response)||void 0===t?void 0:t.data)||void 0===r?void 0:r.error)throw new Error(e.response.data.error);throw new Error(e instanceof Error?e.message:"Transfer failed")}}async buildTransaction(e,t){var r,a;if(!this.walletInfo)throw new Error("No wallet info available");try{const r={...e,wallet_address:t||e.wallet_address||null};return(await this.api.post("/v3/sign/build_transaction",r,{withCredentials:!0})).data}catch(e){if(null===(a=null===(r=e.response)||void 0===r?void 0:r.data)||void 0===a?void 0:a.error)throw new Error(e.response.data.error);throw new Error(e instanceof Error?e.message:"Failed to build transaction")}}async exportInit(e){var t,r;if(!this.walletInfo)throw new Error("No wallet info available");const a={user_nonce:v(),account_index:e};try{return(await this.api.post("/export/init",a,{withCredentials:!0})).data}catch(e){if(null===(r=null===(t=e.response)||void 0===t?void 0:t.data)||void 0===r?void 0:r.error)throw new Error(e.response.data.error);throw new Error(e instanceof Error?e.message:"Failed to initialize export")}}async exportFinal(e){var t,r,a;if(!this.walletInfo)throw new Error("No wallet info available");const o={user_nonce:e.userNonce,server_nonce:e.serverNonce,account_index:e.accountIndex,is_export:null===(t=e.isExport)||void 0===t||t};try{return(await this.api.post("/export/final",o,{withCredentials:!0})).data}catch(e){if(null===(a=null===(r=e.response)||void 0===r?void 0:r.data)||void 0===a?void 0:a.error)throw new Error(e.response.data.error);throw new Error(e instanceof Error?e.message:"Failed to finalize export")}}async getExportedWallets(e){var t,r;if(!this.walletInfo)throw new Error("No wallet info available");const a={account_index:e,is_export:!1};try{return(await this.api.post("/export/final",a,{withCredentials:!0})).data}catch(e){if(null===(r=null===(t=e.response)||void 0===t?void 0:t.data)||void 0===r?void 0:r.error)throw new Error(e.response.data.error);throw new Error(e instanceof Error?e.message:"Failed to retrieve exported wallets")}}async closeInit(){var e,t;if(!this.walletInfo)throw new Error("No wallet info available");const r={user_nonce:v()};try{return(await this.api.post("/close/init",r,{withCredentials:!0})).data}catch(r){if(null===(t=null===(e=r.response)||void 0===e?void 0:e.data)||void 0===t?void 0:t.error)throw new Error(r.response.data.error);throw new Error(r instanceof Error?r.message:"Failed to initialize account closure")}}async closeFinal(e){var t,r;if(!this.walletInfo)throw new Error("No wallet info available");const a={user_nonce:e.userNonce,server_nonce:e.serverNonce};try{const e=await this.api.post("/close/final",a,{withCredentials:!0});return this.setWallet(null),o.clear(),e.data}catch(e){if(null===(r=null===(t=e.response)||void 0===t?void 0:t.data)||void 0===r?void 0:r.error)throw new Error(e.response.data.error);throw new Error(e instanceof Error?e.message:"Failed to close account")}}async signV1(e){var t,r;if(!this.walletInfo)throw new Error("No wallet info available");const a={user_id:this.walletInfo.id,network:e.network,address:e.address,message:e.message};try{return(await this.api.post("/v1/sign",a,{withCredentials:!0})).data.signature}catch(e){if(null===(r=null===(t=e.response)||void 0===t?void 0:t.data)||void 0===r?void 0:r.error)throw new Error(e.response.data.error);throw new Error(e instanceof Error?e.message:"Failed to sign message")}}async signV2(e){var t,r;if(!this.walletInfo)throw new Error("No wallet info available");const a={user_id:this.walletInfo.id,network:e.network,address:e.address,tx:e.tx};try{return(await this.api.post("/v2/sign",a,{withCredentials:!0})).data.signature}catch(e){if(null===(r=null===(t=e.response)||void 0===t?void 0:t.data)||void 0===r?void 0:r.error)throw new Error(e.response.data.error);throw new Error(e instanceof Error?e.message:"Failed to sign transaction")}}async signV3(e){var r,a;if(!this.walletInfo)throw new Error("No wallet info available");if(e.network!==t.Solana)throw new Error("v3 sign API only supports Solana transactions");if(!e.tx.Solana)throw new Error("Solana transaction is required for v3 sign API");const o={user_id:this.walletInfo.id,network:e.network,address:e.address,tx:{Solana:e.tx.Solana}};try{return(await this.api.post("/v3/sign",o,{withCredentials:!0})).data.signature}catch(e){if(null===(a=null===(r=e.response)||void 0===r?void 0:r.data)||void 0===a?void 0:a.error)throw new Error(e.response.data.error);throw new Error(e instanceof Error?e.message:"Failed to sign transaction")}}async lighterBuildTransaction(e,t){var r,a;if(!this.walletInfo)throw new Error("No wallet info available");try{const r={...e,wallet_address:t||e.wallet_address||null};return(await this.api.post("/v3/lighter/build_transaction",r,{withCredentials:!0})).data}catch(e){if(null===(a=null===(r=e.response)||void 0===r?void 0:r.data)||void 0===a?void 0:a.error)throw new Error(e.response.data.error);throw new Error(e instanceof Error?e.message:"Failed to build Lighter transaction")}}async lighterAuth(e){var t,r;if(!this.walletInfo)throw new Error("No wallet info available");const a={account_index:e.lighter_account_index,wallet_address:e.wallet_address||null,expires_in_ms:e.expires_in_ms||null};try{return(await this.api.post("/v3/lighter/auth",a,{withCredentials:!0})).data}catch(e){if(null===(r=null===(t=e.response)||void 0===t?void 0:t.data)||void 0===r?void 0:r.error)throw new Error(e.response.data.error);throw new Error(e instanceof Error?e.message:"Failed to generate Lighter auth token")}}async lighterChangeKey(e){var t,r;if(!this.walletInfo)throw new Error("No wallet info available");if(e.lighter_account_index<0)throw new Error("accountIndex must be non-negative");const a={account_index:e.lighter_account_index,wallet_address:e.wallet_address||null};try{return(await this.api.post("/v3/lighter/change_key",a,{withCredentials:!0})).data}catch(e){if(null===(r=null===(t=e.response)||void 0===t?void 0:t.data)||void 0===r?void 0:r.error)throw new Error(e.response.data.error);throw new Error(e instanceof Error?e.message:"Failed to change Lighter key")}}async exchange(e){var t,r;if(!this.walletInfo)throw new Error("No wallet info available");try{return(await this.api.post("/v3/sign/exchange",e,{withCredentials:!0})).data}catch(e){if(null===(r=null===(t=e.response)||void 0===t?void 0:t.data)||void 0===r?void 0:r.error)throw new Error(e.response.data.error);throw new Error(e instanceof Error?e.message:"Failed to build exchange transaction")}}}export{g as WalletClient};
2
2
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sources":["../../../../src/client.ts"],"sourcesContent":[null],"names":["WalletClient","constructor","config","this","selectedWalletId","solanaConnection","ethereumProvider","walletInfo","phantomAdapter","walletType","backupWalletType","ethereumNetwork","defaultNetwork","Network","Solana","api","axios","create","baseURL","headers","middleAccountApi","middleAccountBaseURL","solanaCluster","Connection","rpcUrl","chainId","Number","createPublicClient","transport","http","setWallet","wallet","setWalletType","type","Storage","saveWalletType","setBackupWalletType","saveBackupWalletType","console","log","getWallet","getPhantomAdapter","getWalletType","getBackupWalletType","_a","wallets","find","network","address","ethereumWallet","getSwitchedAccountAddress","_b","Ethereum","wallet_set","ethereumAddress","solanaWallet","_c","_d","forwardSolanaWallet","forwardSolanaAddress","forwardEthereumWallet","forwardEthereumAddress","solanaAddress","id","social_links","reconnect","isBackup","connectPhantom","getSession","getBackupWalletInfo","error","PhantomWalletAdapter","connect","publicKey","Error","toString","uuidv4","wallet_type","WalletType","Phantom","account_index","is_enabled","social_infos","account_info","name","sub_accounts","created_at","Date","now","is_exported","message","updateAccountName","accountIndex","payload","undefined","post","withCredentials","data","manageMultiAccount","request","createSubAccount","enableSubAccount","index","disableSubAccount","signSolanaTransaction","transaction","blockhash","getLatestBlockhash","isVersionedTransaction","recentBlockhash","signTransaction","signRequest","user_id","tx","bs58","encode","serialize","serializeMessage","response","signature","addSignature","PublicKey","Buffer","from","decode","signEthereumEip712","params","EthereumEip712","sendSolanaTransaction","sendRawTransaction","maxRetries","skipPreflight","sendEthereumTransaction","signedTransaction","serializedTransaction","sendEmailVerificationCode","email","sendPhoneVerificationCode","phone","startsWith","verifyEmailVerificationCode","code","verifyPhoneVerificationCode","twitterLogin","googleLogin","oauthLogin","loginWithChallenge","oauthInit","getSignChallenge","get","method","access_token","rest","saveAccessToken","logout","disconnect","clearBackup","clear","getOAuth2ClientId","provider","client_id","setSelectedWallet","walletId","getSelectedWallet","getSolanaBalance","getBalance","LAMPORTS_PER_SOL","getEthereumBalance","balance","ethers.formatEther","fetchCoinbaseToken","blockchain","addresses","blockchains","assets","token","viemSignerAdapter","signTypedData","async","signatureBytes","recId","signatureToHex","r","slice","s","v","BigInt","createMiddleAccount","getCoinbaseOnrampUrlForMiddleAccount","sessionToken","middleAccountAddress","presetCryptoAmount","amount","redirectUrl","window","location","href","getOnrampBuyUrl","getOrderState","orderId","transfer","transferRequest","to","decimals","chain_id","buildTransaction","walletAddress"],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sources":["../../../../src/client.ts"],"sourcesContent":[null],"names":["generateNonce","array","Uint8Array","crypto","getRandomValues","Array","from","byte","toString","padStart","join","WalletClient","constructor","config","this","selectedWalletId","solanaConnection","ethereumProvider","walletInfo","phantomAdapter","walletType","backupWalletType","ethereumNetwork","defaultNetwork","Network","Solana","api","axios","create","baseURL","headers","middleAccountApi","middleAccountBaseURL","solanaCluster","Connection","rpcUrl","chainId","Number","createPublicClient","transport","http","setWallet","wallet","setWalletType","type","Storage","saveWalletType","setBackupWalletType","saveBackupWalletType","console","log","getWallet","getPhantomAdapter","getWalletType","getBackupWalletType","_a","wallets","find","network","address","ethereumWallet","getSwitchedAccountAddress","_b","Ethereum","wallet_set","ethereumAddress","solanaWallet","_c","_d","forwardSolanaWallet","forwardSolanaAddress","forwardEthereumWallet","forwardEthereumAddress","solanaAddress","id","social_links","reconnect","isBackup","connectPhantom","getSession","getBackupWalletInfo","error","PhantomWalletAdapter","connect","publicKey","Error","uuidv4","wallet_type","WalletType","Phantom","account_index","is_enabled","social_infos","account_info","name","sub_accounts","created_at","Date","now","is_exported","message","updateAccountName","accountIndex","payload","undefined","post","withCredentials","data","manageMultiAccount","request","createSubAccount","enableSubAccount","index","disableSubAccount","signSolanaTransaction","transaction","blockhash","getLatestBlockhash","isVersionedTransaction","recentBlockhash","signTransaction","signature","signV3","tx","bs58","encode","serialize","serializeMessage","addSignature","PublicKey","Buffer","decode","signEthereumEip712","params","signV2","EthereumEip712","sendSolanaTransaction","sendRawTransaction","maxRetries","skipPreflight","sendEthereumTransaction","signedTransaction","serializedTransaction","sendEmailVerificationCode","email","sendPhoneVerificationCode","phone","startsWith","verifyEmailVerificationCode","code","verifyPhoneVerificationCode","twitterLogin","googleLogin","oauthLogin","loginWithChallenge","oauthInit","getSignChallenge","get","method","access_token","rest","saveAccessToken","logout","disconnect","clearBackup","clear","getOAuth2ClientId","provider","client_id","setSelectedWallet","walletId","getSelectedWallet","getSolanaBalance","getBalance","LAMPORTS_PER_SOL","getEthereumBalance","balance","ethers.formatEther","fetchCoinbaseToken","blockchain","addresses","blockchains","assets","token","viemSignerAdapter","signTypedData","async","signatureBytes","recId","signatureToHex","r","slice","s","v","BigInt","createMiddleAccount","getCoinbaseOnrampUrlForMiddleAccount","sessionToken","middleAccountAddress","presetCryptoAmount","amount","redirectUrl","window","location","href","getOnrampBuyUrl","getOrderState","orderId","transfer","transferRequest","user_id","to","decimals","chain_id","response","buildTransaction","walletAddress","buildRequest","wallet_address","exportInit","user_nonce","exportFinal","userNonce","server_nonce","serverNonce","is_export","isExport","getExportedWallets","closeInit","closeFinal","signV1","signRequest","lighterBuildTransaction","lighterAuth","lighter_account_index","expires_in_ms","lighterChangeKey","exchange"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- import"./polyfills.js";export{WalletClient}from"./client.js";export{WalletProvider,useWallet}from"./context.js";export{WalletProviderBackup,useWalletBackup}from"./context_backup.js";export{useActiveWallet,useConnect,useLoginModal,useWalletBackupStatus,useWalletStatus}from"./hooks.js";export{ACCESS_TOKEN_KEY,BACKUP_WALLET_INFO,BACKUP_WALLET_TYPE_KEY,STORAGE_STATE_KEY,SWITCHED_ACCOUNT_ADDRESS,Storage,WALLET_TYPE_KEY}from"./storage.js";export{Network,SocialType,VaultId,WalletType,isVersionedTransaction}from"./types.js";export{injectStyles}from"./styles/index.js";export{useCoinbaseOnramp}from"./coinbase.js";export{theme}from"./styles/theme.js";"undefined"!=typeof window&&import("./styles/index.js").then(({injectStyles:e})=>{e()});
1
+ import"./polyfills.js";export{WalletClient}from"./client.js";export{WalletProvider,useWallet}from"./context.js";export{WalletProviderBackup,useWalletBackup}from"./context_backup.js";export{useActiveWallet,useConnect,useLoginModal,useWalletBackupStatus,useWalletStatus}from"./hooks.js";export{ACCESS_TOKEN_KEY,BACKUP_WALLET_INFO,BACKUP_WALLET_TYPE_KEY,STORAGE_STATE_KEY,SWITCHED_ACCOUNT_ADDRESS,Storage,WALLET_TYPE_KEY}from"./storage.js";export{LighterGroupingType,LighterMarginMode,LighterOrderSide,LighterOrderType,LighterTimeInForce,Network,SocialType,VaultId,WalletType,isVersionedTransaction}from"./types.js";export{injectStyles}from"./styles/index.js";export{useCoinbaseOnramp}from"./coinbase.js";export{theme}from"./styles/theme.js";"undefined"!=typeof window&&import("./styles/index.js").then(({injectStyles:e})=>{e()});
2
2
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../src/index.ts"],"sourcesContent":[null],"names":["window","import","then","injectStyles"],"mappings":"woBAasB,oBAAXA,QACPC,OAAO,qBAAYC,KAAK,EAAGC,mBACvBA"}
1
+ {"version":3,"file":"index.js","sources":["../../../../src/index.ts"],"sourcesContent":[null],"names":["window","import","then","injectStyles"],"mappings":"muBAasB,oBAAXA,QACPC,OAAO,qBAAYC,KAAK,EAAGC,mBACvBA"}
@@ -1,2 +1,2 @@
1
- function e(e){return"version"in e}var t,a,r,n;!function(e){e.Solana="Solana",e.Ethereum="Ethereum"}(t||(t={})),function(e){e.Phantom="Phantom",e.Embedded="Embedded"}(a||(a={})),function(e){e.Google="Google",e.Twitter="Twitter",e.Telegram="Telegram",e.Apple="Apple"}(r||(r={})),function(e){e.HyperbeatUltraHype="HyperbeatUltraHype",e.HyperbeatUltraUbtc="HyperbeatUltraUbtc",e.HyperbeatUsdt="HyperbeatUsdt",e.HyperbeatUsdc="HyperbeatUsdc",e.HyperbeatXaut="HyperbeatXaut",e.VentualsVlp="VentualsVlp",e.DnHype="DnHype",e.DnPump="DnPump"}(n||(n={}));export{t as Network,r as SocialType,n as VaultId,a as WalletType,e as isVersionedTransaction};
1
+ function e(e){return"version"in e}var t,o,a,n,r,i,l,s,p;!function(e){e.Solana="Solana",e.Ethereum="Ethereum"}(t||(t={})),function(e){e.Phantom="Phantom",e.Embedded="Embedded"}(o||(o={})),function(e){e.Google="Google",e.Twitter="Twitter",e.Telegram="Telegram",e.Apple="Apple"}(a||(a={})),function(e){e.HyperbeatUltraHype="HyperbeatUltraHype",e.HyperbeatUltraUbtc="HyperbeatUltraUbtc",e.HyperbeatUsdt="HyperbeatUsdt",e.HyperbeatUsdc="HyperbeatUsdc",e.HyperbeatXaut="HyperbeatXaut",e.VentualsVlp="VentualsVlp",e.DnHype="DnHype",e.DnPump="DnPump"}(n||(n={})),function(e){e.Buy="buy",e.Sell="sell"}(r||(r={})),function(e){e.Limit="limit",e.Market="market",e.StopLoss="stop_loss",e.StopLossLimit="stop_loss_limit",e.TakeProfit="take_profit",e.TakeProfitLimit="take_profit_limit",e.Twap="twap",e.TwapSub="twap_sub"}(i||(i={})),function(e){e.ImmediateOrCancel="immediate_or_cancel",e.GoodTillTime="good_till_time",e.PostOnly="post_only"}(l||(l={})),function(e){e.Cross="cross",e.Isolated="isolated"}(s||(s={})),function(e){e.Default="default",e.OneTriggersTheOther="one_triggers_the_other",e.OneCancelsTheOther="one_cancels_the_other",e.OneTriggersAOneCancelsTheOther="one_triggers_a_one_cancels_the_other"}(p||(p={}));export{p as LighterGroupingType,s as LighterMarginMode,r as LighterOrderSide,i as LighterOrderType,l as LighterTimeInForce,t as Network,a as SocialType,n as VaultId,o as WalletType,e as isVersionedTransaction};
2
2
  //# sourceMappingURL=types.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sources":["../../../../src/types.ts"],"sourcesContent":[null],"names":["isVersionedTransaction","transaction","Network","WalletType","SocialType","VaultId"],"mappings":"AAkBM,SAAUA,EACdC,GAEA,MAAO,YAAaA,CACtB,KAiBYC,EAKAC,EAKAC,EAiMAC,GA3MZ,SAAYH,GACVA,EAAA,OAAA,SACAA,EAAA,SAAA,UACD,CAHD,CAAYA,IAAAA,EAAO,CAAA,IAKnB,SAAYC,GACVA,EAAA,QAAA,UACAA,EAAA,SAAA,UACD,CAHD,CAAYA,IAAAA,EAAU,CAAA,IAKtB,SAAYC,GACVA,EAAA,OAAA,SACAA,EAAA,QAAA,UACAA,EAAA,SAAA,WACAA,EAAA,MAAA,OACD,CALD,CAAYA,IAAAA,EAAU,CAAA,IAiMtB,SAAYC,GACVA,EAAA,mBAAA,qBACAA,EAAA,mBAAA,qBACAA,EAAA,cAAA,gBACAA,EAAA,cAAA,gBACAA,EAAA,cAAA,gBACAA,EAAA,YAAA,cACAA,EAAA,OAAA,SACAA,EAAA,OAAA,QACD,CATD,CAAYA,IAAAA,EAAO,CAAA"}
1
+ {"version":3,"file":"types.js","sources":["../../../../src/types.ts"],"sourcesContent":[null],"names":["isVersionedTransaction","transaction","Network","WalletType","SocialType","VaultId","LighterOrderSide","LighterOrderType","LighterTimeInForce","LighterMarginMode","LighterGroupingType"],"mappings":"AAkBM,SAAUA,EACdC,GAEA,MAAO,YAAaA,CACtB,KAiBYC,EAKAC,EAKAC,EAiMAC,EA4GAC,EAKAC,EAWAC,EAMAC,EAKAC,GAlVZ,SAAYR,GACVA,EAAA,OAAA,SACAA,EAAA,SAAA,UACD,CAHD,CAAYA,IAAAA,EAAO,CAAA,IAKnB,SAAYC,GACVA,EAAA,QAAA,UACAA,EAAA,SAAA,UACD,CAHD,CAAYA,IAAAA,EAAU,CAAA,IAKtB,SAAYC,GACVA,EAAA,OAAA,SACAA,EAAA,QAAA,UACAA,EAAA,SAAA,WACAA,EAAA,MAAA,OACD,CALD,CAAYA,IAAAA,EAAU,CAAA,IAiMtB,SAAYC,GACVA,EAAA,mBAAA,qBACAA,EAAA,mBAAA,qBACAA,EAAA,cAAA,gBACAA,EAAA,cAAA,gBACAA,EAAA,cAAA,gBACAA,EAAA,YAAA,cACAA,EAAA,OAAA,SACAA,EAAA,OAAA,QACD,CATD,CAAYA,IAAAA,EAAO,CAAA,IA4GnB,SAAYC,GACVA,EAAA,IAAA,MACAA,EAAA,KAAA,MACD,CAHD,CAAYA,IAAAA,EAAgB,CAAA,IAK5B,SAAYC,GACVA,EAAA,MAAA,QACAA,EAAA,OAAA,SACAA,EAAA,SAAA,YACAA,EAAA,cAAA,kBACAA,EAAA,WAAA,cACAA,EAAA,gBAAA,oBACAA,EAAA,KAAA,OACAA,EAAA,QAAA,UACD,CATD,CAAYA,IAAAA,EAAgB,CAAA,IAW5B,SAAYC,GACVA,EAAA,kBAAA,sBACAA,EAAA,aAAA,iBACAA,EAAA,SAAA,WACD,CAJD,CAAYA,IAAAA,EAAkB,CAAA,IAM9B,SAAYC,GACVA,EAAA,MAAA,QACAA,EAAA,SAAA,UACD,CAHD,CAAYA,IAAAA,EAAiB,CAAA,IAK7B,SAAYC,GACVA,EAAA,QAAA,UACAA,EAAA,oBAAA,yBACAA,EAAA,mBAAA,wBACAA,EAAA,+BAAA,sCACD,CALD,CAAYA,IAAAA,EAAmB,CAAA"}
@@ -1,4 +1,4 @@
1
- import { Wallet, Social, WalletInfo, Network, IModalManager, MiddleAccountRequest, MiddleAccount, CoinbaseOnrampRequest, OrderState, LoginType, BuildTransactionRequest, BuildTransactionResponse, MultiAccountRequest } from "./types";
1
+ import { Wallet, Social, WalletInfo, Network, IModalManager, MiddleAccountRequest, MiddleAccount, CoinbaseOnrampRequest, OrderState, LoginType, BuildTransactionRequest, BuildTransactionResponse, MultiAccountRequest, ExportInitResponse, ExportWalletResponse, CloseInitResponse, CloseFinishResponse, LighterBuildTransactionRequest, LighterBuildTransactionResponse, LighterAuthResponse, LighterChangeKeyResponse, ExchangeRequest, ExchangeResponse } from "./types";
2
2
  import { Transaction, VersionedTransaction } from "@solana/web3.js";
3
3
  import { PhantomWalletAdapter } from "./adapters/phantom";
4
4
  import * as viem from "viem";
@@ -227,10 +227,116 @@ export declare class WalletClient {
227
227
  }): Promise<BuildTransactionResponse>;
228
228
  /**
229
229
  * Build a transaction using the server-side build transaction API
230
- * @param request Build transaction request
230
+ * @param request Build transaction request (with optional wallet_address field)
231
+ * @param walletAddress Optional wallet address (will be added to request if provided)
231
232
  * @returns Build transaction response with raw transaction
232
233
  */
233
234
  buildTransaction(request: BuildTransactionRequest, walletAddress?: string): Promise<BuildTransactionResponse>;
235
+ /**
236
+ * Initialize the export process by generating a server nonce
237
+ * @param accountIndex Optional account index to export (defaults to 0)
238
+ * @returns Server nonce for verification
239
+ */
240
+ exportInit(accountIndex?: number): Promise<ExportInitResponse>;
241
+ /**
242
+ * Finalize the export process and retrieve wallet private keys
243
+ * @param params Export parameters including nonces and account index
244
+ * @returns Exported wallet information with private keys
245
+ */
246
+ exportFinal(params: {
247
+ userNonce: string;
248
+ serverNonce: string;
249
+ accountIndex?: number;
250
+ isExport?: boolean;
251
+ }): Promise<ExportWalletResponse>;
252
+ /**
253
+ * Retrieve previously exported wallet information
254
+ * @param accountIndex Optional account index (defaults to 0)
255
+ * @returns Previously exported wallet information
256
+ */
257
+ getExportedWallets(accountIndex?: number): Promise<ExportWalletResponse>;
258
+ /**
259
+ * Initialize the account closure process
260
+ * @returns Server nonce for verification
261
+ */
262
+ closeInit(): Promise<CloseInitResponse>;
263
+ /**
264
+ * Finalize the account closure process and permanently delete the account
265
+ * @param params Close parameters including nonces
266
+ * @returns Confirmation that the account was closed
267
+ */
268
+ closeFinal(params: {
269
+ userNonce: string;
270
+ serverNonce: string;
271
+ }): Promise<CloseFinishResponse>;
272
+ /**
273
+ * Raw v1 sign API - Sign a message with user's wallet
274
+ * @param params Sign parameters including network, address, and message
275
+ * @returns Signature string
276
+ */
277
+ signV1(params: {
278
+ network: Network;
279
+ address: string;
280
+ message: string;
281
+ }): Promise<string>;
282
+ /**
283
+ * Raw v2 sign API - Sign a transaction (Solana or Ethereum EIP712) with user's wallet
284
+ * @param params Sign parameters including network, address, and transaction
285
+ * @returns Signature string
286
+ */
287
+ signV2(params: {
288
+ network: Network;
289
+ address: string;
290
+ tx: {
291
+ Solana?: string;
292
+ EthereumEip712?: Record<string, unknown>;
293
+ };
294
+ }): Promise<string>;
295
+ /**
296
+ * Raw v3 sign API - Sign a Solana transaction with user's wallet
297
+ * Note: v3 sign API only supports Solana transactions
298
+ * @param params Sign parameters including network, address, and Solana transaction
299
+ * @returns Signature string
300
+ */
301
+ signV3(params: {
302
+ network: Network;
303
+ address: string;
304
+ tx: {
305
+ Solana: string;
306
+ };
307
+ }): Promise<string>;
308
+ /**
309
+ * Build a Lighter transaction using the server-side build transaction API
310
+ * @param request Lighter build transaction request (with optional wallet_address field)
311
+ * @param walletAddress Optional wallet address (will be added to request if provided)
312
+ * @returns Lighter build transaction response with transaction details
313
+ */
314
+ lighterBuildTransaction(request: LighterBuildTransactionRequest, walletAddress?: string): Promise<LighterBuildTransactionResponse>;
315
+ /**
316
+ * Generate a Lighter authentication token
317
+ * @param params Auth parameters including account_index and optional wallet_address and expires_in_ms
318
+ * @returns Lighter auth response with token and expiration
319
+ */
320
+ lighterAuth(params: {
321
+ lighter_account_index: number;
322
+ wallet_address?: string | null;
323
+ expires_in_ms?: number | null;
324
+ }): Promise<LighterAuthResponse>;
325
+ /**
326
+ * Rotate/change the Lighter L2 key for an account
327
+ * @param params Change key parameters including account_index and optional wallet_address
328
+ * @returns Lighter change key response with new public key
329
+ */
330
+ lighterChangeKey(params: {
331
+ lighter_account_index: number;
332
+ wallet_address?: string | null;
333
+ }): Promise<LighterChangeKeyResponse>;
334
+ /**
335
+ * Sign and build a Hyperliquid exchange transaction
336
+ * @param request Exchange request with action and optional parameters
337
+ * @returns Exchange response with signed payload
338
+ */
339
+ exchange(request: ExchangeRequest): Promise<ExchangeResponse>;
234
340
  }
235
341
  export type SignTransactionReturnType<serializer extends viem.SerializeTransactionFn<viem.TransactionSerializable> = viem.SerializeTransactionFn<viem.TransactionSerializable>, transaction extends Parameters<serializer>[0] = Parameters<serializer>[0]> = viem.TransactionSerialized<viem.GetTransactionType<transaction>>;
236
342
  export {};
@@ -219,6 +219,8 @@ export interface DeBridgeDlnCreateTxRequest {
219
219
  srcChainPriorityLevel?: string | null;
220
220
  }
221
221
  export type BuildTransactionRequest = {
222
+ wallet_address?: string | null;
223
+ } & ({
222
224
  type: "HyperbeatVaultApprove";
223
225
  data: {
224
226
  vault_id: VaultId;
@@ -263,8 +265,245 @@ export type BuildTransactionRequest = {
263
265
  data: {
264
266
  request: DeBridgeDlnCreateTxRequest;
265
267
  };
266
- };
268
+ });
267
269
  export interface BuildTransactionResponse {
268
270
  raw_transaction: string;
269
271
  metadata?: any;
270
272
  }
273
+ export declare enum LighterOrderSide {
274
+ Buy = "buy",
275
+ Sell = "sell"
276
+ }
277
+ export declare enum LighterOrderType {
278
+ Limit = "limit",
279
+ Market = "market",
280
+ StopLoss = "stop_loss",
281
+ StopLossLimit = "stop_loss_limit",
282
+ TakeProfit = "take_profit",
283
+ TakeProfitLimit = "take_profit_limit",
284
+ Twap = "twap",
285
+ TwapSub = "twap_sub"
286
+ }
287
+ export declare enum LighterTimeInForce {
288
+ ImmediateOrCancel = "immediate_or_cancel",
289
+ GoodTillTime = "good_till_time",
290
+ PostOnly = "post_only"
291
+ }
292
+ export declare enum LighterMarginMode {
293
+ Cross = "cross",
294
+ Isolated = "isolated"
295
+ }
296
+ export declare enum LighterGroupingType {
297
+ Default = "default",
298
+ OneTriggersTheOther = "one_triggers_the_other",
299
+ OneCancelsTheOther = "one_cancels_the_other",
300
+ OneTriggersAOneCancelsTheOther = "one_triggers_a_one_cancels_the_other"
301
+ }
302
+ export interface LighterTxContext {
303
+ account_index: number;
304
+ from_account_index: number;
305
+ api_key_index: number;
306
+ expired_at: number;
307
+ nonce: number;
308
+ }
309
+ export interface LighterOrderParams {
310
+ account_index: number;
311
+ from_account_index: number;
312
+ api_key_index: number;
313
+ expired_at: number;
314
+ nonce: number;
315
+ market_index: number;
316
+ client_order_index?: number | null;
317
+ base_amount: number;
318
+ price?: number | null;
319
+ side: LighterOrderSide;
320
+ order_type: LighterOrderType;
321
+ time_in_force?: LighterTimeInForce | null;
322
+ reduce_only?: boolean;
323
+ trigger_price?: number | null;
324
+ order_expiry_ms?: number | null;
325
+ }
326
+ export interface LighterLeverageParams {
327
+ account_index: number;
328
+ from_account_index: number;
329
+ api_key_index: number;
330
+ expired_at: number;
331
+ nonce: number;
332
+ market_index: number;
333
+ leverage: number;
334
+ margin_mode: LighterMarginMode;
335
+ }
336
+ export interface LighterWithdrawParams {
337
+ account_index: number;
338
+ from_account_index: number;
339
+ api_key_index: number;
340
+ expired_at: number;
341
+ nonce: number;
342
+ usdc_amount: number;
343
+ }
344
+ export interface LighterCreateSubAccountParams {
345
+ account_index: number;
346
+ from_account_index: number;
347
+ api_key_index: number;
348
+ expired_at: number;
349
+ nonce: number;
350
+ }
351
+ export interface LighterGroupedOrderEntry {
352
+ market_index: number;
353
+ client_order_index?: number | null;
354
+ base_amount: number;
355
+ price?: number | null;
356
+ side: LighterOrderSide;
357
+ order_type: LighterOrderType;
358
+ time_in_force?: LighterTimeInForce | null;
359
+ reduce_only?: boolean;
360
+ trigger_price?: number | null;
361
+ order_expiry_ms?: number | null;
362
+ }
363
+ export interface LighterGroupedOrdersParams {
364
+ account_index: number;
365
+ from_account_index: number;
366
+ api_key_index: number;
367
+ expired_at: number;
368
+ nonce: number;
369
+ grouping_type: LighterGroupingType;
370
+ orders: LighterGroupedOrderEntry[];
371
+ }
372
+ export interface LighterGeneralTransferParams {
373
+ account_index: number;
374
+ from_account_index: number;
375
+ api_key_index: number;
376
+ expired_at: number;
377
+ nonce: number;
378
+ to_account_index: number;
379
+ usdc_amount: number;
380
+ fee?: number;
381
+ memo_hex?: string | null;
382
+ }
383
+ export interface LighterCancelOrderParams {
384
+ account_index: number;
385
+ from_account_index: number;
386
+ api_key_index: number;
387
+ expired_at: number;
388
+ nonce: number;
389
+ market_index: number;
390
+ index: number;
391
+ }
392
+ export interface LighterCancelAllOrdersParams {
393
+ account_index: number;
394
+ from_account_index: number;
395
+ api_key_index: number;
396
+ expired_at: number;
397
+ nonce: number;
398
+ time_in_force: LighterTimeInForce;
399
+ time: number;
400
+ }
401
+ export type LighterBuildTransactionRequest = {
402
+ wallet_address?: string | null;
403
+ } & ({
404
+ type: "Order";
405
+ data: LighterOrderParams;
406
+ } | {
407
+ type: "UpdateLeverage";
408
+ data: LighterLeverageParams;
409
+ } | {
410
+ type: "Withdraw";
411
+ data: LighterWithdrawParams;
412
+ } | {
413
+ type: "CreateSubAccount";
414
+ data: LighterCreateSubAccountParams;
415
+ } | {
416
+ type: "Transfer";
417
+ data: LighterGeneralTransferParams;
418
+ } | {
419
+ type: "GroupedOrders";
420
+ data: LighterGroupedOrdersParams;
421
+ } | {
422
+ type: "CancelOrder";
423
+ data: LighterCancelOrderParams;
424
+ } | {
425
+ type: "CancelAllOrders";
426
+ data: LighterCancelAllOrdersParams;
427
+ });
428
+ export interface LighterBuildTransactionResponse {
429
+ tx_type: number;
430
+ tx_info: string;
431
+ tx_hash?: string | null;
432
+ hash: string;
433
+ }
434
+ export interface LighterAuthRequest {
435
+ wallet_address?: string | null;
436
+ expires_in_ms?: number | null;
437
+ account_index: number;
438
+ }
439
+ export interface LighterAuthResponse {
440
+ auth: string;
441
+ expires_at: number;
442
+ }
443
+ export interface LighterChangeKeyRequest {
444
+ wallet_address?: string | null;
445
+ account_index: number;
446
+ }
447
+ export interface LighterChangeKeyResponse {
448
+ account_index: number;
449
+ public_key: string;
450
+ }
451
+ export interface ExchangeSignature {
452
+ r: string;
453
+ s: string;
454
+ v: number;
455
+ }
456
+ export interface ExchangePayload {
457
+ action: any;
458
+ nonce: number;
459
+ signature: ExchangeSignature;
460
+ vaultAddress?: string | null;
461
+ expiresAfter?: number | null;
462
+ }
463
+ export interface ExchangeResponse {
464
+ payload: ExchangePayload;
465
+ }
466
+ export interface ExchangeRequest {
467
+ action: any;
468
+ vaultAddress?: string | null;
469
+ expiresAfter?: number | null;
470
+ isMainnet?: boolean | null;
471
+ walletAddress?: string | null;
472
+ }
473
+ export interface ExportInitRequest {
474
+ user_nonce: string;
475
+ account_index?: number;
476
+ }
477
+ export interface ExportInitResponse {
478
+ server_nonce: string;
479
+ }
480
+ export interface ExportFinishRequest {
481
+ user_nonce?: string;
482
+ server_nonce?: string;
483
+ account_index?: number;
484
+ is_export: boolean;
485
+ }
486
+ export interface ExportWallet {
487
+ network: Network;
488
+ wallet_set: string;
489
+ address: string;
490
+ private_key: string;
491
+ }
492
+ export interface ExportWalletResponse {
493
+ user_id: string;
494
+ wallets: ExportWallet[];
495
+ }
496
+ export interface CloseInitRequest {
497
+ user_nonce: string;
498
+ }
499
+ export interface CloseInitResponse {
500
+ server_nonce: string;
501
+ }
502
+ export interface CloseFinishRequest {
503
+ user_nonce: string;
504
+ server_nonce: string;
505
+ }
506
+ export interface CloseFinishResponse {
507
+ user_id: string;
508
+ is_closed: boolean;
509
+ }