@rango-dev/provider-xdefi 0.37.1 → 0.37.2-next.1

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/CHANGELOG.md CHANGED
@@ -1,3 +1,12 @@
1
+ ## [0.37.1](https://github.com/rango-exchange/rango-client/compare/provider-xdefi@0.37.0...provider-xdefi@0.37.1) (2024-10-05)
2
+
3
+
4
+ ### Bug Fixes
5
+
6
+ * remove null memo from utxo transactions ([89d1a5b](https://github.com/rango-exchange/rango-client/commit/89d1a5b4a4bce700da48ad2089edf700de188f9c))
7
+
8
+
9
+
1
10
  # [0.37.0](https://github.com/rango-exchange/rango-client/compare/provider-xdefi@0.36.0...provider-xdefi@0.37.0) (2024-09-10)
2
11
 
3
12
 
@@ -0,0 +1,2 @@
1
+ var c=Object.defineProperty;var d=(a,b)=>c(a,"name",{value:b,configurable:!0});export{d as a};
2
+ //# sourceMappingURL=chunk-DYCPFO4Y.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a}from"./chunk-DYCPFO4Y.js";import{Networks as t,XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS as T}from"@rango-dev/wallets-shared";var N=T,P=[t.POLYGON,t.ETHEREUM,t.BSC,t.AVAX_CCHAIN,t.FANTOM,t.ARBITRUM],C=[t.COSMOS,t.AKASH,t.AXELAR,t.CRYPTO_ORG,t.JUNO,t.KUJIRA,t.MARS,t.OSMOSIS,t.STARGAZE,t.STRIDE];import{Networks as r}from"@rango-dev/wallets-shared";import{SignerError as A,SignerErrorCode as p}from"rango-types";function y(){let{xfi:e}=window;if(!e)return null;let n=new Map;return e.bitcoin&&n.set(r.BTC,e.bitcoin),e.litecoin&&n.set(r.LTC,e.litecoin),e.thorchain&&n.set(r.THORCHAIN,e.thorchain),e.bitcoincash&&n.set(r.BCH,e.bitcoincash),e.ethereum&&n.set(r.ETHEREUM,e.ethereum),e.dogecoin&&n.set(r.DOGE,e.dogecoin),e.solana&&n.set(r.SOLANA,e.solana),e.mayachain&&n.set(r.MAYA,e.mayachain),e.keplr&&n.set(r.COSMOS,e.keplr),n}a(y,"xdefi");async function H(e){let c=N.filter(o=>o!==r.ETHEREUM).filter(o=>e.get(o)!==void 0).map(async o=>new Promise((s,u)=>{e.get(o).request({method:"request_accounts",params:[]},(i,m)=>{if(i)return u(i),i;s({accounts:m,chainId:o})})}));return await Promise.all(c)}a(H,"getNonEvmAccounts");async function I(e,n,c,E,o,s,u,l,i){return new Promise(function(m,f){let S={asset:{chain:e,symbol:n,ticker:n},from:c,amount:{amount:E,decimals:o},memo:i};s&&(S.recipient=s),u.request({method:l,params:[S]},(R,O)=>{R?f(new A(p.SEND_TX_ERROR,void 0,R)):m(O)})})}a(I,"xdefiTransfer");export{P as a,C as b,y as c,H as d,I as e};
2
+ //# sourceMappingURL=chunk-MEPWRNV6.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/constants.ts", "../src/helpers.ts"],
4
+ "sourcesContent": ["import {\n Networks,\n XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS,\n} from '@rango-dev/wallets-shared';\n\nexport const SUPPORTED_NETWORKS = XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS;\nexport const SUPPORTED_ETH_CHAINS = [\n Networks.POLYGON,\n Networks.ETHEREUM,\n Networks.BSC,\n Networks.AVAX_CCHAIN,\n Networks.FANTOM,\n Networks.ARBITRUM,\n];\nexport const SUPPORTED_COSMOS_CHAINS = [\n Networks.COSMOS,\n Networks.AKASH,\n Networks.AXELAR,\n Networks.CRYPTO_ORG,\n Networks.JUNO,\n Networks.KUJIRA,\n Networks.MARS,\n Networks.OSMOSIS,\n Networks.STARGAZE,\n Networks.STRIDE,\n];\n", "import type { Network, ProviderConnectResult } from '@rango-dev/wallets-shared';\n\nimport { Networks } from '@rango-dev/wallets-shared';\nimport { SignerError, SignerErrorCode } from 'rango-types';\n\nimport { SUPPORTED_ETH_CHAINS, SUPPORTED_NETWORKS } from './constants.js';\n\ntype Provider = Map<Network, any>;\n\nexport function xdefi() {\n const { xfi } = window;\n\n if (!xfi) {\n return null;\n }\n\n const instances = new Map();\n if (xfi.bitcoin) {\n instances.set(Networks.BTC, xfi.bitcoin);\n }\n if (xfi.litecoin) {\n instances.set(Networks.LTC, xfi.litecoin);\n }\n if (xfi.thorchain) {\n instances.set(Networks.THORCHAIN, xfi.thorchain);\n }\n if (xfi.bitcoincash) {\n instances.set(Networks.BCH, xfi.bitcoincash);\n }\n if (xfi.ethereum) {\n instances.set(Networks.ETHEREUM, xfi.ethereum);\n }\n if (xfi.dogecoin) {\n instances.set(Networks.DOGE, xfi.dogecoin);\n }\n if (xfi.solana) {\n instances.set(Networks.SOLANA, xfi.solana);\n }\n if (xfi.mayachain) {\n instances.set(Networks.MAYA, xfi.mayachain);\n }\n if (xfi.keplr) {\n instances.set(Networks.COSMOS, xfi.keplr);\n }\n\n return instances;\n}\n\nexport function getEthChainsInstance(netowrk: Network | null): Network | null {\n if (!netowrk) {\n return null;\n }\n return SUPPORTED_ETH_CHAINS.includes(netowrk as Networks)\n ? Networks.ETHEREUM\n : null;\n}\n\nexport async function getNonEvmAccounts(\n instances: Provider\n): Promise<ProviderConnectResult[]> {\n const nonEvmNetworks = SUPPORTED_NETWORKS.filter(\n (net: Network) => net !== Networks.ETHEREUM\n );\n const promises: Promise<ProviderConnectResult>[] = nonEvmNetworks\n .filter(\n (network: Network) =>\n // Ensure the instance is defined\n instances.get(network) !== undefined\n )\n .map(async (network: Network) => {\n return new Promise((resolve, reject) => {\n const instance = instances.get(network);\n instance.request(\n {\n method: 'request_accounts',\n params: [],\n },\n (error: any, accounts: any) => {\n if (error) {\n reject(error);\n return error;\n }\n\n const result = {\n accounts,\n chainId: network,\n };\n\n resolve(result);\n }\n );\n });\n });\n\n const results = await Promise.all(promises);\n\n return results;\n}\n\nexport async function xdefiTransfer(\n blockchain: string,\n ticker: string,\n from: string,\n amount: string,\n decimals: number,\n recipientAddress: string | null,\n provider: any,\n method: string,\n memo?: string\n): Promise<string> {\n return new Promise(function (resolve, reject) {\n const params = {\n asset: { chain: blockchain, symbol: ticker, ticker: ticker },\n from: from,\n amount: { amount: amount, decimals: decimals },\n memo: memo,\n } as any;\n if (recipientAddress) {\n params.recipient = recipientAddress;\n }\n\n provider.request(\n { method: method, params: [params] },\n (error: any, result: any) => {\n if (error) {\n reject(\n new SignerError(SignerErrorCode.SEND_TX_ERROR, undefined, error)\n );\n } else {\n resolve(result);\n }\n }\n );\n });\n}\n"],
5
+ "mappings": "mCAAA,OACE,YAAAA,EACA,wCAAAC,MACK,4BAEA,IAAMC,EAAqBD,EACrBE,EAAuB,CAClCH,EAAS,QACTA,EAAS,SACTA,EAAS,IACTA,EAAS,YACTA,EAAS,OACTA,EAAS,QACX,EACaI,EAA0B,CACrCJ,EAAS,OACTA,EAAS,MACTA,EAAS,OACTA,EAAS,WACTA,EAAS,KACTA,EAAS,OACTA,EAAS,KACTA,EAAS,QACTA,EAAS,SACTA,EAAS,MACX,ECvBA,OAAS,YAAAK,MAAgB,4BACzB,OAAS,eAAAC,EAAa,mBAAAC,MAAuB,cAMtC,SAASC,GAAQ,CACtB,GAAM,CAAE,IAAAC,CAAI,EAAI,OAEhB,GAAI,CAACA,EACH,OAAO,KAGT,IAAMC,EAAY,IAAI,IACtB,OAAID,EAAI,SACNC,EAAU,IAAIC,EAAS,IAAKF,EAAI,OAAO,EAErCA,EAAI,UACNC,EAAU,IAAIC,EAAS,IAAKF,EAAI,QAAQ,EAEtCA,EAAI,WACNC,EAAU,IAAIC,EAAS,UAAWF,EAAI,SAAS,EAE7CA,EAAI,aACNC,EAAU,IAAIC,EAAS,IAAKF,EAAI,WAAW,EAEzCA,EAAI,UACNC,EAAU,IAAIC,EAAS,SAAUF,EAAI,QAAQ,EAE3CA,EAAI,UACNC,EAAU,IAAIC,EAAS,KAAMF,EAAI,QAAQ,EAEvCA,EAAI,QACNC,EAAU,IAAIC,EAAS,OAAQF,EAAI,MAAM,EAEvCA,EAAI,WACNC,EAAU,IAAIC,EAAS,KAAMF,EAAI,SAAS,EAExCA,EAAI,OACNC,EAAU,IAAIC,EAAS,OAAQF,EAAI,KAAK,EAGnCC,CACT,CArCgBE,EAAAJ,EAAA,SAgDhB,eAAsBK,EACpBC,EACkC,CAIlC,IAAMC,EAHiBC,EAAmB,OACvCC,GAAiBA,IAAQC,EAAS,QACrC,EAEG,OACEC,GAECL,EAAU,IAAIK,CAAO,IAAM,MAC/B,EACC,IAAI,MAAOA,GACH,IAAI,QAAQ,CAACC,EAASC,IAAW,CACrBP,EAAU,IAAIK,CAAO,EAC7B,QACP,CACE,OAAQ,mBACR,OAAQ,CAAC,CACX,EACA,CAACG,EAAYC,IAAkB,CAC7B,GAAID,EACF,OAAAD,EAAOC,CAAK,EACLA,EAQTF,EALe,CACb,SAAAG,EACA,QAASJ,CACX,CAEc,CAChB,CACF,CACF,CAAC,CACF,EAIH,OAFgB,MAAM,QAAQ,IAAIJ,CAAQ,CAG5C,CAxCsBS,EAAAX,EAAA,qBA0CtB,eAAsBY,EACpBC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACAC,EACiB,CACjB,OAAO,IAAI,QAAQ,SAAUd,EAASC,EAAQ,CAC5C,IAAMc,EAAS,CACb,MAAO,CAAE,MAAOT,EAAY,OAAQC,EAAQ,OAAQA,CAAO,EAC3D,KAAMC,EACN,OAAQ,CAAE,OAAQC,EAAQ,SAAUC,CAAS,EAC7C,KAAMI,CACR,EACIH,IACFI,EAAO,UAAYJ,GAGrBC,EAAS,QACP,CAAE,OAAQC,EAAQ,OAAQ,CAACE,CAAM,CAAE,EACnC,CAACb,EAAYc,IAAgB,CACvBd,EACFD,EACE,IAAIgB,EAAYC,EAAgB,cAAe,OAAWhB,CAAK,CACjE,EAEAF,EAAQgB,CAAM,CAElB,CACF,CACF,CAAC,CACH,CAnCsBZ,EAAAC,EAAA",
6
+ "names": ["Networks", "XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS", "SUPPORTED_NETWORKS", "SUPPORTED_ETH_CHAINS", "SUPPORTED_COSMOS_CHAINS", "Networks", "SignerError", "SignerErrorCode", "xdefi", "xfi", "instances", "Networks", "__name", "getNonEvmAccounts", "instances", "promises", "SUPPORTED_NETWORKS", "net", "Networks", "network", "resolve", "reject", "error", "accounts", "__name", "xdefiTransfer", "blockchain", "ticker", "from", "amount", "decimals", "recipientAddress", "provider", "method", "memo", "params", "result", "SignerError", "SignerErrorCode"]
7
+ }
@@ -0,0 +1,2 @@
1
+ import{a as e}from"./chunk-DYCPFO4Y.js";import{executeCosmosTransaction as i}from"@rango-dev/signer-cosmos";import{getNetworkInstance as a,Networks as c}from"@rango-dev/wallets-shared";import{SignerError as m,SignerErrorCode as g}from"rango-types";var t=class{static{e(this,"CustomCosmosSigner")}provider;constructor(r){this.provider=r}async signMessage(r,o,s){try{if(!s)throw Error("ChainId is required");let{signature:n}=await this.provider.signArbitrary(s,o,r);return n}catch(n){throw new m(g.SIGN_TX_ERROR,void 0,n)}}async signAndSendTx(r){if(r.rawTransfer===null){let o=a(this.provider,c.COSMOS);return{hash:await i(r,o)}}throw Error("raw transfer is not null for cosmos transactions")}};export{t as CustomCosmosSigner};
2
+ //# sourceMappingURL=cosmos-signer-EU3BOHAU.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/cosmos-signer.ts"],
4
+ "sourcesContent": ["import type { CosmosTransaction, GenericSigner } from 'rango-types';\n\nimport { executeCosmosTransaction } from '@rango-dev/signer-cosmos';\nimport { getNetworkInstance, Networks } from '@rango-dev/wallets-shared';\nimport { SignerError, SignerErrorCode } from 'rango-types';\n\n/*\n * TODO - replace with real type\n * tslint:disable-next-line: no-any\n */\ntype CosmosExternalProvider = any;\n\nexport class CustomCosmosSigner implements GenericSigner<CosmosTransaction> {\n private provider: CosmosExternalProvider;\n constructor(provider: CosmosExternalProvider) {\n this.provider = provider;\n }\n\n async signMessage(\n msg: string,\n address: string,\n chainId: string | null\n ): Promise<string> {\n try {\n if (!chainId) {\n throw Error('ChainId is required');\n }\n const { signature } = await this.provider.signArbitrary(\n chainId,\n address,\n msg\n );\n return signature;\n } catch (error) {\n throw new SignerError(SignerErrorCode.SIGN_TX_ERROR, undefined, error);\n }\n }\n async signAndSendTx(tx: CosmosTransaction): Promise<{ hash: string }> {\n if (tx.rawTransfer === null) {\n const cosmosProvider = getNetworkInstance(this.provider, Networks.COSMOS);\n const hash = await executeCosmosTransaction(tx, cosmosProvider);\n return { hash };\n }\n throw Error('raw transfer is not null for cosmos transactions');\n }\n}\n"],
5
+ "mappings": "wCAEA,OAAS,4BAAAA,MAAgC,2BACzC,OAAS,sBAAAC,EAAoB,YAAAC,MAAgB,4BAC7C,OAAS,eAAAC,EAAa,mBAAAC,MAAuB,cAQtC,IAAMC,EAAN,KAAqE,CAZ5E,MAY4E,CAAAC,EAAA,2BAClE,SACR,YAAYC,EAAkC,CAC5C,KAAK,SAAWA,CAClB,CAEA,MAAM,YACJC,EACAC,EACAC,EACiB,CACjB,GAAI,CACF,GAAI,CAACA,EACH,MAAM,MAAM,qBAAqB,EAEnC,GAAM,CAAE,UAAAC,CAAU,EAAI,MAAM,KAAK,SAAS,cACxCD,EACAD,EACAD,CACF,EACA,OAAOG,CACT,OAASC,EAAO,CACd,MAAM,IAAIC,EAAYC,EAAgB,cAAe,OAAWF,CAAK,CACvE,CACF,CACA,MAAM,cAAcG,EAAkD,CACpE,GAAIA,EAAG,cAAgB,KAAM,CAC3B,IAAMC,EAAiBC,EAAmB,KAAK,SAAUC,EAAS,MAAM,EAExE,MAAO,CAAE,KADI,MAAMC,EAAyBJ,EAAIC,CAAc,CAChD,CAChB,CACA,MAAM,MAAM,kDAAkD,CAChE,CACF",
6
+ "names": ["executeCosmosTransaction", "getNetworkInstance", "Networks", "SignerError", "SignerErrorCode", "CustomCosmosSigner", "__name", "provider", "msg", "address", "chainId", "signature", "error", "SignerError", "SignerErrorCode", "tx", "cosmosProvider", "getNetworkInstance", "Networks", "executeCosmosTransaction"]
7
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"cosmos-signer.d.ts","sourceRoot":"","sources":["../src/cosmos-signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAYpE,KAAK,sBAAsB,GAAG,GAAG,CAAC;AAElC,qBAAa,kBAAmB,YAAW,aAAa,CAAC,iBAAiB,CAAC;IACzE,OAAO,CAAC,QAAQ,CAAyB;gBAC7B,QAAQ,EAAE,sBAAsB;IAItC,WAAW,CACf,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,MAAM,CAAC;IAeZ,aAAa,CAAC,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAyBtE"}
1
+ {"version":3,"file":"cosmos-signer.d.ts","sourceRoot":"","sources":["../src/cosmos-signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAUpE,KAAK,sBAAsB,GAAG,GAAG,CAAC;AAElC,qBAAa,kBAAmB,YAAW,aAAa,CAAC,iBAAiB,CAAC;IACzE,OAAO,CAAC,QAAQ,CAAyB;gBAC7B,QAAQ,EAAE,sBAAsB;IAItC,WAAW,CACf,GAAG,EAAE,MAAM,EACX,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,GAAG,IAAI,GACrB,OAAO,CAAC,MAAM,CAAC;IAeZ,aAAa,CAAC,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAQtE"}
@@ -1 +1 @@
1
- {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAOhF,KAAK,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAElC,wBAAgB,KAAK,yBAwCpB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,CAO5E;AAED,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,QAAQ,GAClB,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAkClC;AAED,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,GAAG,IAAI,EAC/B,QAAQ,EAAE,GAAG,EACb,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,CA0BjB"}
1
+ {"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAOhF,KAAK,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAElC,wBAAgB,KAAK,yBAqCpB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,GAAG,IAAI,CAO5E;AAED,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,QAAQ,GAClB,OAAO,CAAC,qBAAqB,EAAE,CAAC,CAsClC;AAED,wBAAsB,aAAa,CACjC,UAAU,EAAE,MAAM,EAClB,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,gBAAgB,EAAE,MAAM,GAAG,IAAI,EAC/B,QAAQ,EAAE,GAAG,EACb,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,MAAM,GACZ,OAAO,CAAC,MAAM,CAAC,CAyBjB"}
package/dist/index.d.ts CHANGED
@@ -11,7 +11,7 @@ export declare const connect: Connect;
11
11
  export declare const subscribe: Subscribe;
12
12
  export declare const switchNetwork: SwitchNetwork;
13
13
  export declare const canSwitchNetworkTo: CanSwitchNetwork;
14
- export declare const getSigners: (provider: any) => SignerFactory;
14
+ export declare const getSigners: (provider: any) => Promise<SignerFactory>;
15
15
  export declare const canEagerConnect: CanEagerConnect;
16
16
  export declare const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo;
17
17
  export { SUPPORTED_ETH_CHAINS } from './constants.js';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,OAAO,EAEP,SAAS,EACT,aAAa,EACb,UAAU,EACX,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAQL,QAAQ,EAER,WAAW,EAEZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAItE,OAAO,EAAqB,KAAK,IAAI,eAAe,EAAE,MAAM,cAAc,CAAC;AAM3E,eAAO,MAAM,MAAM;;;CAGlB,CAAC;AAEF,eAAO,MAAM,WAAW,wBAAkB,CAAC;AAE3C,eAAO,MAAM,OAAO,EAAE,OAuCrB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,SA8BvB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,aAAmC,CAAC;AAEhE,eAAO,MAAM,kBAAkB,EAAE,gBAAwC,CAAC;AAE1E,eAAO,MAAM,UAAU,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,aAAsB,CAAC;AAEnE,eAAO,MAAM,eAAe,EAAE,eAM7B,CAAC;AACF,eAAO,MAAM,aAAa,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,KAAK,UAgCjE,CAAC;AAGF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,OAAO,EAEP,SAAS,EACT,aAAa,EACb,UAAU,EACX,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAQL,QAAQ,EAER,WAAW,EAEZ,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,KAAK,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,aAAa,CAAC;AAItE,OAAO,EAAqB,KAAK,IAAI,eAAe,EAAE,MAAM,cAAc,CAAC;AAM3E,eAAO,MAAM,MAAM;;;CAGlB,CAAC;AAEF,eAAO,MAAM,WAAW,wBAAkB,CAAC;AAE3C,eAAO,MAAM,OAAO,EAAE,OAuCrB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,SA8BvB,CAAC;AAEF,eAAO,MAAM,aAAa,EAAE,aAAmC,CAAC;AAEhE,eAAO,MAAM,kBAAkB,EAAE,gBAAwC,CAAC;AAE1E,eAAO,MAAM,UAAU,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,aAAa,CAAU,CAAC;AAE5E,eAAO,MAAM,eAAe,EAAE,eAM7B,CAAC;AACF,eAAO,MAAM,aAAa,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,KAAK,UAgCjE,CAAC;AAGF,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var M=Object.defineProperty;var s=(r,e)=>M(r,"name",{value:e,configurable:!0});import{canEagerlyConnectToEvm as K,canSwitchNetworkToEvm as Y,chooseInstance as h,getBlockChainNameFromId as J,getCosmosAccounts as Z,getEvmAccounts as $,getSolanaAccounts as j,Networks as E,switchNetworkForEvm as z,WalletTypes as Q,XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS as ee}from"@rango-dev/wallets-shared";import"rango-types";import{cosmosBlockchains as re,isCosmosBlockchain as te}from"rango-types";import{Networks as i,XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS as H}from"@rango-dev/wallets-shared";var R=H,S=[i.POLYGON,i.ETHEREUM,i.BSC,i.AVAX_CCHAIN,i.FANTOM,i.ARBITRUM],A=[i.COSMOS,i.AKASH,i.AXELAR,i.CRYPTO_ORG,i.JUNO,i.KUJIRA,i.MARS,i.OSMOSIS,i.STARGAZE,i.STRIDE];import{Networks as l}from"@rango-dev/wallets-shared";import{SignerError as b,SignerErrorCode as U}from"rango-types";function k(){let{xfi:r}=window;if(!r)return null;let e=new Map;return r.bitcoin&&e.set(l.BTC,r.bitcoin),r.litecoin&&e.set(l.LTC,r.litecoin),r.thorchain&&e.set(l.THORCHAIN,r.thorchain),r.bitcoincash&&e.set(l.BCH,r.bitcoincash),r.binance&&e.set(l.BINANCE,r.binance),r.ethereum&&e.set(l.ETHEREUM,r.ethereum),r.dogecoin&&e.set(l.DOGE,r.dogecoin),r.solana&&e.set(l.SOLANA,r.solana),r.mayachain&&e.set(l.MAYA,r.mayachain),r.keplr&&e.set(l.COSMOS,r.keplr),e}s(k,"xdefi");async function O(r){let n=R.filter(o=>o!==l.ETHEREUM).map(async o=>new Promise((a,m)=>{r.get(o).request({method:"request_accounts",params:[]},(c,p)=>{if(c)return m(c),c;a({accounts:p,chainId:o})})}));return await Promise.all(n)}s(O,"getNonEvmAccounts");async function w(r,e,n,t,o,a,m,f,c){return new Promise(function(p,g){let d={asset:{chain:r,symbol:e,ticker:e},from:n,amount:{amount:t,decimals:o},memo:c};a&&(d.recipient=a),m.request({method:f,params:[d]},(u,y)=>{u?g(new b(U.SEND_TX_ERROR,void 0,u)):p(y)})})}s(w,"xdefiTransfer");import{DefaultEvmSigner as X}from"@rango-dev/signer-evm";import{DefaultSolanaSigner as V}from"@rango-dev/signer-solana";import{getNetworkInstance as x,Networks as _}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as q,TransactionType as C}from"rango-types";import{executeCosmosTransaction as D}from"@rango-dev/signer-cosmos";import{getNetworkInstance as v,Networks as I}from"@rango-dev/wallets-shared";import{SignerError as L,SignerErrorCode as B}from"rango-types";var T=class{static{s(this,"CustomCosmosSigner")}provider;constructor(e){this.provider=e}async signMessage(e,n,t){try{if(!t)throw Error("ChainId is required");let{signature:o}=await this.provider.signArbitrary(t,n,e);return o}catch(o){throw new L(B.SIGN_TX_ERROR,void 0,o)}}async signAndSendTx(e){if(e.rawTransfer===null){let u=v(this.provider,I.COSMOS);return{hash:await D(e,u)}}let n=v(this.provider,I.BINANCE),t=e.fromWalletAddress,{method:o,memo:a,recipient:m,decimals:f,amount:c,asset:p}=e.rawTransfer,g=e.blockChain;return{hash:await w(g,p.ticker,t,c,f,m,n,o,a??void 0)}}};import{getNetworkInstance as F,XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS as W}from"@rango-dev/wallets-shared";import{SignerError as G}from"rango-types";var N=class{static{s(this,"CustomTransferSigner")}provider;constructor(e){this.provider=e}async signMessage(){throw G.UnimplementedError("signMessage")}async signAndSendTx(e){let{blockchain:n}=e.asset;if(!W.includes(n))throw new Error(`blockchain: ${n} transfer not implemented yet.`);let t=F(this.provider,n),{method:o,memo:a,recipientAddress:m,decimals:f,amount:c,fromWalletAddress:p,asset:g}=e;return{hash:await w(n,g.ticker,p,c,f,m,t,o,a??void 0)}}};function P(r){let e=x(r,_.ETHEREUM),n=x(r,_.SOLANA),t=new q;return t.registerSigner(C.EVM,new X(e)),t.registerSigner(C.SOLANA,new V(n)),t.registerSigner(C.COSMOS,new T(r)),t.registerSigner(C.TRANSFER,new N(r)),t}s(P,"getSigners");var ne=E.ETHEREUM,oe=Q.XDEFI,Le={type:oe,defaultNetwork:ne},Be=k,Fe=s(async({instance:r,meta:e})=>{let n=h(r,e,E.ETHEREUM),t=h(r,e,E.SOLANA),o=h(r,e,E.COSMOS),a=await $(n),m=await O(r),f=await j({instance:t,meta:e}),c=[];if(o){let p=e.filter(u=>te(u)&&A.includes(u.name)),g=E.COSMOS,d=await Z({instance:o,meta:p,network:g});Array.isArray(d)?c.push(...d):c.push(d)}return[a,...m,f,...c]},"connect"),We=s(({instance:r,meta:e,updateChainId:n,connect:t})=>{let o=s(m=>{let f=J(m,e)||E.Unknown;n(m),t(f)},"handleChainChanged"),a=h(r,e,E.ETHEREUM);return a?.on?.("chainChanged",o),()=>{a?.off?.("chainChanged",o)}},"subscribe"),Ge=z,Xe=Y,Ve=P,qe=s(async({instance:r,meta:e})=>{let n=h(r,e,E.ETHEREUM);return n?K({instance:n,meta:e}):Promise.resolve(!1)},"canEagerConnect"),Ke=s(r=>{let e=re(r).filter(t=>!!t.info&&A.includes(t.name)),n=[...r.filter(t=>[...S,...ee,E.SOLANA].includes(t.name)),...e];return{name:"XDefi",img:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/xdefi/icon.svg",installLink:{CHROME:"https://chrome.google.com/webstore/detail/xdefi-wallet/hmeobnfnfcmdkdcmlblgagmfpfboieaf",BRAVE:"https://chrome.google.com/webstore/detail/xdefi-wallet/hmeobnfnfcmdkdcmlblgagmfpfboieaf",DEFAULT:"https://xdefi.io/"},color:"#0646c7",supportedChains:n}},"getWalletInfo");export{S as SUPPORTED_ETH_CHAINS,qe as canEagerConnect,Xe as canSwitchNetworkTo,Le as config,Fe as connect,Be as getInstance,Ve as getSigners,Ke as getWalletInfo,We as subscribe,Ge as switchNetwork};
1
+ import{a as S,b as p,c as u,d as C}from"./chunk-MEPWRNV6.js";import{a as r}from"./chunk-DYCPFO4Y.js";import{canEagerlyConnectToEvm as y,canSwitchNetworkToEvm as R,chooseInstance as l,getBlockChainNameFromId as x,getCosmosAccounts as O,getEvmAccounts as I,getSolanaAccounts as P,Networks as s,switchNetworkForEvm as v,WalletTypes as M,XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS as b}from"@rango-dev/wallets-shared";import"rango-types";import{cosmosBlockchains as _,isCosmosBlockchain as F}from"rango-types";import{getNetworkInstance as d,Networks as N}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as T,TransactionType as g}from"rango-types";async function E(t){let o=d(t,N.ETHEREUM),n=d(t,N.SOLANA),e=new T,{DefaultEvmSigner:c}=await import("@rango-dev/signer-evm"),{CustomSolanaSigner:a}=await import("./solana-signer-774Z76QJ.js"),{CustomCosmosSigner:i}=await import("./cosmos-signer-EU3BOHAU.js"),{CustomTransferSigner:m}=await import("./utxo-signer-ZB6Q3UPL.js");return e.registerSigner(g.EVM,new c(o)),e.registerSigner(g.SOLANA,new a(n)),e.registerSigner(g.COSMOS,new i(t)),e.registerSigner(g.TRANSFER,new m(t)),e}r(E,"getSigners");var H=s.ETHEREUM,U=M.XDEFI,G={type:U,defaultNetwork:H},J=u,Q=r(async({instance:t,meta:o})=>{let n=l(t,o,s.ETHEREUM),e=l(t,o,s.SOLANA),c=l(t,o,s.COSMOS),a=await I(n),i=await C(t),m=await P({instance:e,meta:o}),f=[];if(c){let k=o.filter(h=>F(h)&&p.includes(h.name)),A=s.COSMOS,w=await O({instance:c,meta:k,network:A});Array.isArray(w)?f.push(...w):f.push(w)}return[a,...i,m,...f]},"connect"),Y=r(({instance:t,meta:o,updateChainId:n,connect:e})=>{let c=r(i=>{let m=x(i,o)||s.Unknown;n(i),e(m)},"handleChainChanged"),a=l(t,o,s.ETHEREUM);return a?.on?.("chainChanged",c),()=>{a?.off?.("chainChanged",c)}},"subscribe"),Z=v,$=R,tt=E,ot=r(async({instance:t,meta:o})=>{let n=l(t,o,s.ETHEREUM);return n?y({instance:n,meta:o}):Promise.resolve(!1)},"canEagerConnect"),et=r(t=>{let o=_(t).filter(e=>!!e.info&&p.includes(e.name)),n=[...t.filter(e=>[...S,...b,s.SOLANA].includes(e.name)),...o];return{name:"XDefi",img:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/xdefi/icon.svg",installLink:{CHROME:"https://chrome.google.com/webstore/detail/xdefi-wallet/hmeobnfnfcmdkdcmlblgagmfpfboieaf",BRAVE:"https://chrome.google.com/webstore/detail/xdefi-wallet/hmeobnfnfcmdkdcmlblgagmfpfboieaf",DEFAULT:"https://xdefi.io/"},color:"#0646c7",supportedChains:n}},"getWalletInfo");export{S as SUPPORTED_ETH_CHAINS,ot as canEagerConnect,$ as canSwitchNetworkTo,G as config,Q as connect,J as getInstance,tt as getSigners,et as getWalletInfo,Y as subscribe,Z as switchNetwork};
2
2
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/index.ts", "../src/constants.ts", "../src/helpers.ts", "../src/signer.ts", "../src/cosmos-signer.ts", "../src/utxo-signer.ts"],
4
- "sourcesContent": ["import type {\n CanEagerConnect,\n CanSwitchNetwork,\n Connect,\n ProviderConnectResult,\n Subscribe,\n SwitchNetwork,\n WalletInfo,\n} from '@rango-dev/wallets-shared';\n\nimport {\n canEagerlyConnectToEvm,\n canSwitchNetworkToEvm,\n chooseInstance,\n getBlockChainNameFromId,\n getCosmosAccounts,\n getEvmAccounts,\n getSolanaAccounts,\n Networks,\n switchNetworkForEvm,\n WalletTypes,\n XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS,\n} from '@rango-dev/wallets-shared';\nimport { type BlockchainMeta, type SignerFactory } from 'rango-types';\nimport { cosmosBlockchains, isCosmosBlockchain } from 'rango-types';\n\nimport { SUPPORTED_COSMOS_CHAINS, SUPPORTED_ETH_CHAINS } from './constants.js';\nimport { getNonEvmAccounts, xdefi as xdefi_instances } from './helpers.js';\nimport signer from './signer.js';\n\nconst DEFAULT_NETWORK = Networks.ETHEREUM;\nconst WALLET = WalletTypes.XDEFI;\n\nexport const config = {\n type: WALLET,\n defaultNetwork: DEFAULT_NETWORK,\n};\n\nexport const getInstance = xdefi_instances;\n\nexport const connect: Connect = async ({ instance, meta }) => {\n const ethInstance = chooseInstance(instance, meta, Networks.ETHEREUM);\n const solInstance = chooseInstance(instance, meta, Networks.SOLANA);\n const cosmosInstance = chooseInstance(instance, meta, Networks.COSMOS);\n\n const evmResult = await getEvmAccounts(ethInstance);\n const nonEvmResults = await getNonEvmAccounts(instance);\n const solanaAccounts = await getSolanaAccounts({\n instance: solInstance,\n meta,\n });\n\n const cosmosAccounts: ProviderConnectResult[] = [];\n if (cosmosInstance) {\n const cosmosBlockchainMeta = meta.filter(\n (blockchainMeta: BlockchainMeta) =>\n isCosmosBlockchain(blockchainMeta) &&\n SUPPORTED_COSMOS_CHAINS.includes(blockchainMeta.name as Networks)\n );\n const requestedNetwork = Networks.COSMOS;\n\n const cosmosResult = await getCosmosAccounts({\n instance: cosmosInstance,\n meta: cosmosBlockchainMeta,\n network: requestedNetwork,\n });\n if (Array.isArray(cosmosResult)) {\n cosmosAccounts.push(...cosmosResult);\n } else {\n cosmosAccounts.push(cosmosResult);\n }\n }\n\n return [\n evmResult,\n ...nonEvmResults,\n solanaAccounts as ProviderConnectResult,\n ...cosmosAccounts,\n ];\n};\n\nexport const subscribe: Subscribe = ({\n instance,\n meta,\n updateChainId,\n connect,\n}) => {\n const handleChainChanged = (chainId: string) => {\n const network = getBlockChainNameFromId(chainId, meta) || Networks.Unknown;\n /*\n *TODO:\n *We are calling `connect` here because signer can't detect\n *currect network, I guess the bug is in our signer and it\n *gets the wrong network by calling a wrong method or something.\n *Anyways, this works for now, maybe we can reconsider it in future\n *Whenever we refactored the signer code as well.\n */\n\n /*\n * we need to update `network` first, if not, it will goes through\n * the switching network and will open unneccessary pop ups.\n */\n updateChainId(chainId);\n connect(network);\n };\n const eth = chooseInstance(instance, meta, Networks.ETHEREUM);\n eth?.on?.('chainChanged', handleChainChanged);\n\n return () => {\n eth?.off?.('chainChanged', handleChainChanged);\n };\n};\n\nexport const switchNetwork: SwitchNetwork = switchNetworkForEvm;\n\nexport const canSwitchNetworkTo: CanSwitchNetwork = canSwitchNetworkToEvm;\n\nexport const getSigners: (provider: any) => SignerFactory = signer;\n\nexport const canEagerConnect: CanEagerConnect = async ({ instance, meta }) => {\n const evm_instance = chooseInstance(instance, meta, Networks.ETHEREUM);\n if (evm_instance) {\n return canEagerlyConnectToEvm({ instance: evm_instance, meta });\n }\n return Promise.resolve(false);\n};\nexport const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo = (\n allBlockChains\n) => {\n const supportedCosmosChains = cosmosBlockchains(allBlockChains).filter(\n (blockchainMeta: BlockchainMeta) =>\n !!blockchainMeta.info &&\n SUPPORTED_COSMOS_CHAINS.includes(blockchainMeta.name as Networks)\n );\n\n const supportedChains = [\n ...allBlockChains.filter((blockchainMeta) =>\n [\n ...SUPPORTED_ETH_CHAINS,\n ...XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS,\n Networks.SOLANA,\n ].includes(blockchainMeta.name as Networks)\n ),\n ...supportedCosmosChains,\n ];\n return {\n name: 'XDefi',\n img: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/xdefi/icon.svg',\n installLink: {\n CHROME:\n 'https://chrome.google.com/webstore/detail/xdefi-wallet/hmeobnfnfcmdkdcmlblgagmfpfboieaf',\n BRAVE:\n 'https://chrome.google.com/webstore/detail/xdefi-wallet/hmeobnfnfcmdkdcmlblgagmfpfboieaf',\n DEFAULT: 'https://xdefi.io/',\n },\n color: '#0646c7',\n supportedChains,\n };\n};\n\n// it is required in /examples/queue-manager-demo\nexport { SUPPORTED_ETH_CHAINS } from './constants.js';\n", "import {\n Networks,\n XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS,\n} from '@rango-dev/wallets-shared';\n\nexport const SUPPORTED_NETWORKS = XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS;\nexport const SUPPORTED_ETH_CHAINS = [\n Networks.POLYGON,\n Networks.ETHEREUM,\n Networks.BSC,\n Networks.AVAX_CCHAIN,\n Networks.FANTOM,\n Networks.ARBITRUM,\n];\nexport const SUPPORTED_COSMOS_CHAINS = [\n Networks.COSMOS,\n Networks.AKASH,\n Networks.AXELAR,\n Networks.CRYPTO_ORG,\n Networks.JUNO,\n Networks.KUJIRA,\n Networks.MARS,\n Networks.OSMOSIS,\n Networks.STARGAZE,\n Networks.STRIDE,\n];\n", "import type { Network, ProviderConnectResult } from '@rango-dev/wallets-shared';\n\nimport { Networks } from '@rango-dev/wallets-shared';\nimport { SignerError, SignerErrorCode } from 'rango-types';\n\nimport { SUPPORTED_ETH_CHAINS, SUPPORTED_NETWORKS } from './constants.js';\n\ntype Provider = Map<Network, any>;\n\nexport function xdefi() {\n const { xfi } = window;\n\n if (!xfi) {\n return null;\n }\n\n const instances = new Map();\n if (xfi.bitcoin) {\n instances.set(Networks.BTC, xfi.bitcoin);\n }\n if (xfi.litecoin) {\n instances.set(Networks.LTC, xfi.litecoin);\n }\n if (xfi.thorchain) {\n instances.set(Networks.THORCHAIN, xfi.thorchain);\n }\n if (xfi.bitcoincash) {\n instances.set(Networks.BCH, xfi.bitcoincash);\n }\n if (xfi.binance) {\n instances.set(Networks.BINANCE, xfi.binance);\n }\n if (xfi.ethereum) {\n instances.set(Networks.ETHEREUM, xfi.ethereum);\n }\n if (xfi.dogecoin) {\n instances.set(Networks.DOGE, xfi.dogecoin);\n }\n if (xfi.solana) {\n instances.set(Networks.SOLANA, xfi.solana);\n }\n if (xfi.mayachain) {\n instances.set(Networks.MAYA, xfi.mayachain);\n }\n if (xfi.keplr) {\n instances.set(Networks.COSMOS, xfi.keplr);\n }\n\n return instances;\n}\n\nexport function getEthChainsInstance(netowrk: Network | null): Network | null {\n if (!netowrk) {\n return null;\n }\n return SUPPORTED_ETH_CHAINS.includes(netowrk as Networks)\n ? Networks.ETHEREUM\n : null;\n}\n\nexport async function getNonEvmAccounts(\n instances: Provider\n): Promise<ProviderConnectResult[]> {\n const nonEvmNetworks = SUPPORTED_NETWORKS.filter(\n (net: Network) => net !== Networks.ETHEREUM\n );\n const promises: Promise<ProviderConnectResult>[] = nonEvmNetworks.map(\n async (network: Network) => {\n return new Promise((resolve, reject) => {\n const instance = instances.get(network);\n instance.request(\n {\n method: 'request_accounts',\n params: [],\n },\n (error: any, accounts: any) => {\n if (error) {\n reject(error);\n return error;\n }\n\n const result = {\n accounts,\n chainId: network,\n };\n\n resolve(result);\n }\n );\n });\n }\n );\n\n const results = await Promise.all(promises);\n\n return results;\n}\n\nexport async function xdefiTransfer(\n blockchain: string,\n ticker: string,\n from: string,\n amount: string,\n decimals: number,\n recipientAddress: string | null,\n provider: any,\n method: string,\n memo?: string\n): Promise<string> {\n return new Promise(function (resolve, reject) {\n const params = {\n asset: { chain: blockchain, symbol: ticker, ticker: ticker },\n from: from,\n amount: { amount: amount, decimals: decimals },\n memo: memo,\n // recipient: to,\n } as any;\n if (recipientAddress) {\n params.recipient = recipientAddress;\n }\n\n provider.request(\n { method: method, params: [params] },\n (error: any, result: any) => {\n if (error) {\n reject(\n new SignerError(SignerErrorCode.SEND_TX_ERROR, undefined, error)\n );\n } else {\n resolve(result);\n }\n }\n );\n });\n}\n", "import type { SignerFactory } from 'rango-types';\n\nimport { DefaultEvmSigner } from '@rango-dev/signer-evm';\nimport { DefaultSolanaSigner } from '@rango-dev/signer-solana';\nimport { getNetworkInstance, Networks } from '@rango-dev/wallets-shared';\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nimport { CustomCosmosSigner } from './cosmos-signer.js';\nimport { CustomTransferSigner } from './utxo-signer.js';\n\nexport default function getSigners(provider: any): SignerFactory {\n const ethProvider = getNetworkInstance(provider, Networks.ETHEREUM);\n const solProvider = getNetworkInstance(provider, Networks.SOLANA);\n\n const signers = new DefaultSignerFactory();\n signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider));\n signers.registerSigner(TxType.SOLANA, new DefaultSolanaSigner(solProvider));\n // passed provider for transfer as it comprises several signers\n signers.registerSigner(TxType.COSMOS, new CustomCosmosSigner(provider));\n // passed provider for transfer as it comprises several signers\n signers.registerSigner(TxType.TRANSFER, new CustomTransferSigner(provider));\n return signers;\n}\n", "import type { CosmosTransaction, GenericSigner } from 'rango-types';\n\nimport { executeCosmosTransaction } from '@rango-dev/signer-cosmos';\nimport { getNetworkInstance, Networks } from '@rango-dev/wallets-shared';\nimport { SignerError, SignerErrorCode } from 'rango-types';\n\nimport { xdefiTransfer } from './helpers.js';\n\n/*\n * TODO - replace with real type\n * tslint:disable-next-line: no-any\n */\ntype CosmosExternalProvider = any;\n\nexport class CustomCosmosSigner implements GenericSigner<CosmosTransaction> {\n private provider: CosmosExternalProvider;\n constructor(provider: CosmosExternalProvider) {\n this.provider = provider;\n }\n\n async signMessage(\n msg: string,\n address: string,\n chainId: string | null\n ): Promise<string> {\n try {\n if (!chainId) {\n throw Error('ChainId is required');\n }\n const { signature } = await this.provider.signArbitrary(\n chainId,\n address,\n msg\n );\n return signature;\n } catch (error) {\n throw new SignerError(SignerErrorCode.SIGN_TX_ERROR, undefined, error);\n }\n }\n async signAndSendTx(tx: CosmosTransaction): Promise<{ hash: string }> {\n if (tx.rawTransfer === null) {\n const cosmosProvider = getNetworkInstance(this.provider, Networks.COSMOS);\n const hash = await executeCosmosTransaction(tx, cosmosProvider);\n return { hash };\n }\n\n const binanceProvider = getNetworkInstance(this.provider, Networks.BINANCE);\n\n const from = tx.fromWalletAddress;\n const { method, memo, recipient, decimals, amount, asset } = tx.rawTransfer;\n const blockchain = tx.blockChain;\n const hash = await xdefiTransfer(\n blockchain,\n asset.ticker,\n from,\n amount,\n decimals,\n recipient,\n binanceProvider,\n method,\n memo ?? undefined\n );\n return { hash };\n }\n}\n", "import type { Networks } from '@rango-dev/wallets-shared';\nimport type { GenericSigner, Transfer } from 'rango-types';\n\nimport {\n getNetworkInstance,\n XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS,\n} from '@rango-dev/wallets-shared';\nimport { SignerError } from 'rango-types';\n\nimport { xdefiTransfer } from './helpers.js';\n\n/*\n * TODO - replace with real type\n * tslint:disable-next-line: no-any\n */\ntype TransferExternalProvider = any;\n\nexport class CustomTransferSigner implements GenericSigner<Transfer> {\n private provider: TransferExternalProvider;\n constructor(provider: TransferExternalProvider) {\n this.provider = provider;\n }\n\n async signMessage(): Promise<string> {\n throw SignerError.UnimplementedError('signMessage');\n }\n\n async signAndSendTx(tx: Transfer): Promise<{ hash: string }> {\n const { blockchain } = tx.asset;\n\n // Everything except ETH\n if (\n !XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS.includes(blockchain as Networks)\n ) {\n throw new Error(\n `blockchain: ${blockchain} transfer not implemented yet.`\n );\n }\n const transferProvider = getNetworkInstance(this.provider, blockchain);\n\n const {\n method,\n memo,\n recipientAddress,\n decimals,\n amount,\n fromWalletAddress: from,\n asset,\n } = tx;\n\n const hash = await xdefiTransfer(\n blockchain,\n asset.ticker,\n from,\n amount,\n decimals,\n recipientAddress,\n transferProvider,\n method,\n memo ?? undefined\n );\n return { hash };\n }\n}\n"],
5
- "mappings": "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",
6
- "names": ["canEagerlyConnectToEvm", "canSwitchNetworkToEvm", "chooseInstance", "getBlockChainNameFromId", "getCosmosAccounts", "getEvmAccounts", "getSolanaAccounts", "Networks", "switchNetworkForEvm", "WalletTypes", "XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS", "cosmosBlockchains", "isCosmosBlockchain", "Networks", "XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS", "SUPPORTED_NETWORKS", "SUPPORTED_ETH_CHAINS", "SUPPORTED_COSMOS_CHAINS", "Networks", "SignerError", "SignerErrorCode", "xdefi", "xfi", "instances", "Networks", "__name", "getNonEvmAccounts", "instances", "promises", "SUPPORTED_NETWORKS", "net", "Networks", "network", "resolve", "reject", "error", "accounts", "__name", "xdefiTransfer", "blockchain", "ticker", "from", "amount", "decimals", "recipientAddress", "provider", "method", "memo", "params", "result", "SignerError", "SignerErrorCode", "DefaultEvmSigner", "DefaultSolanaSigner", "getNetworkInstance", "Networks", "DefaultSignerFactory", "TxType", "executeCosmosTransaction", "getNetworkInstance", "Networks", "SignerError", "SignerErrorCode", "CustomCosmosSigner", "__name", "provider", "msg", "address", "chainId", "signature", "error", "SignerError", "SignerErrorCode", "tx", "cosmosProvider", "getNetworkInstance", "Networks", "executeCosmosTransaction", "binanceProvider", "from", "method", "memo", "recipient", "decimals", "amount", "asset", "blockchain", "xdefiTransfer", "getNetworkInstance", "XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS", "SignerError", "CustomTransferSigner", "__name", "provider", "SignerError", "tx", "blockchain", "XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS", "transferProvider", "getNetworkInstance", "method", "memo", "recipientAddress", "decimals", "amount", "from", "asset", "xdefiTransfer", "getSigners", "provider", "ethProvider", "getNetworkInstance", "Networks", "solProvider", "signers", "DefaultSignerFactory", "TxType", "DefaultEvmSigner", "DefaultSolanaSigner", "CustomCosmosSigner", "CustomTransferSigner", "__name", "DEFAULT_NETWORK", "Networks", "WALLET", "WalletTypes", "config", "getInstance", "xdefi", "connect", "__name", "instance", "meta", "ethInstance", "chooseInstance", "solInstance", "cosmosInstance", "evmResult", "getEvmAccounts", "nonEvmResults", "getNonEvmAccounts", "solanaAccounts", "getSolanaAccounts", "cosmosAccounts", "cosmosBlockchainMeta", "blockchainMeta", "isCosmosBlockchain", "SUPPORTED_COSMOS_CHAINS", "requestedNetwork", "cosmosResult", "getCosmosAccounts", "subscribe", "updateChainId", "handleChainChanged", "chainId", "network", "getBlockChainNameFromId", "eth", "switchNetwork", "switchNetworkForEvm", "canSwitchNetworkTo", "canSwitchNetworkToEvm", "getSigners", "canEagerConnect", "evm_instance", "canEagerlyConnectToEvm", "getWalletInfo", "allBlockChains", "supportedCosmosChains", "cosmosBlockchains", "supportedChains", "SUPPORTED_ETH_CHAINS", "XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS"]
3
+ "sources": ["../src/index.ts", "../src/signer.ts"],
4
+ "sourcesContent": ["import type {\n CanEagerConnect,\n CanSwitchNetwork,\n Connect,\n ProviderConnectResult,\n Subscribe,\n SwitchNetwork,\n WalletInfo,\n} from '@rango-dev/wallets-shared';\n\nimport {\n canEagerlyConnectToEvm,\n canSwitchNetworkToEvm,\n chooseInstance,\n getBlockChainNameFromId,\n getCosmosAccounts,\n getEvmAccounts,\n getSolanaAccounts,\n Networks,\n switchNetworkForEvm,\n WalletTypes,\n XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS,\n} from '@rango-dev/wallets-shared';\nimport { type BlockchainMeta, type SignerFactory } from 'rango-types';\nimport { cosmosBlockchains, isCosmosBlockchain } from 'rango-types';\n\nimport { SUPPORTED_COSMOS_CHAINS, SUPPORTED_ETH_CHAINS } from './constants.js';\nimport { getNonEvmAccounts, xdefi as xdefi_instances } from './helpers.js';\nimport signer from './signer.js';\n\nconst DEFAULT_NETWORK = Networks.ETHEREUM;\nconst WALLET = WalletTypes.XDEFI;\n\nexport const config = {\n type: WALLET,\n defaultNetwork: DEFAULT_NETWORK,\n};\n\nexport const getInstance = xdefi_instances;\n\nexport const connect: Connect = async ({ instance, meta }) => {\n const ethInstance = chooseInstance(instance, meta, Networks.ETHEREUM);\n const solInstance = chooseInstance(instance, meta, Networks.SOLANA);\n const cosmosInstance = chooseInstance(instance, meta, Networks.COSMOS);\n\n const evmResult = await getEvmAccounts(ethInstance);\n const nonEvmResults = await getNonEvmAccounts(instance);\n const solanaAccounts = await getSolanaAccounts({\n instance: solInstance,\n meta,\n });\n\n const cosmosAccounts: ProviderConnectResult[] = [];\n if (cosmosInstance) {\n const cosmosBlockchainMeta = meta.filter(\n (blockchainMeta: BlockchainMeta) =>\n isCosmosBlockchain(blockchainMeta) &&\n SUPPORTED_COSMOS_CHAINS.includes(blockchainMeta.name as Networks)\n );\n const requestedNetwork = Networks.COSMOS;\n\n const cosmosResult = await getCosmosAccounts({\n instance: cosmosInstance,\n meta: cosmosBlockchainMeta,\n network: requestedNetwork,\n });\n if (Array.isArray(cosmosResult)) {\n cosmosAccounts.push(...cosmosResult);\n } else {\n cosmosAccounts.push(cosmosResult);\n }\n }\n\n return [\n evmResult,\n ...nonEvmResults,\n solanaAccounts as ProviderConnectResult,\n ...cosmosAccounts,\n ];\n};\n\nexport const subscribe: Subscribe = ({\n instance,\n meta,\n updateChainId,\n connect,\n}) => {\n const handleChainChanged = (chainId: string) => {\n const network = getBlockChainNameFromId(chainId, meta) || Networks.Unknown;\n /*\n *TODO:\n *We are calling `connect` here because signer can't detect\n *currect network, I guess the bug is in our signer and it\n *gets the wrong network by calling a wrong method or something.\n *Anyways, this works for now, maybe we can reconsider it in future\n *Whenever we refactored the signer code as well.\n */\n\n /*\n * we need to update `network` first, if not, it will goes through\n * the switching network and will open unneccessary pop ups.\n */\n updateChainId(chainId);\n connect(network);\n };\n const eth = chooseInstance(instance, meta, Networks.ETHEREUM);\n eth?.on?.('chainChanged', handleChainChanged);\n\n return () => {\n eth?.off?.('chainChanged', handleChainChanged);\n };\n};\n\nexport const switchNetwork: SwitchNetwork = switchNetworkForEvm;\n\nexport const canSwitchNetworkTo: CanSwitchNetwork = canSwitchNetworkToEvm;\n\nexport const getSigners: (provider: any) => Promise<SignerFactory> = signer;\n\nexport const canEagerConnect: CanEagerConnect = async ({ instance, meta }) => {\n const evm_instance = chooseInstance(instance, meta, Networks.ETHEREUM);\n if (evm_instance) {\n return canEagerlyConnectToEvm({ instance: evm_instance, meta });\n }\n return Promise.resolve(false);\n};\nexport const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo = (\n allBlockChains\n) => {\n const supportedCosmosChains = cosmosBlockchains(allBlockChains).filter(\n (blockchainMeta: BlockchainMeta) =>\n !!blockchainMeta.info &&\n SUPPORTED_COSMOS_CHAINS.includes(blockchainMeta.name as Networks)\n );\n\n const supportedChains = [\n ...allBlockChains.filter((blockchainMeta) =>\n [\n ...SUPPORTED_ETH_CHAINS,\n ...XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS,\n Networks.SOLANA,\n ].includes(blockchainMeta.name as Networks)\n ),\n ...supportedCosmosChains,\n ];\n return {\n name: 'XDefi',\n img: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/xdefi/icon.svg',\n installLink: {\n CHROME:\n 'https://chrome.google.com/webstore/detail/xdefi-wallet/hmeobnfnfcmdkdcmlblgagmfpfboieaf',\n BRAVE:\n 'https://chrome.google.com/webstore/detail/xdefi-wallet/hmeobnfnfcmdkdcmlblgagmfpfboieaf',\n DEFAULT: 'https://xdefi.io/',\n },\n color: '#0646c7',\n supportedChains,\n };\n};\n\n// it is required in /examples/queue-manager-demo\nexport { SUPPORTED_ETH_CHAINS } from './constants.js';\n", "import type { SignerFactory } from 'rango-types';\n\nimport { getNetworkInstance, Networks } from '@rango-dev/wallets-shared';\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nexport default async function getSigners(\n provider: any\n): Promise<SignerFactory> {\n const ethProvider = getNetworkInstance(provider, Networks.ETHEREUM);\n const solProvider = getNetworkInstance(provider, Networks.SOLANA);\n\n const signers = new DefaultSignerFactory();\n const { DefaultEvmSigner } = await import('@rango-dev/signer-evm');\n const { CustomSolanaSigner } = await import('./solana-signer.js');\n const { CustomCosmosSigner } = await import('./cosmos-signer.js');\n const { CustomTransferSigner } = await import('./utxo-signer.js');\n\n signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider));\n signers.registerSigner(TxType.SOLANA, new CustomSolanaSigner(solProvider));\n // passed provider for transfer as it comprises several signers\n signers.registerSigner(TxType.COSMOS, new CustomCosmosSigner(provider));\n // passed provider for transfer as it comprises several signers\n signers.registerSigner(TxType.TRANSFER, new CustomTransferSigner(provider));\n return signers;\n}\n"],
5
+ "mappings": "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",
6
+ "names": ["canEagerlyConnectToEvm", "canSwitchNetworkToEvm", "chooseInstance", "getBlockChainNameFromId", "getCosmosAccounts", "getEvmAccounts", "getSolanaAccounts", "Networks", "switchNetworkForEvm", "WalletTypes", "XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS", "cosmosBlockchains", "isCosmosBlockchain", "getNetworkInstance", "Networks", "DefaultSignerFactory", "TxType", "getSigners", "provider", "ethProvider", "getNetworkInstance", "Networks", "solProvider", "signers", "DefaultSignerFactory", "DefaultEvmSigner", "CustomSolanaSigner", "CustomCosmosSigner", "CustomTransferSigner", "TxType", "__name", "DEFAULT_NETWORK", "Networks", "WALLET", "WalletTypes", "config", "getInstance", "xdefi", "connect", "__name", "instance", "meta", "ethInstance", "chooseInstance", "solInstance", "cosmosInstance", "evmResult", "getEvmAccounts", "nonEvmResults", "getNonEvmAccounts", "solanaAccounts", "getSolanaAccounts", "cosmosAccounts", "cosmosBlockchainMeta", "blockchainMeta", "isCosmosBlockchain", "SUPPORTED_COSMOS_CHAINS", "requestedNetwork", "cosmosResult", "getCosmosAccounts", "subscribe", "updateChainId", "handleChainChanged", "chainId", "network", "getBlockChainNameFromId", "eth", "switchNetwork", "switchNetworkForEvm", "canSwitchNetworkTo", "canSwitchNetworkToEvm", "getSigners", "canEagerConnect", "evm_instance", "canEagerlyConnectToEvm", "getWalletInfo", "allBlockChains", "supportedCosmosChains", "cosmosBlockchains", "supportedChains", "SUPPORTED_ETH_CHAINS", "XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS"]
7
7
  }
@@ -1 +1 @@
1
- {"inputs":{"src/constants.ts":{"bytes":568,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true}],"format":"esm"},"src/helpers.ts":{"bytes":3221,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"./constants.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/cosmos-signer.ts":{"bytes":1846,"imports":[{"path":"@rango-dev/signer-cosmos","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/helpers.ts","kind":"import-statement","original":"./helpers.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/utxo-signer.ts":{"bytes":1533,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/helpers.ts","kind":"import-statement","original":"./helpers.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/signer.ts":{"bytes":1154,"imports":[{"path":"@rango-dev/signer-evm","kind":"import-statement","external":true},{"path":"@rango-dev/signer-solana","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/cosmos-signer.ts","kind":"import-statement","original":"./cosmos-signer.js"},{"path":"src/utxo-signer.ts","kind":"import-statement","original":"./utxo-signer.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":4913,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"./constants.js"},{"path":"src/helpers.ts","kind":"import-statement","original":"./helpers.js"},{"path":"src/signer.ts","kind":"import-statement","original":"./signer.js"},{"path":"src/constants.ts","kind":"import-statement","original":"./constants.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/index.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":22460},"dist/index.js":{"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/signer-evm","kind":"import-statement","external":true},{"path":"@rango-dev/signer-solana","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/signer-cosmos","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true}],"exports":["SUPPORTED_ETH_CHAINS","canEagerConnect","canSwitchNetworkTo","config","connect","getInstance","getSigners","getWalletInfo","subscribe","switchNetwork"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":1692},"src/constants.ts":{"bytesInOutput":264},"src/helpers.ts":{"bytesInOutput":1113},"src/signer.ts":{"bytesInOutput":499},"src/cosmos-signer.ts":{"bytesInOutput":786},"src/utxo-signer.ts":{"bytesInOutput":601}},"bytes":5268}}}
1
+ {"inputs":{"src/constants.ts":{"bytes":568,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true}],"format":"esm"},"src/helpers.ts":{"bytes":3253,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"./constants.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/solana-signer.ts":{"bytes":557,"imports":[{"path":"@rango-dev/signer-solana","kind":"import-statement","external":true},{"path":"bs58","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/cosmos-signer.ts":{"bytes":1403,"imports":[{"path":"@rango-dev/signer-cosmos","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/utxo-signer.ts":{"bytes":1533,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/helpers.ts","kind":"import-statement","original":"./helpers.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/signer.ts":{"bytes":1213,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/signer-evm","kind":"dynamic-import","external":true},{"path":"src/solana-signer.ts","kind":"dynamic-import","original":"./solana-signer.js"},{"path":"src/cosmos-signer.ts","kind":"dynamic-import","original":"./cosmos-signer.js"},{"path":"src/utxo-signer.ts","kind":"dynamic-import","original":"./utxo-signer.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/index.ts":{"bytes":4922,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"./constants.js"},{"path":"src/helpers.ts","kind":"import-statement","original":"./helpers.js"},{"path":"src/signer.ts","kind":"import-statement","original":"./signer.js"},{"path":"src/constants.ts","kind":"import-statement","original":"./constants.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/index.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":10472},"dist/index.js":{"imports":[{"path":"dist/chunk-MEPWRNV6.js","kind":"import-statement"},{"path":"dist/chunk-DYCPFO4Y.js","kind":"import-statement"},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/signer-evm","kind":"dynamic-import","external":true},{"path":"dist/solana-signer-774Z76QJ.js","kind":"dynamic-import"},{"path":"dist/cosmos-signer-EU3BOHAU.js","kind":"dynamic-import"},{"path":"dist/utxo-signer-ZB6Q3UPL.js","kind":"dynamic-import"}],"exports":["SUPPORTED_ETH_CHAINS","canEagerConnect","canSwitchNetworkTo","config","connect","getInstance","getSigners","getWalletInfo","subscribe","switchNetwork"],"entryPoint":"src/index.ts","inputs":{"src/index.ts":{"bytesInOutput":1676},"src/signer.ts":{"bytesInOutput":645}},"bytes":2650},"dist/solana-signer-774Z76QJ.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":1133},"dist/solana-signer-774Z76QJ.js":{"imports":[{"path":"dist/chunk-DYCPFO4Y.js","kind":"import-statement"},{"path":"@rango-dev/signer-solana","kind":"import-statement","external":true},{"path":"bs58","kind":"import-statement","external":true}],"exports":["CustomSolanaSigner"],"entryPoint":"src/solana-signer.ts","inputs":{"src/solana-signer.ts":{"bytesInOutput":290}},"bytes":414},"dist/cosmos-signer-EU3BOHAU.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":2489},"dist/cosmos-signer-EU3BOHAU.js":{"imports":[{"path":"dist/chunk-DYCPFO4Y.js","kind":"import-statement"},{"path":"@rango-dev/signer-cosmos","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true}],"exports":["CustomCosmosSigner"],"entryPoint":"src/cosmos-signer.ts","inputs":{"src/cosmos-signer.ts":{"bytesInOutput":653}},"bytes":777},"dist/utxo-signer-ZB6Q3UPL.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":2634},"dist/utxo-signer-ZB6Q3UPL.js":{"imports":[{"path":"dist/chunk-MEPWRNV6.js","kind":"import-statement"},{"path":"dist/chunk-DYCPFO4Y.js","kind":"import-statement"},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true}],"exports":["CustomTransferSigner"],"entryPoint":"src/utxo-signer.ts","inputs":{"src/utxo-signer.ts":{"bytesInOutput":601}},"bytes":765},"dist/chunk-MEPWRNV6.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":6473},"dist/chunk-MEPWRNV6.js":{"imports":[{"path":"dist/chunk-DYCPFO4Y.js","kind":"import-statement"},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true}],"exports":["a","b","c","d","e"],"inputs":{"src/constants.ts":{"bytesInOutput":264},"src/helpers.ts":{"bytesInOutput":1104}},"bytes":1490},"dist/chunk-DYCPFO4Y.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":93},"dist/chunk-DYCPFO4Y.js":{"imports":[],"exports":["a"],"inputs":{},"bytes":138}}}
package/dist/signer.d.ts CHANGED
@@ -1,3 +1,3 @@
1
1
  import type { SignerFactory } from 'rango-types';
2
- export default function getSigners(provider: any): SignerFactory;
2
+ export default function getSigners(provider: any): Promise<SignerFactory>;
3
3
  //# sourceMappingURL=signer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAUjD,MAAM,CAAC,OAAO,UAAU,UAAU,CAAC,QAAQ,EAAE,GAAG,GAAG,aAAa,CAY/D"}
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAKjD,wBAA8B,UAAU,CACtC,QAAQ,EAAE,GAAG,GACZ,OAAO,CAAC,aAAa,CAAC,CAiBxB"}
@@ -0,0 +1,2 @@
1
+ import{a as r}from"./chunk-DYCPFO4Y.js";import{DefaultSolanaSigner as t}from"@rango-dev/signer-solana";import a from"bs58";var n=class extends t{static{r(this,"CustomSolanaSigner")}constructor(e){super(e)}async signMessage(e){let s=new TextEncoder().encode(e),{signature:o}=await this.provider.signMessage(s);return a.encode(o)}};export{n as CustomSolanaSigner};
2
+ //# sourceMappingURL=solana-signer-774Z76QJ.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/solana-signer.ts"],
4
+ "sourcesContent": ["import { DefaultSolanaSigner } from '@rango-dev/signer-solana';\nimport base58 from 'bs58';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype SolanaExternalProvider = any;\n\nexport class CustomSolanaSigner extends DefaultSolanaSigner {\n constructor(provider: SolanaExternalProvider) {\n super(provider);\n }\n\n async signMessage(msg: string): Promise<string> {\n const encodedMessage = new TextEncoder().encode(msg);\n const { signature } = await this.provider.signMessage(encodedMessage);\n return base58.encode(signature);\n }\n}\n"],
5
+ "mappings": "wCAAA,OAAS,uBAAAA,MAA2B,2BACpC,OAAOC,MAAY,OAKZ,IAAMC,EAAN,cAAiCC,CAAoB,CAN5D,MAM4D,CAAAC,EAAA,2BAC1D,YAAYC,EAAkC,CAC5C,MAAMA,CAAQ,CAChB,CAEA,MAAM,YAAYC,EAA8B,CAC9C,IAAMC,EAAiB,IAAI,YAAY,EAAE,OAAOD,CAAG,EAC7C,CAAE,UAAAE,CAAU,EAAI,MAAM,KAAK,SAAS,YAAYD,CAAc,EACpE,OAAOE,EAAO,OAAOD,CAAS,CAChC,CACF",
6
+ "names": ["DefaultSolanaSigner", "base58", "CustomSolanaSigner", "DefaultSolanaSigner", "__name", "provider", "msg", "encodedMessage", "signature", "base58"]
7
+ }
@@ -0,0 +1,8 @@
1
+ import { DefaultSolanaSigner } from '@rango-dev/signer-solana';
2
+ type SolanaExternalProvider = any;
3
+ export declare class CustomSolanaSigner extends DefaultSolanaSigner {
4
+ constructor(provider: SolanaExternalProvider);
5
+ signMessage(msg: string): Promise<string>;
6
+ }
7
+ export {};
8
+ //# sourceMappingURL=solana-signer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana-signer.d.ts","sourceRoot":"","sources":["../src/solana-signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAI/D,KAAK,sBAAsB,GAAG,GAAG,CAAC;AAElC,qBAAa,kBAAmB,SAAQ,mBAAmB;gBAC7C,QAAQ,EAAE,sBAAsB;IAItC,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;CAKhD"}
@@ -0,0 +1,2 @@
1
+ import{e as n}from"./chunk-MEPWRNV6.js";import{a as s}from"./chunk-DYCPFO4Y.js";import{getNetworkInstance as l,XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS as h}from"@rango-dev/wallets-shared";import{SignerError as g}from"rango-types";var t=class{static{s(this,"CustomTransferSigner")}provider;constructor(r){this.provider=r}async signMessage(){throw g.UnimplementedError("signMessage")}async signAndSendTx(r){let{blockchain:e}=r.asset;if(!h.includes(e))throw new Error(`blockchain: ${e} transfer not implemented yet.`);let o=l(this.provider,e),{method:i,memo:a,recipientAddress:m,decimals:d,amount:c,fromWalletAddress:f,asset:p}=r;return{hash:await n(e,p.ticker,f,c,d,m,o,i,a??void 0)}}};export{t as CustomTransferSigner};
2
+ //# sourceMappingURL=utxo-signer-ZB6Q3UPL.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../src/utxo-signer.ts"],
4
+ "sourcesContent": ["import type { Networks } from '@rango-dev/wallets-shared';\nimport type { GenericSigner, Transfer } from 'rango-types';\n\nimport {\n getNetworkInstance,\n XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS,\n} from '@rango-dev/wallets-shared';\nimport { SignerError } from 'rango-types';\n\nimport { xdefiTransfer } from './helpers.js';\n\n/*\n * TODO - replace with real type\n * tslint:disable-next-line: no-any\n */\ntype TransferExternalProvider = any;\n\nexport class CustomTransferSigner implements GenericSigner<Transfer> {\n private provider: TransferExternalProvider;\n constructor(provider: TransferExternalProvider) {\n this.provider = provider;\n }\n\n async signMessage(): Promise<string> {\n throw SignerError.UnimplementedError('signMessage');\n }\n\n async signAndSendTx(tx: Transfer): Promise<{ hash: string }> {\n const { blockchain } = tx.asset;\n\n // Everything except ETH\n if (\n !XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS.includes(blockchain as Networks)\n ) {\n throw new Error(\n `blockchain: ${blockchain} transfer not implemented yet.`\n );\n }\n const transferProvider = getNetworkInstance(this.provider, blockchain);\n\n const {\n method,\n memo,\n recipientAddress,\n decimals,\n amount,\n fromWalletAddress: from,\n asset,\n } = tx;\n\n const hash = await xdefiTransfer(\n blockchain,\n asset.ticker,\n from,\n amount,\n decimals,\n recipientAddress,\n transferProvider,\n method,\n memo ?? undefined\n );\n return { hash };\n }\n}\n"],
5
+ "mappings": "gFAGA,OACE,sBAAAA,EACA,wCAAAC,MACK,4BACP,OAAS,eAAAC,MAAmB,cAUrB,IAAMC,EAAN,KAA8D,CAjBrE,MAiBqE,CAAAC,EAAA,6BAC3D,SACR,YAAYC,EAAoC,CAC9C,KAAK,SAAWA,CAClB,CAEA,MAAM,aAA+B,CACnC,MAAMC,EAAY,mBAAmB,aAAa,CACpD,CAEA,MAAM,cAAcC,EAAyC,CAC3D,GAAM,CAAE,WAAAC,CAAW,EAAID,EAAG,MAG1B,GACE,CAACE,EAAqC,SAASD,CAAsB,EAErE,MAAM,IAAI,MACR,eAAeA,CAAU,gCAC3B,EAEF,IAAME,EAAmBC,EAAmB,KAAK,SAAUH,CAAU,EAE/D,CACJ,OAAAI,EACA,KAAAC,EACA,iBAAAC,EACA,SAAAC,EACA,OAAAC,EACA,kBAAmBC,EACnB,MAAAC,CACF,EAAIX,EAaJ,MAAO,CAAE,KAXI,MAAMY,EACjBX,EACAU,EAAM,OACND,EACAD,EACAD,EACAD,EACAJ,EACAE,EACAC,GAAQ,MACV,CACc,CAChB,CACF",
6
+ "names": ["getNetworkInstance", "XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS", "SignerError", "CustomTransferSigner", "__name", "provider", "SignerError", "tx", "blockchain", "XDEFI_WALLET_SUPPORTED_NATIVE_CHAINS", "transferProvider", "getNetworkInstance", "method", "memo", "recipientAddress", "decimals", "amount", "from", "asset", "xdefiTransfer"]
7
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rango-dev/provider-xdefi",
3
- "version": "0.37.1",
3
+ "version": "0.37.2-next.1",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "source": "./src/index.ts",
@@ -14,7 +14,7 @@
14
14
  "src"
15
15
  ],
16
16
  "scripts": {
17
- "build": "node ../../scripts/build/command.mjs --path wallets/provider-xdefi",
17
+ "build": "node ../../scripts/build/command.mjs --path wallets/provider-xdefi --splitting",
18
18
  "ts-check": "tsc --declaration --emitDeclarationOnly -p ./tsconfig.json",
19
19
  "clean": "rimraf dist",
20
20
  "format": "prettier --write '{.,src}/**/*.{ts,tsx}'",
@@ -23,8 +23,9 @@
23
23
  "dependencies": {
24
24
  "@rango-dev/signer-cosmos": "^0.29.0",
25
25
  "@rango-dev/signer-evm": "^0.30.0",
26
- "@rango-dev/signer-solana": "^0.32.0",
27
- "@rango-dev/wallets-shared": "^0.37.0",
26
+ "@rango-dev/signer-solana": "^0.32.1-next.1",
27
+ "@rango-dev/wallets-shared": "^0.37.1-next.3",
28
+ "bs58": "^5.0.0",
28
29
  "rango-types": "^0.1.69"
29
30
  },
30
31
  "publishConfig": {
@@ -4,8 +4,6 @@ import { executeCosmosTransaction } from '@rango-dev/signer-cosmos';
4
4
  import { getNetworkInstance, Networks } from '@rango-dev/wallets-shared';
5
5
  import { SignerError, SignerErrorCode } from 'rango-types';
6
6
 
7
- import { xdefiTransfer } from './helpers.js';
8
-
9
7
  /*
10
8
  * TODO - replace with real type
11
9
  * tslint:disable-next-line: no-any
@@ -43,23 +41,6 @@ export class CustomCosmosSigner implements GenericSigner<CosmosTransaction> {
43
41
  const hash = await executeCosmosTransaction(tx, cosmosProvider);
44
42
  return { hash };
45
43
  }
46
-
47
- const binanceProvider = getNetworkInstance(this.provider, Networks.BINANCE);
48
-
49
- const from = tx.fromWalletAddress;
50
- const { method, memo, recipient, decimals, amount, asset } = tx.rawTransfer;
51
- const blockchain = tx.blockChain;
52
- const hash = await xdefiTransfer(
53
- blockchain,
54
- asset.ticker,
55
- from,
56
- amount,
57
- decimals,
58
- recipient,
59
- binanceProvider,
60
- method,
61
- memo ?? undefined
62
- );
63
- return { hash };
44
+ throw Error('raw transfer is not null for cosmos transactions');
64
45
  }
65
46
  }
package/src/helpers.ts CHANGED
@@ -27,9 +27,6 @@ export function xdefi() {
27
27
  if (xfi.bitcoincash) {
28
28
  instances.set(Networks.BCH, xfi.bitcoincash);
29
29
  }
30
- if (xfi.binance) {
31
- instances.set(Networks.BINANCE, xfi.binance);
32
- }
33
30
  if (xfi.ethereum) {
34
31
  instances.set(Networks.ETHEREUM, xfi.ethereum);
35
32
  }
@@ -64,8 +61,13 @@ export async function getNonEvmAccounts(
64
61
  const nonEvmNetworks = SUPPORTED_NETWORKS.filter(
65
62
  (net: Network) => net !== Networks.ETHEREUM
66
63
  );
67
- const promises: Promise<ProviderConnectResult>[] = nonEvmNetworks.map(
68
- async (network: Network) => {
64
+ const promises: Promise<ProviderConnectResult>[] = nonEvmNetworks
65
+ .filter(
66
+ (network: Network) =>
67
+ // Ensure the instance is defined
68
+ instances.get(network) !== undefined
69
+ )
70
+ .map(async (network: Network) => {
69
71
  return new Promise((resolve, reject) => {
70
72
  const instance = instances.get(network);
71
73
  instance.request(
@@ -88,8 +90,7 @@ export async function getNonEvmAccounts(
88
90
  }
89
91
  );
90
92
  });
91
- }
92
- );
93
+ });
93
94
 
94
95
  const results = await Promise.all(promises);
95
96
 
@@ -113,7 +114,6 @@ export async function xdefiTransfer(
113
114
  from: from,
114
115
  amount: { amount: amount, decimals: decimals },
115
116
  memo: memo,
116
- // recipient: to,
117
117
  } as any;
118
118
  if (recipientAddress) {
119
119
  params.recipient = recipientAddress;
package/src/index.ts CHANGED
@@ -115,7 +115,7 @@ export const switchNetwork: SwitchNetwork = switchNetworkForEvm;
115
115
 
116
116
  export const canSwitchNetworkTo: CanSwitchNetwork = canSwitchNetworkToEvm;
117
117
 
118
- export const getSigners: (provider: any) => SignerFactory = signer;
118
+ export const getSigners: (provider: any) => Promise<SignerFactory> = signer;
119
119
 
120
120
  export const canEagerConnect: CanEagerConnect = async ({ instance, meta }) => {
121
121
  const evm_instance = chooseInstance(instance, meta, Networks.ETHEREUM);
package/src/signer.ts CHANGED
@@ -1,20 +1,22 @@
1
1
  import type { SignerFactory } from 'rango-types';
2
2
 
3
- import { DefaultEvmSigner } from '@rango-dev/signer-evm';
4
- import { DefaultSolanaSigner } from '@rango-dev/signer-solana';
5
3
  import { getNetworkInstance, Networks } from '@rango-dev/wallets-shared';
6
4
  import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';
7
5
 
8
- import { CustomCosmosSigner } from './cosmos-signer.js';
9
- import { CustomTransferSigner } from './utxo-signer.js';
10
-
11
- export default function getSigners(provider: any): SignerFactory {
6
+ export default async function getSigners(
7
+ provider: any
8
+ ): Promise<SignerFactory> {
12
9
  const ethProvider = getNetworkInstance(provider, Networks.ETHEREUM);
13
10
  const solProvider = getNetworkInstance(provider, Networks.SOLANA);
14
11
 
15
12
  const signers = new DefaultSignerFactory();
13
+ const { DefaultEvmSigner } = await import('@rango-dev/signer-evm');
14
+ const { CustomSolanaSigner } = await import('./solana-signer.js');
15
+ const { CustomCosmosSigner } = await import('./cosmos-signer.js');
16
+ const { CustomTransferSigner } = await import('./utxo-signer.js');
17
+
16
18
  signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider));
17
- signers.registerSigner(TxType.SOLANA, new DefaultSolanaSigner(solProvider));
19
+ signers.registerSigner(TxType.SOLANA, new CustomSolanaSigner(solProvider));
18
20
  // passed provider for transfer as it comprises several signers
19
21
  signers.registerSigner(TxType.COSMOS, new CustomCosmosSigner(provider));
20
22
  // passed provider for transfer as it comprises several signers
@@ -0,0 +1,17 @@
1
+ import { DefaultSolanaSigner } from '@rango-dev/signer-solana';
2
+ import base58 from 'bs58';
3
+
4
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
+ type SolanaExternalProvider = any;
6
+
7
+ export class CustomSolanaSigner extends DefaultSolanaSigner {
8
+ constructor(provider: SolanaExternalProvider) {
9
+ super(provider);
10
+ }
11
+
12
+ async signMessage(msg: string): Promise<string> {
13
+ const encodedMessage = new TextEncoder().encode(msg);
14
+ const { signature } = await this.provider.signMessage(encodedMessage);
15
+ return base58.encode(signature);
16
+ }
17
+ }