@gala-chain/launchpad-sdk 7.0.0-beta.4 → 7.0.0-beta.6
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.
- package/README.md +1 -1
- package/dist/LaunchpadSDK.d.ts +344 -1
- package/dist/LaunchpadSDK.d.ts.map +1 -1
- package/dist/api/dto/BondingCurveDTOs.d.ts +1 -1
- package/dist/bridge/BridgeService.d.ts.map +1 -1
- package/dist/bridge/constants/tokens.d.ts.map +1 -1
- package/dist/bridge/types/bridgeable-token.dto.d.ts +6 -2
- package/dist/bridge/types/bridgeable-token.dto.d.ts.map +1 -1
- package/dist/bridge/utils/tokenMetadataResolver.d.ts +2 -2
- package/dist/bridge/utils/tokenMetadataResolver.d.ts.map +1 -1
- package/dist/constants/version.generated.d.ts +1 -1
- package/dist/index.browser.d.ts +1 -2
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.browser.esm.js +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.esm.js +1 -1
- package/dist/index.js +1 -1
- package/dist/launchpad/strings-instructions.d.ts.map +1 -1
- package/dist/native.cjs +1 -1
- package/dist/native.esm.js +1 -1
- package/dist/react/index.d.ts +1 -1
- package/dist/react/index.d.ts.map +1 -1
- package/dist/react.cjs +1 -1
- package/dist/react.esm.js +1 -1
- package/dist/services/BridgeableTokenService.d.ts.map +1 -1
- package/dist/services/DexService.d.ts +8 -1
- package/dist/services/DexService.d.ts.map +1 -1
- package/dist/services/LaunchpadService.d.ts +7 -0
- package/dist/services/LaunchpadService.d.ts.map +1 -1
- package/dist/services/PoolService.d.ts +22 -0
- package/dist/services/PoolService.d.ts.map +1 -1
- package/dist/services/StreamWebSocketService.d.ts +10 -0
- package/dist/services/StreamWebSocketService.d.ts.map +1 -1
- package/dist/services/TokenClassKeyService.d.ts +0 -22
- package/dist/services/TokenClassKeyService.d.ts.map +1 -1
- package/dist/tokens/transfers.d.ts +6 -2
- package/dist/tokens/transfers.d.ts.map +1 -1
- package/dist/utils/data-transform-patterns.d.ts +1 -1
- package/dist/utils/data-transform-patterns.d.ts.map +1 -1
- package/dist/utils/delimiter-parser.d.ts +3 -2
- package/dist/utils/delimiter-parser.d.ts.map +1 -1
- package/dist/utils/token-format-converter.d.ts +15 -130
- package/dist/utils/token-format-converter.d.ts.map +1 -1
- package/dist/utils/token-instance-resolver.d.ts +5 -3
- package/dist/utils/token-instance-resolver.d.ts.map +1 -1
- package/dist/utils/token-parser.d.ts +2 -2
- package/dist/utils/token-parser.d.ts.map +1 -1
- package/dist/utils/tokenNormalizer.d.ts +2 -1
- package/dist/utils/tokenNormalizer.d.ts.map +1 -1
- package/dist/utils/validation.d.ts +0 -16
- package/dist/utils/validation.d.ts.map +1 -1
- package/dist/wallet/detection.d.ts.map +1 -1
- package/dist/wallet/index.d.ts +3 -4
- package/dist/wallet/index.d.ts.map +1 -1
- package/dist/wallet/types.d.ts +2 -2
- package/dist/wallet.cjs +1 -1
- package/dist/wallet.esm.js +1 -1
- package/package.json +160 -164
- package/LICENSE +0 -21
- package/dist/services/TokenMetadataService.d.ts +0 -509
- package/dist/services/TokenMetadataService.d.ts.map +0 -1
- package/dist/wallet/GalaChainConnectProvider.d.ts +0 -125
- package/dist/wallet/GalaChainConnectProvider.d.ts.map +0 -1
package/dist/react/index.d.ts
CHANGED
|
@@ -61,5 +61,5 @@ export { useWalletConnection, type UseWalletConnectionReturn } from './useWallet
|
|
|
61
61
|
export { useWalletDetection, type UseWalletDetectionReturn } from './useWalletDetection';
|
|
62
62
|
export type { ConnectionStatus, WalletContextActions, WalletContextState, WalletContextValue, WalletProviderProps, } from './types';
|
|
63
63
|
export type { DetectedWallet, Eip6963ProviderInfo, WalletConnectionState, WalletProvider as WalletProviderInterface, } from '../wallet/types';
|
|
64
|
-
export { detectWallets, ExternalWalletProvider,
|
|
64
|
+
export { detectWallets, ExternalWalletProvider, KNOWN_WALLET_RDNS, PrivateKeyProvider, } from '../wallet';
|
|
65
65
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AAGH,OAAO,EAAE,gBAAgB,EAAC,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjF,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,SAAS,EACT,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,mBAAmB,EAAE,KAAK,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAG5F,OAAO,EAAE,kBAAkB,EAAE,KAAK,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGzF,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,IAAI,uBAAuB,GAC1C,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/react/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAwDG;AAGH,OAAO,EAAE,gBAAgB,EAAC,aAAa,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAGjF,OAAO,EACL,cAAc,EACd,oBAAoB,EACpB,SAAS,EACT,gBAAgB,EAChB,iBAAiB,GAClB,MAAM,aAAa,CAAC;AAGrB,OAAO,EAAE,mBAAmB,EAAE,KAAK,yBAAyB,EAAE,MAAM,uBAAuB,CAAC;AAG5F,OAAO,EAAE,kBAAkB,EAAE,KAAK,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGzF,YAAY,EACV,gBAAgB,EAChB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,GACpB,MAAM,SAAS,CAAC;AAGjB,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,qBAAqB,EACrB,cAAc,IAAI,uBAAuB,GAC1C,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,aAAa,EACb,sBAAsB,EACtB,iBAAiB,EACjB,kBAAkB,GACnB,MAAM,WAAW,CAAC"}
|
package/dist/react.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var e=require("react/jsx-runtime"),t=require("react"),n=require("ethers");const r={METAMASK:"io.metamask",METAMASK_FLASK:"io.metamask.flask",COINBASE:"com.coinbase.wallet",TRUST_WALLET:"com.trustwallet.app",PHANTOM:"app.phantom",RAINBOW:"me.rainbow",OKX:"com.okex.wallet",RABBY:"io.rabby",BRAVE:"com.brave.wallet",FRAME:"sh.frame",LEDGER:"com.ledger",ZERION:"io.zerion.wallet",GALA:"com.gala.wallet"},s={[r.METAMASK]:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIxLjU0IDQuMjJsLTguMzQgNi4yMSAxLjU0LTMuNjUtLTUuNTMtMi41MXoiIGZpbGw9IiNFMjc2MUIiLz48L3N2Zz4=",[r.GALA]:"data:image/png;base64,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"};function i(){return"undefined"!=typeof window&&"function"==typeof window.dispatchEvent}async function o(e=500){const t=[],n=new Map;return i()?new Promise(o=>{const a=new Set,c=e=>{const r=e,{info:i,provider:o}=r.detail;if(a.has(i.uuid))return;a.add(i.uuid);const c={id:i.rdns||i.uuid,name:i.name,rdns:i.rdns||i.uuid,icon:i.icon??s[i.rdns||""]??"",provider:o,isInjected:!1};t.push(c),n.set(c.id,c)};window.addEventListener("eip6963:announceProvider",c),window.dispatchEvent(new Event("eip6963:requestProvider")),setTimeout(()=>{if(window.removeEventListener("eip6963:announceProvider",c),0===t.length){const e=i()?window.ethereum??null:null;if(e){const i=window;let o="Browser Wallet",a="injected";i.ethereum?.isMetaMask?(o="MetaMask",a=r.METAMASK):i.ethereum?.isCoinbaseWallet?(o="Coinbase Wallet",a=r.COINBASE):i.ethereum?.isTrust&&(o="Trust Wallet",a=r.TRUST_WALLET);const c={id:a,name:o,rdns:a,icon:s[a]??"",provider:e,isInjected:!0};t.push(c),n.set(c.id,c)}}const e=window;if(e.gala?.request&&!n.has(r.GALA)){const i={id:r.GALA,name:"Gala Wallet",rdns:r.GALA,icon:s[r.GALA]??"",provider:e.gala,isInjected:!0};t.push(i),n.set(i.id,i)}o({wallets:t,byId:n,hasWallets:t.length>0,...void 0===t[0]?{}:{primary:t[0]}})},e)}):{wallets:t,byId:n,hasWallets:!1}}function a(e,t,n){return{types:{EIP712Domain:c(e),...t},primaryType:Object.keys(t)[0],domain:d(e),message:n}}function c(e){const t=[];return void 0!==e.name&&t.push({name:"name",type:"string"}),void 0!==e.version&&t.push({name:"version",type:"string"}),void 0!==e.chainId&&t.push({name:"chainId",type:"uint256"}),void 0!==e.verifyingContract&&t.push({name:"verifyingContract",type:"address"}),void 0!==e.salt&&t.push({name:"salt",type:"bytes32"}),t}function d(e){const t={};return void 0!==e.name&&(t.name=e.name),void 0!==e.version&&(t.version=e.version),void 0!==e.chainId&&(t.chainId="bigint"==typeof e.chainId||"number"==typeof e.chainId?`0x${e.chainId.toString(16)}`:e.chainId),void 0!==e.verifyingContract&&(t.verifyingContract=e.verifyingContract),void 0!==e.salt&&(t.salt=e.salt),t}function l(e){return`0x${Buffer.from(e,"utf8").toString("hex")}`}async function u(e,t,n){return e.request({method:"personal_sign",params:[l(n),t]})}async function h(e,t,n,r,s){return e.request({method:"eth_signTypedData_v4",params:[t,JSON.stringify(a(n,r,s))]})}class A{constructor(e){this.connectedAddress=null,this.provider=e,this.eventHandlers=function(e,t,r){if(null==e||"function"!=typeof e.on)return{accountsChanged:null,disconnect:null};const s=e=>{const r=e[0];t(void 0===r?null:n.getAddress(r))},i=()=>r();return e.on("accountsChanged",s),e.on("disconnect",i),{accountsChanged:s,disconnect:i}}(e,e=>{this.connectedAddress=e},()=>{this.connectedAddress=null})}removeEventListeners(){!function(e,t){if("function"!=typeof e.removeListener)return;null!==t.accountsChanged&&e.removeListener("accountsChanged",t.accountsChanged);null!==t.disconnect&&e.removeListener("disconnect",t.disconnect)}(this.provider,this.eventHandlers)}}class w extends Error{constructor(e,t,n){super(e),this.code=t,this.originalError=n,this.name="WalletProviderError"}}var g;async function E(e,t,n){try{return await e()}catch(e){if(e instanceof w)throw e;return t(e,n)}}!function(e){e.USER_REJECTED="USER_REJECTED",e.NOT_CONNECTED="NOT_CONNECTED",e.CONNECTION_FAILED="CONNECTION_FAILED",e.SIGNING_FAILED="SIGNING_FAILED",e.PROVIDER_NOT_AVAILABLE="PROVIDER_NOT_AVAILABLE",e.PRIVATE_KEY_NOT_ACCESSIBLE="PRIVATE_KEY_NOT_ACCESSIBLE",e.INVALID_CONFIG="INVALID_CONFIG",e.CHAIN_MISMATCH="CHAIN_MISMATCH",e.UNKNOWN="UNKNOWN"}(g||(g={}));const v=4001,f=4100,C=4900,p=4901;class y extends A{constructor(e){if(super(e),this.providerType="external",null==e)throw new w("EIP-1193 provider is required",g.INVALID_CONFIG)}handleProviderError(e,t){const n=e;if(n.code===v)throw new w(`User rejected ${t}`,g.USER_REJECTED,e instanceof Error?e:void 0);if(n.code===f)throw new w("Wallet is not authorized",g.NOT_CONNECTED,e instanceof Error?e:void 0);if(n.code===C||n.code===p)throw this.connectedAddress=null,new w("Wallet disconnected",g.NOT_CONNECTED,e instanceof Error?e:void 0);throw new w(n.message??`${t} failed`,t.includes("sign")?g.SIGNING_FAILED:g.UNKNOWN,e instanceof Error?e:void 0)}ensureConnected(){if(!this.connectedAddress)throw new w("Wallet is not connected. Call connect() first.",g.NOT_CONNECTED)}async connect(){try{const e=await this.provider.request({method:"eth_requestAccounts"});if(null==e||0===e.length)throw new w("No accounts returned from wallet",g.CONNECTION_FAILED);const t=e[0];if(void 0===t)throw new w("No accounts returned from wallet",g.CONNECTION_FAILED);return this.connectedAddress=n.getAddress(t),this.connectedAddress}catch(e){if(e instanceof w)throw e;return this.handleProviderError(e,"connect")}}async disconnect(){this.connectedAddress=null,this.removeEventListeners();try{await this.provider.request({method:"wallet_revokePermissions",params:[{eth_accounts:{}}]})}catch{}}isConnected(){return null!==this.connectedAddress}async signMessage(e){return this.ensureConnected(),E(()=>u(this.provider,this.connectedAddress,e),(e,t)=>this.handleProviderError(e,t),"sign message")}async signTypedData(e,t,n){return this.ensureConnected(),E(()=>h(this.provider,this.connectedAddress,e,t,n),(e,t)=>this.handleProviderError(e,t),"sign typed data")}async getAddress(){await Promise.resolve(),this.ensureConnected();const e=this.connectedAddress;if(null==e)throw new w("Wallet is not connected",g.NOT_CONNECTED);return e}async getGalaAddress(){return`eth|${(await this.getAddress()).slice(2)}`}async getPrivateKey(){return Promise.reject(new w("Private key is not accessible with external wallet providers. Use PrivateKeyProvider if you need private key access for @gala-chain operations.",g.PRIVATE_KEY_NOT_ACCESSIBLE))}getProvider(){return this.provider}}class I extends A{constructor(e){if(super(e),this.providerType="external",this.galaRawAddress=null,!e)throw new w("Gala Wallet provider is required",g.PROVIDER_NOT_AVAILABLE)}parseGalaError(e){if(e instanceof Error)try{const t=JSON.parse(e.message);if("object"==typeof t&&null!==t){const n=t,r={message:"string"==typeof n.message?n.message:e.message};return"number"==typeof n.code&&(r.code=n.code),r}return{message:e.message}}catch{return{message:e.message}}return{message:String(e)}}handleProviderError(e,t){const n=this.parseGalaError(e);if(4001===n.code)throw new w(`User rejected ${t}`,g.USER_REJECTED,e instanceof Error?e:void 0);if(4900===n.code)throw this.connectedAddress=null,new w("Wallet disconnected",g.NOT_CONNECTED,e instanceof Error?e:void 0);const r=n.message?n.message:`${t} failed`;throw new w(r,t.includes("sign")?g.SIGNING_FAILED:g.UNKNOWN,e instanceof Error?e:void 0)}ensureConnected(){if(null===this.connectedAddress||void 0===this.connectedAddress)throw new w("Wallet is not connected. Call connect() first.",g.NOT_CONNECTED)}async connect(){try{const e=await this.provider.request({method:"eth_requestAccounts"});if(null==e||0===e.length)throw new w("No accounts returned from Gala Wallet",g.CONNECTION_FAILED);const t=e[0];if(void 0===t)throw new w("No accounts returned from Gala Wallet",g.CONNECTION_FAILED);this.galaRawAddress=t;let r=t;return r.startsWith("eth|")?r=`0x${r.slice(4)}`:r.startsWith("0x")||(r=`0x${r}`),this.connectedAddress=n.getAddress(r),this.connectedAddress}catch(e){if(e instanceof w)throw e;return this.handleProviderError(e,"connect")}}async disconnect(){this.connectedAddress=null,this.galaRawAddress=null,this.removeEventListeners();try{await this.provider.disconnect()}catch{}}isConnected(){return null!==this.connectedAddress}async signMessage(e){return this.ensureConnected(),E(async()=>(await this.provider.setAddress(this.galaRawAddress??this.connectedAddress),u(this.provider,this.connectedAddress,e)),(e,t)=>this.handleProviderError(e,t),"sign message")}async signTypedData(e,t,n){return this.ensureConnected(),E(async()=>(await this.provider.setAddress(this.galaRawAddress??this.connectedAddress),h(this.provider,this.connectedAddress,e,t,n)),(e,t)=>this.handleProviderError(e,t),"sign typed data")}getAddress(){return this.ensureConnected(),Promise.resolve(this.connectedAddress)}async getGalaAddress(){return`eth|${(await this.getAddress()).slice(2)}`}getPrivateKey(){throw new w("Private key is not accessible with Gala Wallet. Use PrivateKeyProvider if you need private key access for @gala-chain operations.",g.PRIVATE_KEY_NOT_ACCESSIBLE)}getProvider(){return this.provider}}const N={provider:null,address:null,galaAddress:null,isConnected:!1,isConnecting:!1,isDetecting:!1,error:null,detectedWallets:[],connect:async()=>{throw new Error("WalletContext not initialized")},connectDetected:async()=>{throw new Error("WalletContext not initialized")},disconnect:async()=>{throw new Error("WalletContext not initialized")},setProvider:()=>{throw new Error("WalletContext not initialized")},refreshWallets:async()=>{throw new Error("WalletContext not initialized")},clearError:()=>{throw new Error("WalletContext not initialized")}},m=t.createContext(N),L="undefined"!=typeof window;function D(){const e=t.useContext(m);if(e===N)throw new Error("useWalletContext must be used within a WalletProvider");return e}let O=null;async function T(){if(!1===O)return null;try{const e=["@gala-chain","connect"].join("/"),t=await import(e);return O=!0,t}catch{return O=!1,null}}class W{constructor(e){if(this.providerType="external",this.connectedAddress=null,!e)throw new w("@gala-chain/connect client is required",g.INVALID_CONFIG);if("function"!=typeof e.signMessage)throw new w("Invalid @gala-chain/connect client: signMessage method is required",g.INVALID_CONFIG);this.client=e}static async createBrowserClient(e){const t=await T();if(null==t)throw new w("Failed to create BrowserConnectClient: @gala-chain/connect is not installed. Install it with: npm install @gala-chain/connect",g.PROVIDER_NOT_AVAILABLE);const{BrowserConnectClient:n}=t,r=n,s=e?new r(e):new r;return new W(s)}static async createTrustWalletClient(){const e=await T();if(null==e)throw new w("Failed to create TrustWalletConnectClient: @gala-chain/connect is not installed. Install it with: npm install @gala-chain/connect",g.PROVIDER_NOT_AVAILABLE);const{TrustWalletConnectClient:t}=e,n=new t;return new W(n)}static async isAvailable(){return null!==await T()}ensureConnected(){if(null===this.connectedAddress||void 0===this.connectedAddress)throw new w("Wallet is not connected. Call connect() first.",g.NOT_CONNECTED);return this.connectedAddress}async connect(){try{if("function"==typeof this.client.connect){const e=await this.client.connect();if(null!=e&&e.length>0)return this.connectedAddress=n.getAddress(e),this.connectedAddress}if("function"==typeof this.client.getAccount){const e=await this.client.getAccount();if(null!=e&&e.length>0)return this.connectedAddress=n.getAddress(e),this.connectedAddress}throw new w("Failed to connect: no account returned",g.CONNECTION_FAILED)}catch(e){if(e instanceof w)throw e;const t=e instanceof Error?e.message:String(e);if(t.length>0&&(t.includes("rejected")||t.includes("denied")))throw new w("User rejected connection",g.USER_REJECTED,e instanceof Error?e:void 0);throw new w("Failed to connect to wallet",g.CONNECTION_FAILED,e instanceof Error?e:void 0)}}async disconnect(){"function"==typeof this.client.disconnect&&await this.client.disconnect(),this.connectedAddress=null}isConnected(){return null!==this.connectedAddress}async signMessage(e){this.ensureConnected();try{return await this.client.signMessage(e)}catch(e){const t=e instanceof Error?e.message:String(e);if(t.includes("rejected")||t.includes("denied"))throw new w("User rejected signing",g.USER_REJECTED,e instanceof Error?e:void 0);throw new w("Failed to sign message",g.SIGNING_FAILED,e instanceof Error?e:void 0)}}signTypedData(e,t,n){return Promise.reject(new w("signTypedData is not supported by GalaChainConnectProvider. Use ExternalWalletProvider with the underlying EIP-1193 provider instead.",g.SIGNING_FAILED))}async getAddress(){return await Promise.resolve(),this.ensureConnected()}async getGalaAddress(){return`eth|${(await this.getAddress()).slice(2)}`}getPrivateKey(){return Promise.reject(new w("Private key is not accessible with @gala-chain/connect. Use PrivateKeyProvider if you need private key access.",g.PRIVATE_KEY_NOT_ACCESSIBLE))}getClient(){return this.client}}class P{constructor(e){this.providerType="privateKey",this.connected=!0;try{this.wallet=new n.Wallet(e)}catch(e){throw new w("Invalid private key provided",g.INVALID_CONFIG,e instanceof Error?e:void 0)}}static fromWallet(e){return new P(e.privateKey)}async signMessage(e){try{return await this.wallet.signMessage(e)}catch(e){throw new w("Failed to sign message",g.SIGNING_FAILED,e instanceof Error?e:void 0)}}async signTypedData(e,t,n){try{return await this.wallet.signTypedData(e,t,n)}catch(e){throw new w("Failed to sign typed data",g.SIGNING_FAILED,e instanceof Error?e:void 0)}}getAddress(){return Promise.resolve(n.getAddress(this.wallet.address))}async getGalaAddress(){return`eth|${(await this.getAddress()).slice(2)}`}async connect(){return this.connected=!0,this.getAddress()}disconnect(){return this.connected=!1,Promise.resolve()}isConnected(){return this.connected}getPrivateKey(){return Promise.resolve(this.wallet.privateKey)}getWallet(){return this.wallet}}exports.ExternalWalletProvider=y,exports.GalaChainConnectProvider=W,exports.KNOWN_WALLET_RDNS=r,exports.PrivateKeyProvider=P,exports.WalletContext=m,exports.WalletProvider=function({children:n,autoDetect:s=L,initialProvider:a,autoConnect:c=!0,onConnect:d,onDisconnect:l,onError:u}){const[h,A]=t.useState(a??null),[w,g]=t.useState(null),[E,v]=t.useState(null),[f,C]=t.useState(!1),[p,N]=t.useState(!1),[D,O]=t.useState(null),[T,W]=t.useState([]),P=null!==h&&null!==w,S=t.useCallback(()=>{O(null)},[]),M=t.useCallback(e=>{A(e),e||(g(null),v(null))},[]),G=t.useCallback(async e=>{C(!0),O(null);try{e.isConnected()||await e.connect();const t=await e.getAddress(),n=await e.getGalaAddress();return A(e),g(t),v(n),d?.(t,e),t}catch(e){const t=e instanceof Error?e:new Error(String(e));throw O(t),u?.(t),t}finally{C(!1)}},[d,u]),F=t.useCallback(async e=>{if(e.rdns===r.GALA){const t=new I(e.provider);return G(t)}const t=new y(e.provider);return G(t)},[G]),R=t.useCallback(async()=>{if(h)try{await h.disconnect()}catch{}A(null),g(null),v(null),O(null),l?.()},[h,l]),x=t.useCallback(async()=>{if(L){N(!0);try{let e=[...(await o()).wallets];const t=window;if(void 0!==t.gala&&!e.some(e=>e.rdns===r.GALA)){e=[{id:r.GALA,name:"Gala Wallet",rdns:r.GALA,icon:"",provider:t.gala,isInjected:!0},...e]}W(e)}catch{W([])}finally{N(!1)}}},[]);t.useEffect(()=>{if(!s||!L)return;x();const e=function(e){if(!i())return()=>{};let t=!0,n={wallets:[],byId:new Map,hasWallets:!1};const r=r=>{if(!t)return;const s=r,{info:i,provider:o}=s.detail,a=i.rdns||i.uuid;if(n.byId.has(a))return;const c={id:a,name:i.name,rdns:a,icon:i.icon??"",provider:o,isInjected:!1},d=[...n.wallets,c],l=new Map(n.byId);l.set(c.id,c),n={wallets:d,byId:l,hasWallets:!0,...void 0===d[0]?{}:{primary:d[0]}},e(n)};return window.addEventListener("eip6963:announceProvider",r),o().then(r=>{t&&(n=r,e(r))}),()=>{t=!1,window.removeEventListener("eip6963:announceProvider",r)}}(e=>{W(e.wallets)});return()=>{e()}},[s,x]),t.useEffect(()=>{a&&c&&!P&&!f&&G(a)},[a,c,P,f,G]);const V=t.useMemo(()=>({provider:h,address:w,galaAddress:E,isConnected:P,isConnecting:f,isDetecting:p,error:D,detectedWallets:T,connect:G,connectDetected:F,disconnect:R,setProvider:M,refreshWallets:x,clearError:S}),[h,w,E,P,f,p,D,T,G,F,R,M,x,S]);return e.jsx(m.Provider,{value:V,children:n})},exports.detectWallets=o,exports.useGalaAddress=function(){const{galaAddress:e}=D();return e},exports.useIsWalletConnected=function(){const{isConnected:e}=D();return e},exports.useWallet=function(){return D()},exports.useWalletAddress=function(){const{address:e}=D();return e},exports.useWalletConnection=function(){const{isConnecting:e,isConnected:n,error:r,connect:s,connectDetected:i,disconnect:o,clearError:a}=D(),c=t.useMemo(()=>e?"connecting":r?"error":n?"connected":"disconnected",[e,r,n]);return t.useMemo(()=>({status:c,isConnecting:e,isConnected:n,error:r,connect:s,connectDetected:i,disconnect:o,clearError:a}),[c,e,n,r,s,i,o,a])},exports.useWalletContext=D,exports.useWalletDetection=function(){const{detectedWallets:e,isDetecting:n,refreshWallets:s}=D(),i=t.useMemo(()=>t=>e.some(e=>e.rdns===t),[e]),o=t.useMemo(()=>t=>e.find(e=>e.rdns===t),[e]),a=t.useMemo(()=>e.some(e=>e.rdns===r.METAMASK),[e]),c=t.useMemo(()=>e.some(e=>e.rdns===r.COINBASE),[e]),d=e.length>0;return t.useMemo(()=>({wallets:e,isDetecting:n,refresh:s,hasWallet:i,getWallet:o,hasMetaMask:a,hasCoinbaseWallet:c,hasAnyWallet:d}),[e,n,s,i,o,a,c,d])},exports.useWalletProvider=function(){const{provider:e}=D();return e};
|
|
1
|
+
"use strict";var e=require("react/jsx-runtime"),t=require("react"),n=require("ethers");const r={METAMASK:"io.metamask",METAMASK_FLASK:"io.metamask.flask",COINBASE:"com.coinbase.wallet",TRUST_WALLET:"com.trustwallet.app",PHANTOM:"app.phantom",RAINBOW:"me.rainbow",OKX:"com.okex.wallet",RABBY:"io.rabby",BRAVE:"com.brave.wallet",FRAME:"sh.frame",LEDGER:"com.ledger",ZERION:"io.zerion.wallet",GALA:"com.gala.wallet"},s={[r.METAMASK]:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIxLjU0IDQuMjJsLTguMzQgNi4yMSAxLjU0LTMuNjUtLTUuNTMtMi41MXoiIGZpbGw9IiNFMjc2MUIiLz48L3N2Zz4=",[r.GALA]:"data:image/png;base64,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"};function o(){return"undefined"!=typeof window&&"function"==typeof window.dispatchEvent}function i(e){return"object"==typeof e&&null!==e&&"function"==typeof e.request}async function a(e=500){const t=[],n=new Map;return o()?new Promise(a=>{const d=new Set,c=e=>{const r=e,{info:o,provider:i}=r.detail;if(d.has(o.uuid))return;d.add(o.uuid);const a={id:o.rdns||o.uuid,name:o.name,rdns:o.rdns||o.uuid,icon:o.icon??s[o.rdns||""]??"",provider:i,isInjected:!1};t.push(a),n.set(a.id,a)};window.addEventListener("eip6963:announceProvider",c),window.dispatchEvent(new Event("eip6963:requestProvider")),setTimeout(()=>{if(window.removeEventListener("eip6963:announceProvider",c),0===t.length){const e=o()?window.ethereum??null:null;if(e){const o=window;let i="Browser Wallet",a="injected";o.ethereum?.isMetaMask?(i="MetaMask",a=r.METAMASK):o.ethereum?.isCoinbaseWallet?(i="Coinbase Wallet",a=r.COINBASE):o.ethereum?.isTrust&&(i="Trust Wallet",a=r.TRUST_WALLET);const d={id:a,name:i,rdns:a,icon:s[a]??"",provider:e,isInjected:!0};t.push(d),n.set(d.id,d)}}if(!n.has(r.TRUST_WALLET)){const e=function(){if(!o())return null;const e=window;if(i(e.ethereum)&&e.ethereum.isTrust)return e.ethereum;const t=e.ethereum?.providers?.find(e=>i(e)&&!0===e.isTrust);return void 0!==t?t:i(e.trustwallet)?e.trustwallet:null}();if(null!==e&&!t.some(t=>t.provider===e)){const o={id:r.TRUST_WALLET,name:"Trust Wallet",rdns:r.TRUST_WALLET,icon:s[r.TRUST_WALLET]??"",provider:e,isInjected:!0};t.push(o),n.set(o.id,o)}}const e=window;if(e.gala?.request&&!n.has(r.GALA)){const o={id:r.GALA,name:"Gala Wallet",rdns:r.GALA,icon:s[r.GALA]??"",provider:e.gala,isInjected:!0};t.push(o),n.set(o.id,o)}a({wallets:t,byId:n,hasWallets:t.length>0,...void 0===t[0]?{}:{primary:t[0]}})},e)}):{wallets:t,byId:n,hasWallets:!1}}function d(e,t,n){return{types:{EIP712Domain:c(e),...t},primaryType:Object.keys(t)[0],domain:l(e),message:n}}function c(e){const t=[];return void 0!==e.name&&t.push({name:"name",type:"string"}),void 0!==e.version&&t.push({name:"version",type:"string"}),void 0!==e.chainId&&t.push({name:"chainId",type:"uint256"}),void 0!==e.verifyingContract&&t.push({name:"verifyingContract",type:"address"}),void 0!==e.salt&&t.push({name:"salt",type:"bytes32"}),t}function l(e){const t={};return void 0!==e.name&&(t.name=e.name),void 0!==e.version&&(t.version=e.version),void 0!==e.chainId&&(t.chainId="bigint"==typeof e.chainId||"number"==typeof e.chainId?`0x${e.chainId.toString(16)}`:e.chainId),void 0!==e.verifyingContract&&(t.verifyingContract=e.verifyingContract),void 0!==e.salt&&(t.salt=e.salt),t}function u(e){return`0x${Buffer.from(e,"utf8").toString("hex")}`}async function h(e,t,n){return e.request({method:"personal_sign",params:[u(n),t]})}async function A(e,t,n,r,s){return e.request({method:"eth_signTypedData_v4",params:[t,JSON.stringify(d(n,r,s))]})}class w{constructor(e){this.connectedAddress=null,this.provider=e,this.eventHandlers=function(e,t,r){if(null==e||"function"!=typeof e.on)return{accountsChanged:null,disconnect:null};const s=e=>{const r=e[0];t(void 0===r?null:n.getAddress(r))},o=()=>r();return e.on("accountsChanged",s),e.on("disconnect",o),{accountsChanged:s,disconnect:o}}(e,e=>{this.connectedAddress=e},()=>{this.connectedAddress=null})}removeEventListeners(){!function(e,t){if("function"!=typeof e.removeListener)return;null!==t.accountsChanged&&e.removeListener("accountsChanged",t.accountsChanged);null!==t.disconnect&&e.removeListener("disconnect",t.disconnect)}(this.provider,this.eventHandlers)}}class v extends Error{constructor(e,t,n){super(e),this.code=t,this.originalError=n,this.name="WalletProviderError"}}var E;async function g(e,t,n){try{return await e()}catch(e){if(e instanceof v)throw e;return t(e,n)}}!function(e){e.USER_REJECTED="USER_REJECTED",e.NOT_CONNECTED="NOT_CONNECTED",e.CONNECTION_FAILED="CONNECTION_FAILED",e.SIGNING_FAILED="SIGNING_FAILED",e.PROVIDER_NOT_AVAILABLE="PROVIDER_NOT_AVAILABLE",e.PRIVATE_KEY_NOT_ACCESSIBLE="PRIVATE_KEY_NOT_ACCESSIBLE",e.INVALID_CONFIG="INVALID_CONFIG",e.CHAIN_MISMATCH="CHAIN_MISMATCH",e.UNKNOWN="UNKNOWN"}(E||(E={}));const p=4001,f=4100,m=4900,y=4901;class N extends w{constructor(e){if(super(e),this.providerType="external",null==e)throw new v("EIP-1193 provider is required",E.INVALID_CONFIG)}handleProviderError(e,t){const n=e;if(n.code===p)throw new v(`User rejected ${t}`,E.USER_REJECTED,e instanceof Error?e:void 0);if(n.code===f)throw new v("Wallet is not authorized",E.NOT_CONNECTED,e instanceof Error?e:void 0);if(n.code===m||n.code===y)throw this.connectedAddress=null,new v("Wallet disconnected",E.NOT_CONNECTED,e instanceof Error?e:void 0);throw new v(n.message??`${t} failed`,t.includes("sign")?E.SIGNING_FAILED:E.UNKNOWN,e instanceof Error?e:void 0)}ensureConnected(){if(!this.connectedAddress)throw new v("Wallet is not connected. Call connect() first.",E.NOT_CONNECTED)}async connect(){try{const e=await this.provider.request({method:"eth_requestAccounts"});if(null==e||0===e.length)throw new v("No accounts returned from wallet",E.CONNECTION_FAILED);const t=e[0];if(void 0===t)throw new v("No accounts returned from wallet",E.CONNECTION_FAILED);return this.connectedAddress=n.getAddress(t),this.connectedAddress}catch(e){if(e instanceof v)throw e;return this.handleProviderError(e,"connect")}}async disconnect(){this.connectedAddress=null,this.removeEventListeners();try{await this.provider.request({method:"wallet_revokePermissions",params:[{eth_accounts:{}}]})}catch{}}isConnected(){return null!==this.connectedAddress}async signMessage(e){return this.ensureConnected(),g(()=>h(this.provider,this.connectedAddress,e),(e,t)=>this.handleProviderError(e,t),"sign message")}async signTypedData(e,t,n){return this.ensureConnected(),g(()=>A(this.provider,this.connectedAddress,e,t,n),(e,t)=>this.handleProviderError(e,t),"sign typed data")}async getAddress(){await Promise.resolve(),this.ensureConnected();const e=this.connectedAddress;if(null==e)throw new v("Wallet is not connected",E.NOT_CONNECTED);return e}async getGalaAddress(){return`eth|${(await this.getAddress()).slice(2)}`}async getPrivateKey(){return Promise.reject(new v("Private key is not accessible with external wallet providers. Use PrivateKeyProvider if you need private key access for @gala-chain operations.",E.PRIVATE_KEY_NOT_ACCESSIBLE))}getProvider(){return this.provider}}class C extends w{constructor(e){if(super(e),this.providerType="external",this.galaRawAddress=null,!e)throw new v("Gala Wallet provider is required",E.PROVIDER_NOT_AVAILABLE)}parseGalaError(e){if(e instanceof Error)try{const t=JSON.parse(e.message);if("object"==typeof t&&null!==t){const n=t,r={message:"string"==typeof n.message?n.message:e.message};return"number"==typeof n.code&&(r.code=n.code),r}return{message:e.message}}catch{return{message:e.message}}return{message:String(e)}}handleProviderError(e,t){const n=this.parseGalaError(e);if(4001===n.code)throw new v(`User rejected ${t}`,E.USER_REJECTED,e instanceof Error?e:void 0);if(4900===n.code)throw this.connectedAddress=null,new v("Wallet disconnected",E.NOT_CONNECTED,e instanceof Error?e:void 0);const r=n.message?n.message:`${t} failed`;throw new v(r,t.includes("sign")?E.SIGNING_FAILED:E.UNKNOWN,e instanceof Error?e:void 0)}ensureConnected(){if(null===this.connectedAddress||void 0===this.connectedAddress)throw new v("Wallet is not connected. Call connect() first.",E.NOT_CONNECTED)}async connect(){try{const e=await this.provider.request({method:"eth_requestAccounts"});if(null==e||0===e.length)throw new v("No accounts returned from Gala Wallet",E.CONNECTION_FAILED);const t=e[0];if(void 0===t)throw new v("No accounts returned from Gala Wallet",E.CONNECTION_FAILED);this.galaRawAddress=t;let r=t;return r.startsWith("eth|")?r=`0x${r.slice(4)}`:r.startsWith("0x")||(r=`0x${r}`),this.connectedAddress=n.getAddress(r),this.connectedAddress}catch(e){if(e instanceof v)throw e;return this.handleProviderError(e,"connect")}}async disconnect(){this.connectedAddress=null,this.galaRawAddress=null,this.removeEventListeners();try{await this.provider.disconnect()}catch{}}isConnected(){return null!==this.connectedAddress}async signMessage(e){return this.ensureConnected(),g(async()=>(await this.provider.setAddress(this.galaRawAddress??this.connectedAddress),h(this.provider,this.connectedAddress,e)),(e,t)=>this.handleProviderError(e,t),"sign message")}async signTypedData(e,t,n){return this.ensureConnected(),g(async()=>(await this.provider.setAddress(this.galaRawAddress??this.connectedAddress),A(this.provider,this.connectedAddress,e,t,n)),(e,t)=>this.handleProviderError(e,t),"sign typed data")}getAddress(){return this.ensureConnected(),Promise.resolve(this.connectedAddress)}async getGalaAddress(){return`eth|${(await this.getAddress()).slice(2)}`}getPrivateKey(){throw new v("Private key is not accessible with Gala Wallet. Use PrivateKeyProvider if you need private key access for @gala-chain operations.",E.PRIVATE_KEY_NOT_ACCESSIBLE)}getProvider(){return this.provider}}const I={provider:null,address:null,galaAddress:null,isConnected:!1,isConnecting:!1,isDetecting:!1,error:null,detectedWallets:[],connect:async()=>{throw new Error("WalletContext not initialized")},connectDetected:async()=>{throw new Error("WalletContext not initialized")},disconnect:async()=>{throw new Error("WalletContext not initialized")},setProvider:()=>{throw new Error("WalletContext not initialized")},refreshWallets:async()=>{throw new Error("WalletContext not initialized")},clearError:()=>{throw new Error("WalletContext not initialized")}},L=t.createContext(I),T="undefined"!=typeof window;function W(){const e=t.useContext(L);if(e===I)throw new Error("useWalletContext must be used within a WalletProvider");return e}class D{constructor(e){this.providerType="privateKey",this.connected=!0;try{this.wallet=new n.Wallet(e)}catch(e){throw new v("Invalid private key provided",E.INVALID_CONFIG,e instanceof Error?e:void 0)}}static fromWallet(e){return new D(e.privateKey)}async signMessage(e){try{return await this.wallet.signMessage(e)}catch(e){throw new v("Failed to sign message",E.SIGNING_FAILED,e instanceof Error?e:void 0)}}async signTypedData(e,t,n){try{return await this.wallet.signTypedData(e,t,n)}catch(e){throw new v("Failed to sign typed data",E.SIGNING_FAILED,e instanceof Error?e:void 0)}}getAddress(){return Promise.resolve(n.getAddress(this.wallet.address))}async getGalaAddress(){return`eth|${(await this.getAddress()).slice(2)}`}async connect(){return this.connected=!0,this.getAddress()}disconnect(){return this.connected=!1,Promise.resolve()}isConnected(){return this.connected}getPrivateKey(){return Promise.resolve(this.wallet.privateKey)}getWallet(){return this.wallet}}exports.ExternalWalletProvider=N,exports.KNOWN_WALLET_RDNS=r,exports.PrivateKeyProvider=D,exports.WalletContext=L,exports.WalletProvider=function({children:n,autoDetect:s=T,initialProvider:i,autoConnect:d=!0,onConnect:c,onDisconnect:l,onError:u}){const[h,A]=t.useState(i??null),[w,v]=t.useState(null),[E,g]=t.useState(null),[p,f]=t.useState(!1),[m,y]=t.useState(!1),[I,W]=t.useState(null),[D,O]=t.useState([]),S=null!==h&&null!==w,M=t.useCallback(()=>{W(null)},[]),P=t.useCallback(e=>{A(e),e||(v(null),g(null))},[]),G=t.useCallback(async e=>{f(!0),W(null);try{e.isConnected()||await e.connect();const t=await e.getAddress(),n=await e.getGalaAddress();return A(e),v(t),g(n),c?.(t,e),t}catch(e){const t=e instanceof Error?e:new Error(String(e));throw W(t),u?.(t),t}finally{f(!1)}},[c,u]),x=t.useCallback(async e=>{if(e.rdns===r.GALA){const t=new C(e.provider);return G(t)}const t=new N(e.provider);return G(t)},[G]),R=t.useCallback(async()=>{if(h)try{await h.disconnect()}catch{}A(null),v(null),g(null),W(null),l?.()},[h,l]),b=t.useCallback(async()=>{if(T){y(!0);try{let e=[...(await a()).wallets];const t=window;if(void 0!==t.gala&&!e.some(e=>e.rdns===r.GALA)){e=[{id:r.GALA,name:"Gala Wallet",rdns:r.GALA,icon:"",provider:t.gala,isInjected:!0},...e]}O(e)}catch{O([])}finally{y(!1)}}},[]);t.useEffect(()=>{if(!s||!T)return;b();const e=function(e){if(!o())return()=>{};let t=!0,n={wallets:[],byId:new Map,hasWallets:!1};const r=r=>{if(!t)return;const s=r,{info:o,provider:i}=s.detail,a=o.rdns||o.uuid;if(n.byId.has(a))return;const d={id:a,name:o.name,rdns:a,icon:o.icon??"",provider:i,isInjected:!1},c=[...n.wallets,d],l=new Map(n.byId);l.set(d.id,d),n={wallets:c,byId:l,hasWallets:!0,...void 0===c[0]?{}:{primary:c[0]}},e(n)};return window.addEventListener("eip6963:announceProvider",r),a().then(r=>{t&&(n=r,e(r))}),()=>{t=!1,window.removeEventListener("eip6963:announceProvider",r)}}(e=>{O(e.wallets)});return()=>{e()}},[s,b]),t.useEffect(()=>{i&&d&&!S&&!p&&G(i)},[i,d,S,p,G]);const U=t.useMemo(()=>({provider:h,address:w,galaAddress:E,isConnected:S,isConnecting:p,isDetecting:m,error:I,detectedWallets:D,connect:G,connectDetected:x,disconnect:R,setProvider:P,refreshWallets:b,clearError:M}),[h,w,E,S,p,m,I,D,G,x,R,P,b,M]);return e.jsx(L.Provider,{value:U,children:n})},exports.detectWallets=a,exports.useGalaAddress=function(){const{galaAddress:e}=W();return e},exports.useIsWalletConnected=function(){const{isConnected:e}=W();return e},exports.useWallet=function(){return W()},exports.useWalletAddress=function(){const{address:e}=W();return e},exports.useWalletConnection=function(){const{isConnecting:e,isConnected:n,error:r,connect:s,connectDetected:o,disconnect:i,clearError:a}=W(),d=t.useMemo(()=>e?"connecting":r?"error":n?"connected":"disconnected",[e,r,n]);return t.useMemo(()=>({status:d,isConnecting:e,isConnected:n,error:r,connect:s,connectDetected:o,disconnect:i,clearError:a}),[d,e,n,r,s,o,i,a])},exports.useWalletContext=W,exports.useWalletDetection=function(){const{detectedWallets:e,isDetecting:n,refreshWallets:s}=W(),o=t.useMemo(()=>t=>e.some(e=>e.rdns===t),[e]),i=t.useMemo(()=>t=>e.find(e=>e.rdns===t),[e]),a=t.useMemo(()=>e.some(e=>e.rdns===r.METAMASK),[e]),d=t.useMemo(()=>e.some(e=>e.rdns===r.COINBASE),[e]),c=e.length>0;return t.useMemo(()=>({wallets:e,isDetecting:n,refresh:s,hasWallet:o,getWallet:i,hasMetaMask:a,hasCoinbaseWallet:d,hasAnyWallet:c}),[e,n,s,o,i,a,d,c])},exports.useWalletProvider=function(){const{provider:e}=W();return e};
|
package/dist/react.esm.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
if(void 0===globalThis.process&&(globalThis.process={env:{},versions:{},platform:"browser"}),void 0===globalThis.Buffer){var e=function(e){return"number"==typeof e||ArrayBuffer,new Uint8Array(e)};e.isBuffer=function(){return!1},e.from=function(e,n){if("string"==typeof e){if("hex"===n){var t=(e.match(/.{1,2}/g)||[]).map(function(e){return parseInt(e,16)});return new Uint8Array(t)}return(new TextEncoder).encode(e)}return e instanceof ArrayBuffer?new Uint8Array(e):ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):new Uint8Array(e)},e.alloc=function(e){return new Uint8Array(e)},e.concat=function(e){for(var n=0,t=0;t<e.length;t++)n+=e[t].length;for(var r=new Uint8Array(n),s=0,i=0;i<e.length;i++)r.set(e[i],s),s+=e[i].length;return r},e.prototype=Object.create(Uint8Array.prototype),globalThis.Buffer=e}import{jsx as n}from"react/jsx-runtime";import{createContext as t,useState as r,useCallback as s,useEffect as i,useMemo as o,useContext as a}from"react";import{getAddress as c,Wallet as d}from"ethers";const l={METAMASK:"io.metamask",METAMASK_FLASK:"io.metamask.flask",COINBASE:"com.coinbase.wallet",TRUST_WALLET:"com.trustwallet.app",PHANTOM:"app.phantom",RAINBOW:"me.rainbow",OKX:"com.okex.wallet",RABBY:"io.rabby",BRAVE:"com.brave.wallet",FRAME:"sh.frame",LEDGER:"com.ledger",ZERION:"io.zerion.wallet",GALA:"com.gala.wallet"},u={[l.METAMASK]:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIxLjU0IDQuMjJsLTguMzQgNi4yMSAxLjU0LTMuNjUtLTUuNTMtMi41MXoiIGZpbGw9IiNFMjc2MUIiLz48L3N2Zz4=",[l.GALA]:"data:image/png;base64,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"};function h(){return"undefined"!=typeof window&&"function"==typeof window.dispatchEvent}async function A(e=500){const n=[],t=new Map;return h()?new Promise(r=>{const s=new Set,i=e=>{const r=e,{info:i,provider:o}=r.detail;if(s.has(i.uuid))return;s.add(i.uuid);const a={id:i.rdns||i.uuid,name:i.name,rdns:i.rdns||i.uuid,icon:i.icon??u[i.rdns||""]??"",provider:o,isInjected:!1};n.push(a),t.set(a.id,a)};window.addEventListener("eip6963:announceProvider",i),window.dispatchEvent(new Event("eip6963:requestProvider")),setTimeout(()=>{if(window.removeEventListener("eip6963:announceProvider",i),0===n.length){const e=h()?window.ethereum??null:null;if(e){const r=window;let s="Browser Wallet",i="injected";r.ethereum?.isMetaMask?(s="MetaMask",i=l.METAMASK):r.ethereum?.isCoinbaseWallet?(s="Coinbase Wallet",i=l.COINBASE):r.ethereum?.isTrust&&(s="Trust Wallet",i=l.TRUST_WALLET);const o={id:i,name:s,rdns:i,icon:u[i]??"",provider:e,isInjected:!0};n.push(o),t.set(o.id,o)}}const e=window;if(e.gala?.request&&!t.has(l.GALA)){const r={id:l.GALA,name:"Gala Wallet",rdns:l.GALA,icon:u[l.GALA]??"",provider:e.gala,isInjected:!0};n.push(r),t.set(r.id,r)}r({wallets:n,byId:t,hasWallets:n.length>0,...void 0===n[0]?{}:{primary:n[0]}})},e)}):{wallets:n,byId:t,hasWallets:!1}}function w(e,n,t){return{types:{EIP712Domain:f(e),...n},primaryType:Object.keys(n)[0],domain:g(e),message:t}}function f(e){const n=[];return void 0!==e.name&&n.push({name:"name",type:"string"}),void 0!==e.version&&n.push({name:"version",type:"string"}),void 0!==e.chainId&&n.push({name:"chainId",type:"uint256"}),void 0!==e.verifyingContract&&n.push({name:"verifyingContract",type:"address"}),void 0!==e.salt&&n.push({name:"salt",type:"bytes32"}),n}function g(e){const n={};return void 0!==e.name&&(n.name=e.name),void 0!==e.version&&(n.version=e.version),void 0!==e.chainId&&(n.chainId="bigint"==typeof e.chainId||"number"==typeof e.chainId?`0x${e.chainId.toString(16)}`:e.chainId),void 0!==e.verifyingContract&&(n.verifyingContract=e.verifyingContract),void 0!==e.salt&&(n.salt=e.salt),n}function v(e){return`0x${Buffer.from(e,"utf8").toString("hex")}`}async function E(e,n,t){return e.request({method:"personal_sign",params:[v(t),n]})}async function y(e,n,t,r,s){return e.request({method:"eth_signTypedData_v4",params:[n,JSON.stringify(w(t,r,s))]})}class p{constructor(e){this.connectedAddress=null,this.provider=e,this.eventHandlers=function(e,n,t){if(null==e||"function"!=typeof e.on)return{accountsChanged:null,disconnect:null};const r=e=>{const t=e[0];n(void 0===t?null:c(t))},s=()=>t();return e.on("accountsChanged",r),e.on("disconnect",s),{accountsChanged:r,disconnect:s}}(e,e=>{this.connectedAddress=e},()=>{this.connectedAddress=null})}removeEventListeners(){!function(e,n){if("function"!=typeof e.removeListener)return;null!==n.accountsChanged&&e.removeListener("accountsChanged",n.accountsChanged);null!==n.disconnect&&e.removeListener("disconnect",n.disconnect)}(this.provider,this.eventHandlers)}}class I extends Error{constructor(e,n,t){super(e),this.code=n,this.originalError=t,this.name="WalletProviderError"}}var C;async function N(e,n,t){try{return await e()}catch(e){if(e instanceof I)throw e;return n(e,t)}}!function(e){e.USER_REJECTED="USER_REJECTED",e.NOT_CONNECTED="NOT_CONNECTED",e.CONNECTION_FAILED="CONNECTION_FAILED",e.SIGNING_FAILED="SIGNING_FAILED",e.PROVIDER_NOT_AVAILABLE="PROVIDER_NOT_AVAILABLE",e.PRIVATE_KEY_NOT_ACCESSIBLE="PRIVATE_KEY_NOT_ACCESSIBLE",e.INVALID_CONFIG="INVALID_CONFIG",e.CHAIN_MISMATCH="CHAIN_MISMATCH",e.UNKNOWN="UNKNOWN"}(C||(C={}));const m=4001,L=4100,O=4900,T=4901;class D extends p{constructor(e){if(super(e),this.providerType="external",null==e)throw new I("EIP-1193 provider is required",C.INVALID_CONFIG)}handleProviderError(e,n){const t=e;if(t.code===m)throw new I(`User rejected ${n}`,C.USER_REJECTED,e instanceof Error?e:void 0);if(t.code===L)throw new I("Wallet is not authorized",C.NOT_CONNECTED,e instanceof Error?e:void 0);if(t.code===O||t.code===T)throw this.connectedAddress=null,new I("Wallet disconnected",C.NOT_CONNECTED,e instanceof Error?e:void 0);throw new I(t.message??`${n} failed`,n.includes("sign")?C.SIGNING_FAILED:C.UNKNOWN,e instanceof Error?e:void 0)}ensureConnected(){if(!this.connectedAddress)throw new I("Wallet is not connected. Call connect() first.",C.NOT_CONNECTED)}async connect(){try{const e=await this.provider.request({method:"eth_requestAccounts"});if(null==e||0===e.length)throw new I("No accounts returned from wallet",C.CONNECTION_FAILED);const n=e[0];if(void 0===n)throw new I("No accounts returned from wallet",C.CONNECTION_FAILED);return this.connectedAddress=c(n),this.connectedAddress}catch(e){if(e instanceof I)throw e;return this.handleProviderError(e,"connect")}}async disconnect(){this.connectedAddress=null,this.removeEventListeners();try{await this.provider.request({method:"wallet_revokePermissions",params:[{eth_accounts:{}}]})}catch{}}isConnected(){return null!==this.connectedAddress}async signMessage(e){return this.ensureConnected(),N(()=>E(this.provider,this.connectedAddress,e),(e,n)=>this.handleProviderError(e,n),"sign message")}async signTypedData(e,n,t){return this.ensureConnected(),N(()=>y(this.provider,this.connectedAddress,e,n,t),(e,n)=>this.handleProviderError(e,n),"sign typed data")}async getAddress(){await Promise.resolve(),this.ensureConnected();const e=this.connectedAddress;if(null==e)throw new I("Wallet is not connected",C.NOT_CONNECTED);return e}async getGalaAddress(){return`eth|${(await this.getAddress()).slice(2)}`}async getPrivateKey(){return Promise.reject(new I("Private key is not accessible with external wallet providers. Use PrivateKeyProvider if you need private key access for @gala-chain operations.",C.PRIVATE_KEY_NOT_ACCESSIBLE))}getProvider(){return this.provider}}class P extends p{constructor(e){if(super(e),this.providerType="external",this.galaRawAddress=null,!e)throw new I("Gala Wallet provider is required",C.PROVIDER_NOT_AVAILABLE)}parseGalaError(e){if(e instanceof Error)try{const n=JSON.parse(e.message);if("object"==typeof n&&null!==n){const t=n,r={message:"string"==typeof t.message?t.message:e.message};return"number"==typeof t.code&&(r.code=t.code),r}return{message:e.message}}catch{return{message:e.message}}return{message:String(e)}}handleProviderError(e,n){const t=this.parseGalaError(e);if(4001===t.code)throw new I(`User rejected ${n}`,C.USER_REJECTED,e instanceof Error?e:void 0);if(4900===t.code)throw this.connectedAddress=null,new I("Wallet disconnected",C.NOT_CONNECTED,e instanceof Error?e:void 0);const r=t.message?t.message:`${n} failed`;throw new I(r,n.includes("sign")?C.SIGNING_FAILED:C.UNKNOWN,e instanceof Error?e:void 0)}ensureConnected(){if(null===this.connectedAddress||void 0===this.connectedAddress)throw new I("Wallet is not connected. Call connect() first.",C.NOT_CONNECTED)}async connect(){try{const e=await this.provider.request({method:"eth_requestAccounts"});if(null==e||0===e.length)throw new I("No accounts returned from Gala Wallet",C.CONNECTION_FAILED);const n=e[0];if(void 0===n)throw new I("No accounts returned from Gala Wallet",C.CONNECTION_FAILED);this.galaRawAddress=n;let t=n;return t.startsWith("eth|")?t=`0x${t.slice(4)}`:t.startsWith("0x")||(t=`0x${t}`),this.connectedAddress=c(t),this.connectedAddress}catch(e){if(e instanceof I)throw e;return this.handleProviderError(e,"connect")}}async disconnect(){this.connectedAddress=null,this.galaRawAddress=null,this.removeEventListeners();try{await this.provider.disconnect()}catch{}}isConnected(){return null!==this.connectedAddress}async signMessage(e){return this.ensureConnected(),N(async()=>(await this.provider.setAddress(this.galaRawAddress??this.connectedAddress),E(this.provider,this.connectedAddress,e)),(e,n)=>this.handleProviderError(e,n),"sign message")}async signTypedData(e,n,t){return this.ensureConnected(),N(async()=>(await this.provider.setAddress(this.galaRawAddress??this.connectedAddress),y(this.provider,this.connectedAddress,e,n,t)),(e,n)=>this.handleProviderError(e,n),"sign typed data")}getAddress(){return this.ensureConnected(),Promise.resolve(this.connectedAddress)}async getGalaAddress(){return`eth|${(await this.getAddress()).slice(2)}`}getPrivateKey(){throw new I("Private key is not accessible with Gala Wallet. Use PrivateKeyProvider if you need private key access for @gala-chain operations.",C.PRIVATE_KEY_NOT_ACCESSIBLE)}getProvider(){return this.provider}}const S={provider:null,address:null,galaAddress:null,isConnected:!1,isConnecting:!1,isDetecting:!1,error:null,detectedWallets:[],connect:async()=>{throw new Error("WalletContext not initialized")},connectDetected:async()=>{throw new Error("WalletContext not initialized")},disconnect:async()=>{throw new Error("WalletContext not initialized")},setProvider:()=>{throw new Error("WalletContext not initialized")},refreshWallets:async()=>{throw new Error("WalletContext not initialized")},clearError:()=>{throw new Error("WalletContext not initialized")}},M=t(S),W="undefined"!=typeof window;function G({children:e,autoDetect:t=W,initialProvider:a,autoConnect:c=!0,onConnect:d,onDisconnect:u,onError:w}){const[f,g]=r(a??null),[v,E]=r(null),[y,p]=r(null),[I,C]=r(!1),[N,m]=r(!1),[L,O]=r(null),[T,S]=r([]),G=null!==f&&null!==v,U=s(()=>{O(null)},[]),B=s(e=>{g(e),e||(E(null),p(null))},[]),F=s(async e=>{C(!0),O(null);try{e.isConnected()||await e.connect();const n=await e.getAddress(),t=await e.getGalaAddress();return g(e),E(n),p(t),d?.(n,e),n}catch(e){const n=e instanceof Error?e:new Error(String(e));throw O(n),w?.(n),n}finally{C(!1)}},[d,w]),b=s(async e=>{if(e.rdns===l.GALA){const n=new P(e.provider);return F(n)}const n=new D(e.provider);return F(n)},[F]),R=s(async()=>{if(f)try{await f.disconnect()}catch{}g(null),E(null),p(null),O(null),u?.()},[f,u]),V=s(async()=>{if(W){m(!0);try{let e=[...(await A()).wallets];const n=window;if(void 0!==n.gala&&!e.some(e=>e.rdns===l.GALA)){e=[{id:l.GALA,name:"Gala Wallet",rdns:l.GALA,icon:"",provider:n.gala,isInjected:!0},...e]}S(e)}catch{S([])}finally{m(!1)}}},[]);i(()=>{if(!t||!W)return;V();const e=function(e){if(!h())return()=>{};let n=!0,t={wallets:[],byId:new Map,hasWallets:!1};const r=r=>{if(!n)return;const s=r,{info:i,provider:o}=s.detail,a=i.rdns||i.uuid;if(t.byId.has(a))return;const c={id:a,name:i.name,rdns:a,icon:i.icon??"",provider:o,isInjected:!1},d=[...t.wallets,c],l=new Map(t.byId);l.set(c.id,c),t={wallets:d,byId:l,hasWallets:!0,...void 0===d[0]?{}:{primary:d[0]}},e(t)};return window.addEventListener("eip6963:announceProvider",r),A().then(r=>{n&&(t=r,e(r))}),()=>{n=!1,window.removeEventListener("eip6963:announceProvider",r)}}(e=>{S(e.wallets)});return()=>{e()}},[t,V]),i(()=>{a&&c&&!G&&!I&&F(a)},[a,c,G,I,F]);const _=o(()=>({provider:f,address:v,galaAddress:y,isConnected:G,isConnecting:I,isDetecting:N,error:L,detectedWallets:T,connect:F,connectDetected:b,disconnect:R,setProvider:B,refreshWallets:V,clearError:U}),[f,v,y,G,I,N,L,T,F,b,R,B,V,U]);return n(M.Provider,{value:_,children:e})}function U(){const e=a(M);if(e===S)throw new Error("useWalletContext must be used within a WalletProvider");return e}function B(){return U()}function F(){const{address:e}=U();return e}function b(){const{galaAddress:e}=U();return e}function R(){const{isConnected:e}=U();return e}function V(){const{provider:e}=U();return e}function _(){const{isConnecting:e,isConnected:n,error:t,connect:r,connectDetected:s,disconnect:i,clearError:a}=U(),c=o(()=>e?"connecting":t?"error":n?"connected":"disconnected",[e,t,n]);return o(()=>({status:c,isConnecting:e,isConnected:n,error:t,connect:r,connectDetected:s,disconnect:i,clearError:a}),[c,e,n,t,r,s,i,a])}function j(){const{detectedWallets:e,isDetecting:n,refreshWallets:t}=U(),r=o(()=>n=>e.some(e=>e.rdns===n),[e]),s=o(()=>n=>e.find(e=>e.rdns===n),[e]),i=o(()=>e.some(e=>e.rdns===l.METAMASK),[e]),a=o(()=>e.some(e=>e.rdns===l.COINBASE),[e]),c=e.length>0;return o(()=>({wallets:e,isDetecting:n,refresh:t,hasWallet:r,getWallet:s,hasMetaMask:i,hasCoinbaseWallet:a,hasAnyWallet:c}),[e,n,t,r,s,i,a,c])}let K=null;async function x(){if(!1===K)return null;try{const e=["@gala-chain","connect"].join("/"),n=await import(e);return K=!0,n}catch{return K=!1,null}}class Q{constructor(e){if(this.providerType="external",this.connectedAddress=null,!e)throw new I("@gala-chain/connect client is required",C.INVALID_CONFIG);if("function"!=typeof e.signMessage)throw new I("Invalid @gala-chain/connect client: signMessage method is required",C.INVALID_CONFIG);this.client=e}static async createBrowserClient(e){const n=await x();if(null==n)throw new I("Failed to create BrowserConnectClient: @gala-chain/connect is not installed. Install it with: npm install @gala-chain/connect",C.PROVIDER_NOT_AVAILABLE);const{BrowserConnectClient:t}=n,r=t,s=e?new r(e):new r;return new Q(s)}static async createTrustWalletClient(){const e=await x();if(null==e)throw new I("Failed to create TrustWalletConnectClient: @gala-chain/connect is not installed. Install it with: npm install @gala-chain/connect",C.PROVIDER_NOT_AVAILABLE);const{TrustWalletConnectClient:n}=e,t=new n;return new Q(t)}static async isAvailable(){return null!==await x()}ensureConnected(){if(null===this.connectedAddress||void 0===this.connectedAddress)throw new I("Wallet is not connected. Call connect() first.",C.NOT_CONNECTED);return this.connectedAddress}async connect(){try{if("function"==typeof this.client.connect){const e=await this.client.connect();if(null!=e&&e.length>0)return this.connectedAddress=c(e),this.connectedAddress}if("function"==typeof this.client.getAccount){const e=await this.client.getAccount();if(null!=e&&e.length>0)return this.connectedAddress=c(e),this.connectedAddress}throw new I("Failed to connect: no account returned",C.CONNECTION_FAILED)}catch(e){if(e instanceof I)throw e;const n=e instanceof Error?e.message:String(e);if(n.length>0&&(n.includes("rejected")||n.includes("denied")))throw new I("User rejected connection",C.USER_REJECTED,e instanceof Error?e:void 0);throw new I("Failed to connect to wallet",C.CONNECTION_FAILED,e instanceof Error?e:void 0)}}async disconnect(){"function"==typeof this.client.disconnect&&await this.client.disconnect(),this.connectedAddress=null}isConnected(){return null!==this.connectedAddress}async signMessage(e){this.ensureConnected();try{return await this.client.signMessage(e)}catch(e){const n=e instanceof Error?e.message:String(e);if(n.includes("rejected")||n.includes("denied"))throw new I("User rejected signing",C.USER_REJECTED,e instanceof Error?e:void 0);throw new I("Failed to sign message",C.SIGNING_FAILED,e instanceof Error?e:void 0)}}signTypedData(e,n,t){return Promise.reject(new I("signTypedData is not supported by GalaChainConnectProvider. Use ExternalWalletProvider with the underlying EIP-1193 provider instead.",C.SIGNING_FAILED))}async getAddress(){return await Promise.resolve(),this.ensureConnected()}async getGalaAddress(){return`eth|${(await this.getAddress()).slice(2)}`}getPrivateKey(){return Promise.reject(new I("Private key is not accessible with @gala-chain/connect. Use PrivateKeyProvider if you need private key access.",C.PRIVATE_KEY_NOT_ACCESSIBLE))}getClient(){return this.client}}class k{constructor(e){this.providerType="privateKey",this.connected=!0;try{this.wallet=new d(e)}catch(e){throw new I("Invalid private key provided",C.INVALID_CONFIG,e instanceof Error?e:void 0)}}static fromWallet(e){return new k(e.privateKey)}async signMessage(e){try{return await this.wallet.signMessage(e)}catch(e){throw new I("Failed to sign message",C.SIGNING_FAILED,e instanceof Error?e:void 0)}}async signTypedData(e,n,t){try{return await this.wallet.signTypedData(e,n,t)}catch(e){throw new I("Failed to sign typed data",C.SIGNING_FAILED,e instanceof Error?e:void 0)}}getAddress(){return Promise.resolve(c(this.wallet.address))}async getGalaAddress(){return`eth|${(await this.getAddress()).slice(2)}`}async connect(){return this.connected=!0,this.getAddress()}disconnect(){return this.connected=!1,Promise.resolve()}isConnected(){return this.connected}getPrivateKey(){return Promise.resolve(this.wallet.privateKey)}getWallet(){return this.wallet}}export{D as ExternalWalletProvider,Q as GalaChainConnectProvider,l as KNOWN_WALLET_RDNS,k as PrivateKeyProvider,M as WalletContext,G as WalletProvider,A as detectWallets,b as useGalaAddress,R as useIsWalletConnected,B as useWallet,F as useWalletAddress,_ as useWalletConnection,U as useWalletContext,j as useWalletDetection,V as useWalletProvider};
|
|
1
|
+
if(void 0===globalThis.process&&(globalThis.process={env:{},versions:{},platform:"browser"}),void 0===globalThis.Buffer){var e=function(e){return"number"==typeof e||ArrayBuffer,new Uint8Array(e)};e.isBuffer=function(){return!1},e.from=function(e,n){if("string"==typeof e){if("hex"===n){var t=(e.match(/.{1,2}/g)||[]).map(function(e){return parseInt(e,16)});return new Uint8Array(t)}return(new TextEncoder).encode(e)}return e instanceof ArrayBuffer?new Uint8Array(e):ArrayBuffer.isView(e)?new Uint8Array(e.buffer,e.byteOffset,e.byteLength):new Uint8Array(e)},e.alloc=function(e){return new Uint8Array(e)},e.concat=function(e){for(var n=0,t=0;t<e.length;t++)n+=e[t].length;for(var r=new Uint8Array(n),s=0,i=0;i<e.length;i++)r.set(e[i],s),s+=e[i].length;return r},e.prototype=Object.create(Uint8Array.prototype),globalThis.Buffer=e}import{jsx as n}from"react/jsx-runtime";import{createContext as t,useState as r,useCallback as s,useEffect as i,useMemo as o,useContext as a}from"react";import{getAddress as c,Wallet as d}from"ethers";const l={METAMASK:"io.metamask",METAMASK_FLASK:"io.metamask.flask",COINBASE:"com.coinbase.wallet",TRUST_WALLET:"com.trustwallet.app",PHANTOM:"app.phantom",RAINBOW:"me.rainbow",OKX:"com.okex.wallet",RABBY:"io.rabby",BRAVE:"com.brave.wallet",FRAME:"sh.frame",LEDGER:"com.ledger",ZERION:"io.zerion.wallet",GALA:"com.gala.wallet"},u={[l.METAMASK]:"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjQiIGhlaWdodD0iMjQiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyI+PHBhdGggZD0iTTIxLjU0IDQuMjJsLTguMzQgNi4yMSAxLjU0LTMuNjUtLTUuNTMtMi41MXoiIGZpbGw9IiNFMjc2MUIiLz48L3N2Zz4=",[l.GALA]:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACkAAAApCAYAAACoYAD2AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAjWSURBVHgBzZkLVI1ZG8f/pZKjq0uK0LglIiMKU5EuBkMxUgmjL6GFSZJ7QpJx+Ujpk1Eat3KJySXjTnIpVJRPhnTSxWVaSveL1Zlnv3WshnM67wlrzX+t3T5nv3vv99d+9/O8z36OAj5DIpGoM1W2VPSp6FJp03ipmkoRlVwq9xUUFDLwGVKCnCKwAVRNqa2rc8vOLeiRkpqpcO/hY7woeI3yikrUva9DG1VV6HXqiJHDv0Uvg66oqa0VqigrX6dxUQScCDmlwLcjwfWjKuhJdq5jVMwpxMRfQP7LN7zGttPWxARbC3i4OsDCzOQuNQUS7GnwlExIgmtH1ea0zCfugdsjFeMvJLI2tFSmA/sieMV82Fqa/UFfvQhWKGuMggzAYfX19dHBYdGGm8MPoKy8El9Knm4OWO83L6+DtmaAkpLSPrQEkgDH5eQVnnTxWqVyN/3/+Brqrq+H+H1bMdCo13pa0QDIA0mAM4R5hbu/d/MW/Pn8Bb6mdHXa42hEMCyGmqwh0EDwgSRAq5wXBZfsXBcqP88tAF+1VlGBj6crvunWGf5bIvCm6C3vsZoaarh6NByDjA0XEWgImoMkwG7FpWXJ5uPddZ/l5IGPVJSV4OJgj83+P0OnvTbXVkp7d2NIFGJPXSTX9IrXPHqdOiDp5J66b7p1sSDQlKbXFD/qG7g1/ABvQAd7K9w6HYXoHQHQUBNg0679WBTwXzKwcmxatQDX4nbT6k4D3VTmXC9fF2G230Zl+niEFksgsRNdmJKS9kik0MVMZrGY5Cm6k5ohEiv8t+MiA3OHD9cFPa1EO6OOiIpLSrnrtH1EP3mvFSnqm8ucOzg0mg1Z15RNoQlkhtXkucZJKelS/1vTAQ0+zsZyKPf9wvVk+ARsR1a2UGJ/Zr0L3Z3gPdsVrVopIutZLhas3oIrSXel3oM99swrMSXamhp96An8xdoUGwFtL95Ilgqor6eDvVtWIyUhGrZWZriZ8gAWjp4YO91bKiBTbv5LLAnciX6jpuJg3Dn07dUdl2LDcO5gCHM7Esewx74r+rgWffxJ3Cbekx6795+QejMbSzOMthzC7a3id6XYfzwBd1IzwVdPaY/P9F6LQXZuSLhyC+aD+2PqBFu0UlSU2P8AzV9ZWe0j/q5Aq6hWU1NbqNnXWr227v0nA9b4eNBq5eL2vQz8/B9nLJ7bYAhXb9/H4rXb8eDRU8irbl100ZE8wQLaCu4+6yX2uUIuadQIU0u6VxL7V4bEJVyWCMjE/F5seBBUVVvDb8NO9Bw+CcfOXIb1cFOknT+IqG3+0OnQDnxl0LUzAhbPRsrZfRg5bLDUfldu3WPVGPaHQdqkZjyRNfcHCxPSPnOetxL2rgvwPDcfs5x/QOr5/dyKqwkawkmHMSNxM34vlnrN+OB+BAJVrg/r6+48QaZbOnnuGqsMxZCmj58KIa8u3biL/tYumLN0I9oS3FrfOXhw6RAST+zBycjN5AmM0Fm3A1RUlOHqaM+tOutTXV0Lv8AQFL76q9n5CxquW4gh2wnz+b0VPlZ48DKU09vFmGBD9saiE72HKV7kjMPQ6kfEJVzlgA+FBaJrZx3s+DUG/aydsS3isMy5S96VoaysQo9sRoNF5uqv3hShJWL79XD4BpwjqMXrdmDPod+51bv/IAthQX5wHDsKAtrL56/dwdKgUGQ8fibX/BVV1VBXbytgK6laVlGFlmj2kiCcuZSEsaNH4PH1o7SKg5jrQPatE5g2aQz+JK8wxXMZ50/lBWSqe88ZszKDrNGiKKQlYlHSxFm+8F3XELj062NAlq4NbS0NRB89A8tJc3CiwQBapDb0FEhVDLLYQF8Xn6N7Dz8Nip8J81FR2bInxMSsX0NdjS1lKYMU9unRDf82ddHtyMLADIKtZZDJvb8wZDFZJjOWz5FJv96s4hw4g7xm/d1QmYO6UpDBR4l30tBjmCPu01lcmvR0OkBdrW2z84y35Vxkihgyy9LMJL9jey2JndneYjofE4oNy7zQjoyiObFVfFdWLvFaa3Lsc6Y74tG1WIIUUOAh+fzE9uOIISwHgSMcJHvmVI54uEyUOCAoZB/3GnxR+BorF85C+oWDcJ5oB3ll0r83kn7/Fbs3rUB9vQgrN4WDDnoS+7LMx0Cj3snEVchBNraHzXT6oUbaI2ABhdFIJ2ym4wGLXmKYA6eYsGd3fciSloY6Qjcswd2z0RhMQfOZi0noNWIyNoX9JjXJ4DXjR1ZtFX/nIFkWgQLS05PpDSFNNTV1WB68C8Y2rkhMTsOYUcOQTJFMgK+n1MP7NMcxeJoUh/mznOj0WAwb5/mY6O6LktIyqfcZYNQTThNs2YaOF7c1PT50p/2Ubmg5RavobQlkaabTODpKLCAjaM/dlK1YSGQsd5wYQFH39oBFGG0xFNU1NVj1y/8QceAkKquqZc57+3QkzL81HksL94e47UNoTI252praa3fSo+Gj/ccSYD5+FrbuPsgBimU9whQ3KBJigJeTUtDXaiq274nhBei/yIMBHm4K+A/IRoW6TLQ7tWTedPARy6ot3RAKE9tpeNj4btZQb8tZ92SPpbBzWcj73M0C4DU+s4X08RNrkpTBYA7xhrf/tj6h+45CHhn27M7lKCsoyGhu332sQcZ9kBgXUazWVmBKq5gDWZCNoAaUTUugk54RiwG/puzo9Bm5zb+MTqRsH96U1Ke5rBrzL/E7I48MXkFWXVVdgy+txXPdsHG5F8sC2xOg1BOdrPwke734ZQvzV09fuAbJaY/wJdRFVwcRvyzHOJvvLtPXaQTYbMqYVzqaYCdQ2UFZ3h6U7QVlfdESMec/d8Yk+M51e01gLCcZzmcc75x5I+wMquanZz4xjz52FiyhzwIJ5uglSYlSKz0IzMJ8ENwoUrccNjhLSVHxAF0KI8BS8JRckE1gzamyp/J94auiITl5BSpvS0rJsqu4Xx8E9OsDi9D19TrVUyovh+KFOOp7nsptgpM7Em4R5EfArdDwOw5L7rAsATvcFVMRskJQsr24DP0NVvGaoREi2pYAAAAASUVORK5CYII="};function h(){return"undefined"!=typeof window&&"function"==typeof window.dispatchEvent}function A(e){return"object"==typeof e&&null!==e&&"function"==typeof e.request}async function w(e=500){const n=[],t=new Map;return h()?new Promise(r=>{const s=new Set,i=e=>{const r=e,{info:i,provider:o}=r.detail;if(s.has(i.uuid))return;s.add(i.uuid);const a={id:i.rdns||i.uuid,name:i.name,rdns:i.rdns||i.uuid,icon:i.icon??u[i.rdns||""]??"",provider:o,isInjected:!1};n.push(a),t.set(a.id,a)};window.addEventListener("eip6963:announceProvider",i),window.dispatchEvent(new Event("eip6963:requestProvider")),setTimeout(()=>{if(window.removeEventListener("eip6963:announceProvider",i),0===n.length){const e=h()?window.ethereum??null:null;if(e){const r=window;let s="Browser Wallet",i="injected";r.ethereum?.isMetaMask?(s="MetaMask",i=l.METAMASK):r.ethereum?.isCoinbaseWallet?(s="Coinbase Wallet",i=l.COINBASE):r.ethereum?.isTrust&&(s="Trust Wallet",i=l.TRUST_WALLET);const o={id:i,name:s,rdns:i,icon:u[i]??"",provider:e,isInjected:!0};n.push(o),t.set(o.id,o)}}if(!t.has(l.TRUST_WALLET)){const e=function(){if(!h())return null;const e=window;if(A(e.ethereum)&&e.ethereum.isTrust)return e.ethereum;const n=e.ethereum?.providers?.find(e=>A(e)&&!0===e.isTrust);return void 0!==n?n:A(e.trustwallet)?e.trustwallet:null}();if(null!==e&&!n.some(n=>n.provider===e)){const r={id:l.TRUST_WALLET,name:"Trust Wallet",rdns:l.TRUST_WALLET,icon:u[l.TRUST_WALLET]??"",provider:e,isInjected:!0};n.push(r),t.set(r.id,r)}}const e=window;if(e.gala?.request&&!t.has(l.GALA)){const r={id:l.GALA,name:"Gala Wallet",rdns:l.GALA,icon:u[l.GALA]??"",provider:e.gala,isInjected:!0};n.push(r),t.set(r.id,r)}r({wallets:n,byId:t,hasWallets:n.length>0,...void 0===n[0]?{}:{primary:n[0]}})},e)}):{wallets:n,byId:t,hasWallets:!1}}function f(e,n,t){return{types:{EIP712Domain:v(e),...n},primaryType:Object.keys(n)[0],domain:g(e),message:t}}function v(e){const n=[];return void 0!==e.name&&n.push({name:"name",type:"string"}),void 0!==e.version&&n.push({name:"version",type:"string"}),void 0!==e.chainId&&n.push({name:"chainId",type:"uint256"}),void 0!==e.verifyingContract&&n.push({name:"verifyingContract",type:"address"}),void 0!==e.salt&&n.push({name:"salt",type:"bytes32"}),n}function g(e){const n={};return void 0!==e.name&&(n.name=e.name),void 0!==e.version&&(n.version=e.version),void 0!==e.chainId&&(n.chainId="bigint"==typeof e.chainId||"number"==typeof e.chainId?`0x${e.chainId.toString(16)}`:e.chainId),void 0!==e.verifyingContract&&(n.verifyingContract=e.verifyingContract),void 0!==e.salt&&(n.salt=e.salt),n}function E(e){return`0x${Buffer.from(e,"utf8").toString("hex")}`}async function p(e,n,t){return e.request({method:"personal_sign",params:[E(t),n]})}async function y(e,n,t,r,s){return e.request({method:"eth_signTypedData_v4",params:[n,JSON.stringify(f(t,r,s))]})}class m{constructor(e){this.connectedAddress=null,this.provider=e,this.eventHandlers=function(e,n,t){if(null==e||"function"!=typeof e.on)return{accountsChanged:null,disconnect:null};const r=e=>{const t=e[0];n(void 0===t?null:c(t))},s=()=>t();return e.on("accountsChanged",r),e.on("disconnect",s),{accountsChanged:r,disconnect:s}}(e,e=>{this.connectedAddress=e},()=>{this.connectedAddress=null})}removeEventListeners(){!function(e,n){if("function"!=typeof e.removeListener)return;null!==n.accountsChanged&&e.removeListener("accountsChanged",n.accountsChanged);null!==n.disconnect&&e.removeListener("disconnect",n.disconnect)}(this.provider,this.eventHandlers)}}class N extends Error{constructor(e,n,t){super(e),this.code=n,this.originalError=t,this.name="WalletProviderError"}}var I;async function C(e,n,t){try{return await e()}catch(e){if(e instanceof N)throw e;return n(e,t)}}!function(e){e.USER_REJECTED="USER_REJECTED",e.NOT_CONNECTED="NOT_CONNECTED",e.CONNECTION_FAILED="CONNECTION_FAILED",e.SIGNING_FAILED="SIGNING_FAILED",e.PROVIDER_NOT_AVAILABLE="PROVIDER_NOT_AVAILABLE",e.PRIVATE_KEY_NOT_ACCESSIBLE="PRIVATE_KEY_NOT_ACCESSIBLE",e.INVALID_CONFIG="INVALID_CONFIG",e.CHAIN_MISMATCH="CHAIN_MISMATCH",e.UNKNOWN="UNKNOWN"}(I||(I={}));const L=4001,T=4100,O=4900,D=4901;class S extends m{constructor(e){if(super(e),this.providerType="external",null==e)throw new N("EIP-1193 provider is required",I.INVALID_CONFIG)}handleProviderError(e,n){const t=e;if(t.code===L)throw new N(`User rejected ${n}`,I.USER_REJECTED,e instanceof Error?e:void 0);if(t.code===T)throw new N("Wallet is not authorized",I.NOT_CONNECTED,e instanceof Error?e:void 0);if(t.code===O||t.code===D)throw this.connectedAddress=null,new N("Wallet disconnected",I.NOT_CONNECTED,e instanceof Error?e:void 0);throw new N(t.message??`${n} failed`,n.includes("sign")?I.SIGNING_FAILED:I.UNKNOWN,e instanceof Error?e:void 0)}ensureConnected(){if(!this.connectedAddress)throw new N("Wallet is not connected. Call connect() first.",I.NOT_CONNECTED)}async connect(){try{const e=await this.provider.request({method:"eth_requestAccounts"});if(null==e||0===e.length)throw new N("No accounts returned from wallet",I.CONNECTION_FAILED);const n=e[0];if(void 0===n)throw new N("No accounts returned from wallet",I.CONNECTION_FAILED);return this.connectedAddress=c(n),this.connectedAddress}catch(e){if(e instanceof N)throw e;return this.handleProviderError(e,"connect")}}async disconnect(){this.connectedAddress=null,this.removeEventListeners();try{await this.provider.request({method:"wallet_revokePermissions",params:[{eth_accounts:{}}]})}catch{}}isConnected(){return null!==this.connectedAddress}async signMessage(e){return this.ensureConnected(),C(()=>p(this.provider,this.connectedAddress,e),(e,n)=>this.handleProviderError(e,n),"sign message")}async signTypedData(e,n,t){return this.ensureConnected(),C(()=>y(this.provider,this.connectedAddress,e,n,t),(e,n)=>this.handleProviderError(e,n),"sign typed data")}async getAddress(){await Promise.resolve(),this.ensureConnected();const e=this.connectedAddress;if(null==e)throw new N("Wallet is not connected",I.NOT_CONNECTED);return e}async getGalaAddress(){return`eth|${(await this.getAddress()).slice(2)}`}async getPrivateKey(){return Promise.reject(new N("Private key is not accessible with external wallet providers. Use PrivateKeyProvider if you need private key access for @gala-chain operations.",I.PRIVATE_KEY_NOT_ACCESSIBLE))}getProvider(){return this.provider}}class W extends m{constructor(e){if(super(e),this.providerType="external",this.galaRawAddress=null,!e)throw new N("Gala Wallet provider is required",I.PROVIDER_NOT_AVAILABLE)}parseGalaError(e){if(e instanceof Error)try{const n=JSON.parse(e.message);if("object"==typeof n&&null!==n){const t=n,r={message:"string"==typeof t.message?t.message:e.message};return"number"==typeof t.code&&(r.code=t.code),r}return{message:e.message}}catch{return{message:e.message}}return{message:String(e)}}handleProviderError(e,n){const t=this.parseGalaError(e);if(4001===t.code)throw new N(`User rejected ${n}`,I.USER_REJECTED,e instanceof Error?e:void 0);if(4900===t.code)throw this.connectedAddress=null,new N("Wallet disconnected",I.NOT_CONNECTED,e instanceof Error?e:void 0);const r=t.message?t.message:`${n} failed`;throw new N(r,n.includes("sign")?I.SIGNING_FAILED:I.UNKNOWN,e instanceof Error?e:void 0)}ensureConnected(){if(null===this.connectedAddress||void 0===this.connectedAddress)throw new N("Wallet is not connected. Call connect() first.",I.NOT_CONNECTED)}async connect(){try{const e=await this.provider.request({method:"eth_requestAccounts"});if(null==e||0===e.length)throw new N("No accounts returned from Gala Wallet",I.CONNECTION_FAILED);const n=e[0];if(void 0===n)throw new N("No accounts returned from Gala Wallet",I.CONNECTION_FAILED);this.galaRawAddress=n;let t=n;return t.startsWith("eth|")?t=`0x${t.slice(4)}`:t.startsWith("0x")||(t=`0x${t}`),this.connectedAddress=c(t),this.connectedAddress}catch(e){if(e instanceof N)throw e;return this.handleProviderError(e,"connect")}}async disconnect(){this.connectedAddress=null,this.galaRawAddress=null,this.removeEventListeners();try{await this.provider.disconnect()}catch{}}isConnected(){return null!==this.connectedAddress}async signMessage(e){return this.ensureConnected(),C(async()=>(await this.provider.setAddress(this.galaRawAddress??this.connectedAddress),p(this.provider,this.connectedAddress,e)),(e,n)=>this.handleProviderError(e,n),"sign message")}async signTypedData(e,n,t){return this.ensureConnected(),C(async()=>(await this.provider.setAddress(this.galaRawAddress??this.connectedAddress),y(this.provider,this.connectedAddress,e,n,t)),(e,n)=>this.handleProviderError(e,n),"sign typed data")}getAddress(){return this.ensureConnected(),Promise.resolve(this.connectedAddress)}async getGalaAddress(){return`eth|${(await this.getAddress()).slice(2)}`}getPrivateKey(){throw new N("Private key is not accessible with Gala Wallet. Use PrivateKeyProvider if you need private key access for @gala-chain operations.",I.PRIVATE_KEY_NOT_ACCESSIBLE)}getProvider(){return this.provider}}const M={provider:null,address:null,galaAddress:null,isConnected:!1,isConnecting:!1,isDetecting:!1,error:null,detectedWallets:[],connect:async()=>{throw new Error("WalletContext not initialized")},connectDetected:async()=>{throw new Error("WalletContext not initialized")},disconnect:async()=>{throw new Error("WalletContext not initialized")},setProvider:()=>{throw new Error("WalletContext not initialized")},refreshWallets:async()=>{throw new Error("WalletContext not initialized")},clearError:()=>{throw new Error("WalletContext not initialized")}},P=t(M),U="undefined"!=typeof window;function G({children:e,autoDetect:t=U,initialProvider:a,autoConnect:c=!0,onConnect:d,onDisconnect:u,onError:A}){const[f,v]=r(a??null),[g,E]=r(null),[p,y]=r(null),[m,N]=r(!1),[I,C]=r(!1),[L,T]=r(null),[O,D]=r([]),M=null!==f&&null!==g,G=s(()=>{T(null)},[]),b=s(e=>{v(e),e||(E(null),y(null))},[]),B=s(async e=>{N(!0),T(null);try{e.isConnected()||await e.connect();const n=await e.getAddress(),t=await e.getGalaAddress();return v(e),E(n),y(t),d?.(n,e),n}catch(e){const n=e instanceof Error?e:new Error(String(e));throw T(n),A?.(n),n}finally{N(!1)}},[d,A]),R=s(async e=>{if(e.rdns===l.GALA){const n=new W(e.provider);return B(n)}const n=new S(e.provider);return B(n)},[B]),V=s(async()=>{if(f)try{await f.disconnect()}catch{}v(null),E(null),y(null),T(null),u?.()},[f,u]),F=s(async()=>{if(U){C(!0);try{let e=[...(await w()).wallets];const n=window;if(void 0!==n.gala&&!e.some(e=>e.rdns===l.GALA)){e=[{id:l.GALA,name:"Gala Wallet",rdns:l.GALA,icon:"",provider:n.gala,isInjected:!0},...e]}D(e)}catch{D([])}finally{C(!1)}}},[]);i(()=>{if(!t||!U)return;F();const e=function(e){if(!h())return()=>{};let n=!0,t={wallets:[],byId:new Map,hasWallets:!1};const r=r=>{if(!n)return;const s=r,{info:i,provider:o}=s.detail,a=i.rdns||i.uuid;if(t.byId.has(a))return;const c={id:a,name:i.name,rdns:a,icon:i.icon??"",provider:o,isInjected:!1},d=[...t.wallets,c],l=new Map(t.byId);l.set(c.id,c),t={wallets:d,byId:l,hasWallets:!0,...void 0===d[0]?{}:{primary:d[0]}},e(t)};return window.addEventListener("eip6963:announceProvider",r),w().then(r=>{n&&(t=r,e(r))}),()=>{n=!1,window.removeEventListener("eip6963:announceProvider",r)}}(e=>{D(e.wallets)});return()=>{e()}},[t,F]),i(()=>{a&&c&&!M&&!m&&B(a)},[a,c,M,m,B]);const K=o(()=>({provider:f,address:g,galaAddress:p,isConnected:M,isConnecting:m,isDetecting:I,error:L,detectedWallets:O,connect:B,connectDetected:R,disconnect:V,setProvider:b,refreshWallets:F,clearError:G}),[f,g,p,M,m,I,L,O,B,R,V,b,F,G]);return n(P.Provider,{value:K,children:e})}function b(){const e=a(P);if(e===M)throw new Error("useWalletContext must be used within a WalletProvider");return e}function B(){return b()}function R(){const{address:e}=b();return e}function V(){const{galaAddress:e}=b();return e}function F(){const{isConnected:e}=b();return e}function K(){const{provider:e}=b();return e}function j(){const{isConnecting:e,isConnected:n,error:t,connect:r,connectDetected:s,disconnect:i,clearError:a}=b(),c=o(()=>e?"connecting":t?"error":n?"connected":"disconnected",[e,t,n]);return o(()=>({status:c,isConnecting:e,isConnected:n,error:t,connect:r,connectDetected:s,disconnect:i,clearError:a}),[c,e,n,t,r,s,i,a])}function x(){const{detectedWallets:e,isDetecting:n,refreshWallets:t}=b(),r=o(()=>n=>e.some(e=>e.rdns===n),[e]),s=o(()=>n=>e.find(e=>e.rdns===n),[e]),i=o(()=>e.some(e=>e.rdns===l.METAMASK),[e]),a=o(()=>e.some(e=>e.rdns===l.COINBASE),[e]),c=e.length>0;return o(()=>({wallets:e,isDetecting:n,refresh:t,hasWallet:r,getWallet:s,hasMetaMask:i,hasCoinbaseWallet:a,hasAnyWallet:c}),[e,n,t,r,s,i,a,c])}class Q{constructor(e){this.providerType="privateKey",this.connected=!0;try{this.wallet=new d(e)}catch(e){throw new N("Invalid private key provided",I.INVALID_CONFIG,e instanceof Error?e:void 0)}}static fromWallet(e){return new Q(e.privateKey)}async signMessage(e){try{return await this.wallet.signMessage(e)}catch(e){throw new N("Failed to sign message",I.SIGNING_FAILED,e instanceof Error?e:void 0)}}async signTypedData(e,n,t){try{return await this.wallet.signTypedData(e,n,t)}catch(e){throw new N("Failed to sign typed data",I.SIGNING_FAILED,e instanceof Error?e:void 0)}}getAddress(){return Promise.resolve(c(this.wallet.address))}async getGalaAddress(){return`eth|${(await this.getAddress()).slice(2)}`}async connect(){return this.connected=!0,this.getAddress()}disconnect(){return this.connected=!1,Promise.resolve()}isConnected(){return this.connected}getPrivateKey(){return Promise.resolve(this.wallet.privateKey)}getWallet(){return this.wallet}}export{S as ExternalWalletProvider,l as KNOWN_WALLET_RDNS,Q as PrivateKeyProvider,P as WalletContext,G as WalletProvider,w as detectWallets,V as useGalaAddress,F as useIsWalletConnected,B as useWallet,R as useWalletAddress,j as useWalletConnection,b as useWalletContext,x as useWalletDetection,K as useWalletProvider};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BridgeableTokenService.d.ts","sourceRoot":"","sources":["../../src/services/BridgeableTokenService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,0BAA0B,EAC1B,4BAA4B,EAC5B,2BAA2B,EAC3B,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"BridgeableTokenService.d.ts","sourceRoot":"","sources":["../../src/services/BridgeableTokenService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,KAAK,EACV,iBAAiB,EACjB,eAAe,EACf,0BAA0B,EAC1B,4BAA4B,EAC5B,2BAA2B,EAC3B,wBAAwB,EACxB,uBAAuB,EACxB,MAAM,yCAAyC,CAAC;AACjD,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAGlD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEnD,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2BAA2B,CAAC;AAEjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,qBAAa,sBAAuB,SAAQ,yBAAyB,CACnE,0BAA0B,EAC1B,eAAe,CAChB;IACC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAuB;gBAEjC,UAAU,EAAE,UAAU,EAAE,SAAS,GAAE,OAAe;IAK9D;;;;;OAKG;IACH,SAAS,CAAC,cAAc,CACtB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC;IAM5C;;;;;OAKG;IACH,SAAS,CAAC,oBAAoB,CAAC,SAAS,EAAE,0BAA0B,EAAE,GAAG,eAAe,EAAE;IAuD1F;;;;;;OAMG;IACG,8BAA8B,CAClC,OAAO,EAAE,4BAA4B,GACpC,OAAO,CAAC,2BAA2B,CAAC;IAkCvC;;;;;;;;;OASG;IACG,iCAAiC,CACrC,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,2BAA2B,CAAC;IAuBvC;;;;OAIG;IACG,kCAAkC,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAIhF;;;;OAIG;IACG,gCAAgC,IAAI,OAAO,CAAC,2BAA2B,CAAC;IAI9E;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,0BAA0B,CAC9B,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,uBAAuB,CAAC;IAqCnC;;;;;;;;;;;;;;;;OAgBG;IACG,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAIrF;;;;;;;;;;;;;;;;OAgBG;IACG,yBAAyB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAInF;;;;;;OAMG;IACG,gBAAgB,CACpB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAUvC;;;;;;OAMG;IACG,iBAAiB,CACrB,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,eAAe,GAAG,SAAS,CAAC;IAUvC;;;;;;OAMG;IACG,kBAAkB,CACtB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAS9B;;;;;OAKG;IACG,wBAAwB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAS7E;;;;;OAKG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAS9B;;;;OAIG;IACH,aAAa,IAAI,UAAU,CAAC,oBAAoB,CAAC,UAAU,CAAC,CAAC;IAI7D;;;;OAIG;IACH,UAAU,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,IAAI;CAG9C"}
|
|
@@ -84,6 +84,12 @@ export declare class DexService extends LoggerBase {
|
|
|
84
84
|
* @internal
|
|
85
85
|
*/
|
|
86
86
|
fetchTokenPrice(params: FetchTokenSpotPriceParams): Promise<TokenSpotPrice>;
|
|
87
|
+
/**
|
|
88
|
+
* Resolve a token's symbol from the token metadata cache or the GalaChain token class.
|
|
89
|
+
* Never derives a symbol from the class key; throws if neither source has it.
|
|
90
|
+
* @private
|
|
91
|
+
*/
|
|
92
|
+
private resolveAuthoritativeSymbol;
|
|
87
93
|
/**
|
|
88
94
|
* Internal method: Fetch spot price from DEX Backend API
|
|
89
95
|
*
|
|
@@ -99,7 +105,8 @@ export declare class DexService extends LoggerBase {
|
|
|
99
105
|
* **Symbol Resolution:**
|
|
100
106
|
* 1. Check TokenMetadataCache (if available) - instant
|
|
101
107
|
* 2. Fetch from GalaChain token registry - authoritative
|
|
102
|
-
*
|
|
108
|
+
* There is no key-parsing fallback: a class key carries no symbol, so a token whose
|
|
109
|
+
* symbol cannot be resolved fails loudly.
|
|
103
110
|
*
|
|
104
111
|
* **Caching Strategy:**
|
|
105
112
|
* - Cache hit: Symbol returned instantly (no API call)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DexService.d.ts","sourceRoot":"","sources":["../../src/services/DexService.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAgB,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EACV,0BAA0B,EAC1B,SAAS,EACT,qBAAqB,EAGrB,iBAAiB,EACjB,cAAc,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,KAAK,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAQjG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAShD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"DexService.d.ts","sourceRoot":"","sources":["../../src/services/DexService.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAKH,OAAO,KAAK,EAAgB,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC7D,OAAO,KAAK,EACV,0BAA0B,EAC1B,SAAS,EACT,qBAAqB,EAGrB,iBAAiB,EACjB,cAAc,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AACtE,OAAO,KAAK,EAAE,yBAAyB,EAAE,yBAAyB,EAAE,MAAM,sBAAsB,CAAC;AAQjG,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAShD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAC3C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAC3D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAK/D;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,UAAW,SAAQ,UAAU;IAEtC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;IACvB,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;gBAFjB,cAAc,CAAC,EAAE,UAAU,YAAA,EAC3B,KAAK,CAAC,EAAE,kBAAkB,YAAA,EAC1B,gBAAgB,CAAC,EAAE,gBAAgB,YAAA,EACpD,SAAS,GAAE,OAAe;IAK5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAgDG;IACG,eAAe,CAAC,MAAM,EAAE,yBAAyB,GAAG,OAAO,CAAC,cAAc,CAAC;IA6BjF;;;;OAIG;YACW,0BAA0B;IA8BxC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;YAEW,uBAAuB;IA0ErC;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA4BG;IACG,4BAA4B,CAChC,SAAS,EAAE,MAAM,EACjB,kBAAkB,EAAE,CAAC,OAAO,EAAE,yBAAyB,KAAK,OAAO,CAAC,uBAAuB,CAAC,EAE5F,gBAAgB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,OAAO,CAAC,GACzD,OAAO,CAAC,cAAc,CAAC;IAiF1B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAwCG;IACG,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAgDzE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8CG;IACG,kBAAkB,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;IAmFhD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAmCG;IACG,qBAAqB,IAAI,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC;IAkBxD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+DG;IACG,6BAA6B,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA4GjF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoCG;IACG,0BAA0B,IAAI,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC;IAWrE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAoDG;IACG,+BAA+B,IAAI,OAAO,CAAC,0BAA0B,CAAC;CAqC7E"}
|
|
@@ -32,6 +32,7 @@ import type { JwtAuth } from '../auth/JwtAuth';
|
|
|
32
32
|
import type { FetchTokenStatsResult } from '../types/engagement-stats.dto';
|
|
33
33
|
import type { CheckPoolOptions, GraphDataResult, PoolData, PoolsResult, TokenDistributionResult, UserHolderContext, ValidateTokenRequest, ValidateTokenResponse } from '../types/launchpad.dto';
|
|
34
34
|
import type { UpdateTokenConfigOptions } from '../types/messages.dto';
|
|
35
|
+
import type { TokenConfigData } from '../types/token-config.dto';
|
|
35
36
|
import type { FetchTradesOptions, FetchVolumeDataOptions, UploadImageByTokenNameOptions } from '../types/options.dto';
|
|
36
37
|
import type { TradesResult } from '../types/trade.dto';
|
|
37
38
|
import type { GetTradesOptions, TradesQueryResult } from '../types/trades-query.dto';
|
|
@@ -302,5 +303,11 @@ export declare class LaunchpadService {
|
|
|
302
303
|
* @since 6.2.0 - Added support for social media URL updates and other streaming config
|
|
303
304
|
*/
|
|
304
305
|
updateTokenConfig(tokenName: string, config: UpdateTokenConfigOptions): Promise<void>;
|
|
306
|
+
/**
|
|
307
|
+
* Get the current token configuration, including chat/comments enabled status.
|
|
308
|
+
*
|
|
309
|
+
* @since 7.1.0
|
|
310
|
+
*/
|
|
311
|
+
getTokenConfig(tokenName: string): Promise<TokenConfigData>;
|
|
305
312
|
}
|
|
306
313
|
//# sourceMappingURL=LaunchpadService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LaunchpadService.d.ts","sourceRoot":"","sources":["../../src/services/LaunchpadService.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"LaunchpadService.d.ts","sourceRoot":"","sources":["../../src/services/LaunchpadService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,KAAK,EACV,qBAAqB,EACtB,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EACV,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACR,WAAW,EACX,uBAAuB,EACvB,iBAAiB,EACjB,oBAAoB,EACpB,qBAAqB,EACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AACtE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AACjE,OAAO,KAAK,EACV,kBAAkB,EAClB,sBAAsB,EACtB,6BAA6B,EAC9B,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AACvD,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AACrF,OAAO,KAAK,EACV,uBAAuB,EACvB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,yBAAyB,EACzB,mBAAmB,EACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAIhD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAI5C;;;;;;;GAOG;AACH,qBAAa,gBAAgB;IAQzB,OAAO,CAAC,QAAQ,CAAC,IAAI;IANvB,SAAgB,WAAW,EAAE,WAAW,CAAC;IACzC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;IAC5C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAe;gBAGzB,IAAI,EAAE,UAAU,EACjC,OAAO,CAAC,EAAE,OAAO,EACjB,SAAS,GAAE,OAAe;IAS5B;;;;;;;OAOG;IACH,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAUlC;;;;;;OAMG;IACG,sBAAsB,CAC1B,OAAO,EAAE,6BAA6B,GACrC,OAAO,CAAC,MAAM,CAAC;IAQlB;;;;;;;;;;;;OAYG;IACG,UAAU,CACd,OAAO,GAAE;QACP,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,YAAY,GAAG,kBAAkB,CAAC;QAChE,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,KAAK,CAAC,EAAE,MAAM,CAAC;KACX,GACL,OAAO,CAAC,WAAW,CAAC;IAIvB;;;;;;;;;OASG;IACG,aAAa,CACjB,OAAO,CAAC,EAAE;QACR,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,IAAI,CAAC,EAAE,QAAQ,GAAG,SAAS,GAAG,YAAY,GAAG,kBAAkB,CAAC;QAChE,gBAAgB,CAAC,EAAE,OAAO,CAAC;QAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,gBAAgB,CAAC,EAAE,MAAM,CAAC;QAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;KACzB,GACA,OAAO,CAAC,WAAW,CAAC;IAIvB;;;;;;OAMG;IACG,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAI5D;;;;;;;;;;OAUG;IACG,eAAe,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAW5E;;;;;;OAMG;IACG,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI/D;;;;;;OAMG;IACG,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAI9D;;;;;;OAMG;IACG,eAAe,CACnB,OAAO,EAAE,sBAAsB,GAC9B,OAAO,CAAC,eAAe,CAAC;IAI3B;;;;;;OAMG;IACG,sBAAsB,CAC1B,SAAS,EAAE,MAAM,GAChB,OAAO,CAAC,uBAAuB,CAAC;IAInC;;;;;;;OAOG;IACG,sBAAsB,CAC1B,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,MAAM,GAClB,OAAO,CAAC,iBAAiB,CAAC;IAQ7B;;;;;;OAMG;IACG,WAAW,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,YAAY,CAAC;IAIrE;;;;;;;;;;OAUG;IACG,SAAS,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAQtE;;;;;;OAMG;IAEG,YAAY,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAItD;;;;;;OAMG;IACG,aAAa,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI3D;;;;;;OAMG;IACG,kBAAkB,CACtB,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,MAAM,CAAC;IAQlB;;;;;;OAMG;IACG,cAAc,CAClB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,mBAAmB,CAAC;IAI/B;;;;;;OAMG;IACG,eAAe,CACnB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,mBAAmB,CAAC;IAI/B;;;;;;OAMG;IACG,kBAAkB,CACtB,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,mBAAmB,CAAC;IAI/B;;;;;;OAMG;IACG,gBAAgB,CACpB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,mBAAmB,CAAC;IAQ/B;;;;;OAKG;IACH,UAAU,IAAI,MAAM;IAIpB;;;;;;OAMG;IACH,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAI1C;;;;;OAKG;IACG,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC;IAItD;;;;;OAKG;IACG,aAAa,CAAC,OAAO,EAAE,oBAAoB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAQlF;;;;;;OAMG;IACG,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC;IAIxE;;;;;;;;;;;;;OAaG;IACG,iBAAiB,CACrB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,wBAAwB,GAC/B,OAAO,CAAC,IAAI,CAAC;IAIhB;;;;OAIG;IACG,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;CAIlE"}
|
|
@@ -11,6 +11,7 @@ import type { JwtAuth } from '../auth/JwtAuth';
|
|
|
11
11
|
import type { FetchTokenStatsResult } from '../types/engagement-stats.dto';
|
|
12
12
|
import type { CheckPoolOptions, GraphDataResult, PoolData, PoolsResult, TokenDistributionResult, UserHolderContext, ValidateTokenResponse } from '../types/launchpad.dto';
|
|
13
13
|
import type { UpdateTokenConfigOptions } from '../types/messages.dto';
|
|
14
|
+
import type { TokenConfigData } from '../types/token-config.dto';
|
|
14
15
|
import type { FetchVolumeDataOptions } from '../types/options.dto';
|
|
15
16
|
import type { HttpClient } from '../utils/http';
|
|
16
17
|
import { BaseService } from './BaseService';
|
|
@@ -301,5 +302,26 @@ export declare class PoolService extends BaseService {
|
|
|
301
302
|
* @since 7.0.0
|
|
302
303
|
*/
|
|
303
304
|
updateTokenConfig(tokenName: string, config: UpdateTokenConfigOptions): Promise<void>;
|
|
305
|
+
/**
|
|
306
|
+
* Get the current token configuration, including chat/comments enabled status.
|
|
307
|
+
*
|
|
308
|
+
* Reads the same record updateTokenConfig() writes. There is no dedicated chat-status
|
|
309
|
+
* endpoint - chatEnabled/commentsEnabled live on the token's general config record.
|
|
310
|
+
*
|
|
311
|
+
* **Public endpoint** - no authentication required.
|
|
312
|
+
*
|
|
313
|
+
* @param tokenName Token name to fetch configuration for
|
|
314
|
+
* @returns The token's current configuration
|
|
315
|
+
* @throws ValidationError if tokenName is invalid
|
|
316
|
+
*
|
|
317
|
+
* @since 7.1.0
|
|
318
|
+
*
|
|
319
|
+
* @example
|
|
320
|
+
* ```typescript
|
|
321
|
+
* const config = await poolService.getTokenConfig('anime');
|
|
322
|
+
* console.log(config.chatEnabled);
|
|
323
|
+
* ```
|
|
324
|
+
*/
|
|
325
|
+
getTokenConfig(tokenName: string): Promise<TokenConfigData>;
|
|
304
326
|
}
|
|
305
327
|
//# sourceMappingURL=PoolService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PoolService.d.ts","sourceRoot":"","sources":["../../src/services/PoolService.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAC;AAI/C,OAAO,KAAK,EACV,qBAAqB,EAEtB,MAAM,+BAA+B,CAAC;AACvC,OAAO,KAAK,EAEV,gBAAgB,EAEhB,eAAe,EAKf,QAAQ,EACR,WAAW,EACX,uBAAuB,EACvB,iBAAiB,EACjB,qBAAqB,EACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"PoolService.d.ts","sourceRoot":"","sources":["../../src/services/PoolService.ts"],"names":[],"mappings":"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"}
|
|
@@ -16,6 +16,7 @@ import type { StreamChatAuthenticatedEvent, StreamChatAuthErrorEvent, StreamChat
|
|
|
16
16
|
import type { StreamCountdownEvent, StreamGlobalStatusEvent, StreamLanguageEvent, StreamStatusEvent, StreamSubscribedEvent, StreamUnsubscribedEvent, ViewerCountEvent } from '../types/streaming.dto';
|
|
17
17
|
import type { ApiKeyCreatedEvent, ApiKeyRevokedEvent, ApiKeyUpdatedEvent, BalanceUpdatedEvent, CommentCreatedEvent, EngagementStatsUpdatedEvent, HolderCountUpdatedEvent, ModeratorAddedEvent, ModeratorInviteCreatedEvent, ModeratorRemovedEvent, ModeratorRoleUpdatedEvent, OverseerAddedEvent, OverseerRemovedEvent, PoolBadgeAssignedEvent, PoolMetadataUpdatedEvent, PoolSocialLinksUpdatedEvent, StatsUpdatedEvent, TokenBannedEvent, TokenConfigUpdatedEvent, TokenUnbannedEvent, TradeExecutedEvent, UserProfileUpdatedEvent } from '../types/websocket-events.dto';
|
|
18
18
|
import { LoggerBase } from './BaseService';
|
|
19
|
+
import type { StreamingEventService } from './StreamingEventService';
|
|
19
20
|
/**
|
|
20
21
|
* Stream WebSocket configuration
|
|
21
22
|
*/
|
|
@@ -203,6 +204,7 @@ export declare class StreamWebSocketService extends LoggerBase {
|
|
|
203
204
|
private isSocketIOAvailable;
|
|
204
205
|
private reconnectionManager;
|
|
205
206
|
private isAuthenticated;
|
|
207
|
+
private streamingEventService;
|
|
206
208
|
private subscribedRooms;
|
|
207
209
|
private roomCallbacks;
|
|
208
210
|
private pendingSubscriptions;
|
|
@@ -239,6 +241,14 @@ export declare class StreamWebSocketService extends LoggerBase {
|
|
|
239
241
|
* Re-subscribe to all active rooms after reconnection
|
|
240
242
|
*/
|
|
241
243
|
private resubscribeAll;
|
|
244
|
+
/**
|
|
245
|
+
* Attach the StreamingEventService instance this connection forwards raw
|
|
246
|
+
* USER_BANNED/USER_UNBANNED/BAN_ENFORCEMENT socket events into, so LaunchpadSDK's
|
|
247
|
+
* onUserBanned()/onUserUnbanned()/onBanEnforcement() subscribers actually receive events.
|
|
248
|
+
*
|
|
249
|
+
* @internal
|
|
250
|
+
*/
|
|
251
|
+
setStreamingEventService(service: StreamingEventService): void;
|
|
242
252
|
/**
|
|
243
253
|
* Connect to the stream WebSocket server
|
|
244
254
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"StreamWebSocketService.d.ts","sourceRoot":"","sources":["../../src/services/StreamWebSocketService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAG/C,OAAO,KAAK,EAEV,wBAAwB,EAExB,yBAAyB,EAG1B,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EACV,4BAA4B,EAC5B,wBAAwB,EACxB,oBAAoB,EACpB,2BAA2B,EAC3B,sBAAsB,EAEtB,qBAAqB,EACrB,mBAAmB,EACnB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,mBAAmB,EAEnB,oBAAoB,EACrB,MAAM,0BAA0B,CAAC;AAClC,OAAO,KAAK,EAEV,oBAAoB,EACpB,uBAAuB,EACvB,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EACrB,uBAAuB,EACvB,gBAAgB,EACjB,MAAM,wBAAwB,CAAC;
|
|
1
|
+
{"version":3,"file":"StreamWebSocketService.d.ts","sourceRoot":"","sources":["../../src/services/StreamWebSocketService.ts"],"names":[],"mappings":"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"}
|
|
@@ -53,28 +53,6 @@ export declare class TokenClassKeyService extends LoggerBase {
|
|
|
53
53
|
* ```
|
|
54
54
|
*/
|
|
55
55
|
generateStringsInstructions(vaultAddress: string): string[];
|
|
56
|
-
/**
|
|
57
|
-
* Create TokenClassKey instance for launchpad token
|
|
58
|
-
*
|
|
59
|
-
* Constructs a properly formatted TokenClassKey for a launchpad token using its symbol.
|
|
60
|
-
* **Critical**: Always converts symbol to lowercase for collection field to match frontend
|
|
61
|
-
* format and ensure consistent string instruction generation.
|
|
62
|
-
*
|
|
63
|
-
* **Format**: `{ collection: lowercase_symbol, category: 'Unit', type: 'none', additionalKey: 'none' }`
|
|
64
|
-
*
|
|
65
|
-
* @param tokenSymbol Token symbol (e.g., 'ANIME', 'CLAUDE') - converted to lowercase internally
|
|
66
|
-
* @returns TokenClassKey instance with lowercase collection field
|
|
67
|
-
* @category Token Identification
|
|
68
|
-
* @since 2.0.0
|
|
69
|
-
*
|
|
70
|
-
* @example Create token instance
|
|
71
|
-
* ```typescript
|
|
72
|
-
* const tokenKey = service.createTokenInstance('ANIME');
|
|
73
|
-
* console.log(tokenKey.toStringKey());
|
|
74
|
-
* // Output: 'anime$Unit$none$none'
|
|
75
|
-
* ```
|
|
76
|
-
*/
|
|
77
|
-
createTokenInstance(tokenSymbol: string): TokenClassKey;
|
|
78
56
|
/**
|
|
79
57
|
* Create TokenClassKey instance for GALA native token
|
|
80
58
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenClassKeyService.d.ts","sourceRoot":"","sources":["../../src/services/TokenClassKeyService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;
|
|
1
|
+
{"version":3,"file":"TokenClassKeyService.d.ts","sourceRoot":"","sources":["../../src/services/TokenClassKeyService.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAahD,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAE3C;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,UAAU;gBACtC,SAAS,GAAE,OAAe;IAItC;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACH,2BAA2B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE;IAsB3D;;;;;;;;;;;;;;;;;;OAkBG;IACH,kBAAkB,IAAI,aAAa;IAcnC;;;;;;;;;;;;;OAaG;IACH,2BAA2B,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IA0BzD;;;;;;;;;;;;;;;;;;;;;;;;OAwBG;IACH,oBAAoB,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IA4CnD;;;;;;;;OAQG;IACH,2BAA2B,CACzB,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,GACpB,MAAM;IAIT;;;;;OAKG;IACH,wBAAwB,CAAC,SAAS,EAAE,MAAM,GAAG;QAC3C,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,EAAE,MAAM,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;KACvB;CAcF"}
|
|
@@ -11,8 +11,12 @@ export interface TokenClassKey {
|
|
|
11
11
|
export type TokenIdentifier = TokenClassKey | string;
|
|
12
12
|
/** Common input for a single token mutation. */
|
|
13
13
|
export interface TokenAmountInput {
|
|
14
|
-
|
|
15
|
-
|
|
14
|
+
/**
|
|
15
|
+
* The token's explicit class key: an object, or a `|`- / `$`-delimited string. A symbol is
|
|
16
|
+
* never accepted: a class key cannot be derived from a symbol. Resolve a launchpad token name
|
|
17
|
+
* with `sdk.resolveTokenClassKey(tokenName)` first.
|
|
18
|
+
*/
|
|
19
|
+
tokenClassKey: TokenIdentifier;
|
|
16
20
|
quantity: string;
|
|
17
21
|
instance?: string;
|
|
18
22
|
uniqueKey?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transfers.d.ts","sourceRoot":"","sources":["../../src/tokens/transfers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,mCAAmC,CAAC;
|
|
1
|
+
{"version":3,"file":"transfers.d.ts","sourceRoot":"","sources":["../../src/tokens/transfers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,mCAAmC,CAAC;AAGrF,6CAA6C;AAC7C,MAAM,WAAW,aAAa;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,iDAAiD;AACjD,MAAM,MAAM,eAAe,GAAG,aAAa,GAAG,MAAM,CAAC;AAErD,gDAAgD;AAChD,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,aAAa,EAAE,eAAe,CAAC;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,kCAAkC;AAClC,MAAM,WAAW,aAAc,SAAQ,gBAAgB;IACrD,EAAE,EAAE,MAAM,CAAC;CACZ;AAED,uCAAuC;AACvC,MAAM,WAAW,SAAU,SAAQ,gBAAgB;IACjD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,sDAAsD;AACtD,MAAM,WAAW,WAAW,CAAC,CAAC,GAAG,OAAO;IACtC,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,CAAC,CAAC;IACR,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAcD,iDAAiD;AACjD,qBAAa,WAAW;IACtB,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAS;IACvC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAgB;IAE1C,4EAA4E;gBACzD,OAAO,EAAE;QAC1B,cAAc,EAAE,MAAM,CAAC;QACvB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,MAAM,EAAE,eAAe,CAAC;QACxB,aAAa,EAAE,MAAM,CAAC;QACtB,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B;IAOD;;;;;;;OAOG;IACI,QAAQ,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO,CAAC,WAAW,CAAC;IAY3D;;;;;;;OAOG;IACI,IAAI,CAAC,KAAK,EAAE,gBAAgB,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ1D;;;;;;OAMG;IACI,IAAI,CAAC,KAAK,EAAE,SAAS,GAAG,OAAO,CAAC,WAAW,CAAC;IAenD;;;;;;OAMG;IACI,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG;QAAE,IAAI,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,WAAW,CAAC;YAalE,MAAM;IA4BpB,OAAO,CAAC,IAAI;YAUE,UAAU;CASzB"}
|
|
@@ -36,7 +36,7 @@ export interface DomainToken {
|
|
|
36
36
|
* Handles:
|
|
37
37
|
* - Missing fields with defaults (decimals: 8, verified: false, etc.)
|
|
38
38
|
* - Field name variations (tokenName vs name, tokenSymbol vs symbol)
|
|
39
|
-
* - Symbol fallback chain: symbol → tokenSymbol
|
|
39
|
+
* - Symbol fallback chain: symbol → tokenSymbol (never `collection`: a collection is not a symbol)
|
|
40
40
|
* - Validates required fields (name, symbol) exist and are non-empty
|
|
41
41
|
*
|
|
42
42
|
* @param rawToken - Raw token object from API response (may have missing fields)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"data-transform-patterns.d.ts","sourceRoot":"","sources":["../../src/utils/data-transform-patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AACH,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,OAAO,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"data-transform-patterns.d.ts","sourceRoot":"","sources":["../../src/utils/data-transform-patterns.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAIH;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuEG;AACH,wBAAgB,iCAAiC,CAAC,QAAQ,EAAE,OAAO,GAAG,WAAW,CAkDhF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0EG;AACH,wBAAgB,4BAA4B,CAAC,CAAC,GAAG,OAAO,EACtD,GAAG,EAAE,OAAO,EACZ,UAAU,EAAE,MAAM,EAAE,EACpB,YAAY,GAAE,CAAwB,GACrC,CAAC,GAAG,IAAI,CAmCV;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+GG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC3G,KAAK,EAAE,CAAC,EAAE,EACV,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,CAAC,GAC7C,OAAO,CAAC,CAAC,CAAC,EAAE,CAcd;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+FG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,EAChC,KAAK,EAAE,CAAC,EAAE,EACV,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO,EAC3B,SAAS,GAAE,OAAc,GACxB,CAAC,EAAE,CA6BL"}
|
|
@@ -120,8 +120,9 @@ export declare function validateTokenObject(obj: unknown): DelimitedTokenParts;
|
|
|
120
120
|
*
|
|
121
121
|
* Vault address format: "service|Token$Unit$SYMBOL$additionalKey$launchpad"
|
|
122
122
|
* - First split by '|' to extract service prefix and token part
|
|
123
|
-
* - Then
|
|
124
|
-
*
|
|
123
|
+
* - Then drop the trailing 'launchpad' channel and parse the class key from the RIGHT
|
|
124
|
+
* (category, type, additionalKey are the last three segments; everything before is the
|
|
125
|
+
* collection, which may itself contain '$')
|
|
125
126
|
*
|
|
126
127
|
* @param vaultAddress - The vault address string to parse
|
|
127
128
|
* @returns Parsed token parts
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"delimiter-parser.d.ts","sourceRoot":"","sources":["../../src/utils/delimiter-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,GAAG,GAAG,GAAG,CAAC;AAkCvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,cAAc,EACzB,YAAY,CAAC,EAAE,MAAM,GACpB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"delimiter-parser.d.ts","sourceRoot":"","sources":["../../src/utils/delimiter-parser.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAMH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;GAEG;AACH,MAAM,MAAM,cAAc,GAAG,GAAG,GAAG,GAAG,CAAC;AAkCvC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiCG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,cAAc,EACzB,YAAY,CAAC,EAAE,MAAM,GACpB,mBAAmB,CA+BrB;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6BG;AACH,wBAAgB,0BAA0B,CACxC,KAAK,EAAE,MAAM,EACb,SAAS,EAAE,cAAc,EACzB,YAAY,CAAC,EAAE,MAAM,GACpB,mBAAmB,CA6BrB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,CAAC,mBAAmB,CAAC,EACnC,YAAY,CAAC,EAAE,MAAM,GACpB,OAAO,CAAC,KAAK,IAAI,mBAAmB,CAmBtC;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,mBAAmB,CAEjC,GAAG,EAAE,OAAO,GACX,mBAAmB,CAkDrB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,iBAAiB,CAAC,YAAY,EAAE,MAAM,GAAG,mBAAmB,CA8B3E"}
|