@rango-dev/provider-phantom 0.48.1-next.0 → 0.48.1-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAYhE,eAAO,MAAM,oBAAoB,kBAIhC,CAAC;AAEF,eAAO,MAAM,SAAS,YAAY,CAAC;AACnC,eAAO,MAAM,8BAA8B,YAAY,CAAC;AAExD,eAAO,MAAM,IAAI,EAAE,YAwDlB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,yBAAyB,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AAehE,eAAO,MAAM,oBAAoB,kBAIhC,CAAC;AAEF,eAAO,MAAM,SAAS,YAAY,CAAC;AACnC,eAAO,MAAM,8BAA8B,YAAY,CAAC;AAExD,eAAO,MAAM,IAAI,EAAE,YA4DlB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/legacy/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,KAAK,EAIV,SAAS,EACT,UAAU,EACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACV,cAAc,EAEd,aAAa,EAGd,MAAM,aAAa,CAAC;AAGrB,OAAO,EAGL,WAAW,EACZ,MAAM,2BAA2B,CAAC;AAQnC,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAMzE,eAAO,MAAM,MAAM;;CAElB,CAAC;AAEF,eAAO,MAAM,WAAW,yBAAmB,CAAC;AAiB5C,eAAO,MAAM,SAAS,EAAE,SAevB,CAAC;AAMF,eAAO,MAAM,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,aAAa,CAC9D,CAAC;AAWT,eAAO,MAAM,aAAa,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,KAAK,UA2EjE,CAAC;AAEF,QAAA,MAAM,mBAAmB,EAAE,MAAM,uBAS/B,CAAC;AAEH,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/legacy/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,gCAAgC,CAAC;AAC9E,OAAO,KAAK,EAIV,SAAS,EACT,UAAU,EACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EACV,cAAc,EAEd,aAAa,EAGd,MAAM,aAAa,CAAC;AAGrB,OAAO,EAGL,WAAW,EACZ,MAAM,2BAA2B,CAAC;AASnC,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,KAAK,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIzE,eAAO,MAAM,MAAM;;CAElB,CAAC;AAEF,eAAO,MAAM,WAAW,yBAAmB,CAAC;AAiB5C,eAAO,MAAM,SAAS,EAAE,SAevB,CAAC;AAIF,eAAO,MAAM,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,OAAO,CAAC,aAAa,CAC9D,CAAC;AAWT,eAAO,MAAM,aAAa,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,KAAK,UA2EjE,CAAC;AAEF,QAAA,MAAM,mBAAmB,EAAE,MAAM,uBAS/B,CAAC;AAEH,OAAO,EAAE,mBAAmB,EAAE,CAAC"}
package/dist/mod.js CHANGED
@@ -1,2 +1,2 @@
1
- var k=Object.defineProperty;var e=(t,n)=>k(t,"name",{value:n,configurable:!0});var Y=(t,n)=>()=>(t&&(n=t(t=0)),n);var K=(t,n)=>{for(var o in n)k(t,o,{get:n[o],enumerable:!0})};var L={};K(L,{BTCSigner:()=>P});import*as on from"@bitcoinerlab/secp256k1";import{Networks as en}from"@rango-dev/wallets-shared";import*as E from"bitcoinjs-lib";import{SignerError as rn}from"rango-types";function cn(t){let n=atob(t),o=n.length,r=new Uint8Array(o);for(let a=0;a<o;a++)r[a]=n.charCodeAt(a);return r}var an,P,M=Y(()=>{"use strict";an="https://go.getblock.io/f37bad28a991436483c0a3679a3acbee";e(cn,"base64ToUint8Array");P=class{static{e(this,"BTCSigner")}provider;constructor(n){this.provider=n}async signMessage(){throw rn.UnimplementedError("signMessage")}async signAndSendTx(n){let{asset:o,psbt:r}=n;if(!r)throw new Error("No PSBT found to sign. Ensure a valid PSBT is provided.");if(o.blockchain!==en.BTC)throw new Error(`Signing ${o.blockchain} transaction is not implemented by the signer.`);E.initEccLib(on);let a=await this.provider.signPSBT(cn(r.unsignedPsbtBase64),{inputsToSign:r.inputsToSign}),i=E.Psbt.fromBuffer(Buffer.from(a));i.finalizeAllInputs();let c=i.extractTransaction().toHex(),s=await fetch(an,{method:"POST",body:JSON.stringify({method:"sendrawtransaction",params:[c]})});if(!s.ok){let p=await s.text();throw new Error(`Error broadcasting transaction: ${p}`)}let m=await s.json();if(!m.result)throw new Error(`Error broadcasting transaction. Error Code ${m.error.code}: ${m.error.message}`);return{hash:m.result}}}});import{defineVersions as ut}from"@rango-dev/wallets-core/utils";import{LegacyNetworks as h}from"@rango-dev/wallets-core/legacy";import{chooseInstance as ln,getSolanaAccounts as pn,WalletTypes as un}from"@rango-dev/wallets-shared";import{isEvmBlockchain as x,solanaBlockchain as _,TransactionType as U}from"rango-types";import"@rango-dev/wallets-core";import{LegacyNetworks as y}from"@rango-dev/wallets-core/legacy";import{Networks as Q}from"@rango-dev/wallets-shared";import{isEvmBlockchain as Z,solanaBlockchain as nn,TransactionType as tn}from"rango-types";var f=[y.ETHEREUM,y.POLYGON,y.BASE],l="phantom",g="Phantom",N={name:"Phantom",icon:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/phantom/icon.svg",extensions:{chrome:"https://chrome.google.com/webstore/detail/phantom/bfnaelmomeimhlpmgjnjophhpkkoljpa",homepage:"https://phantom.app/"},properties:[{name:"namespaces",value:{selection:"multiple",data:[{label:"EVM",value:"EVM",id:"ETH",getSupportedChains:t=>t.filter(n=>Z(n)&&f.includes(n.name))},{label:"Solana",value:"Solana",id:"SOLANA",getSupportedChains:t=>nn(t)},{label:"BTC",value:"UTXO",id:"BTC",getSupportedChains:t=>t.filter(n=>n.name===Q.BTC)},{label:"Sui",value:"Sui",id:"SUI",getSupportedChains:t=>t.filter(n=>n.type===tn.SUI)}]}}]};import{LegacyNetworks as u}from"@rango-dev/wallets-core/legacy";function d(){let{phantom:t}=window;if(!t)return null;let{solana:n,ethereum:o,bitcoin:r,sui:a}=t,i=new Map;return o&&o.isPhantom&&i.set(u.ETHEREUM,o),n&&n.isPhantom&&i.set(u.SOLANA,n),r&&r.isPhantom&&i.set(u.BTC,r),a&&a.isPhantom&&i.set(u.SUI,a),i}e(d,"phantom");function S(){let n=d()?.get(u.ETHEREUM);if(!n)throw new Error("Phantom not injected or EVM not enabled. Please check your wallet.");return n}e(S,"evmPhantom");function b(){let n=d()?.get(u.SOLANA);if(!n)throw new Error("Phantom not injected or Solana not enabled. Please check your wallet.");return n}e(b,"solanaPhantom");function v(){let n=d()?.get(u.BTC);if(!n)throw new Error("Phantom not injected or Bitcoin not enabled. Please check your wallet.");return n}e(v,"bitcoinPhantom");import{LegacyNetworks as C}from"@rango-dev/wallets-core/legacy";import{getInstance as sn}from"@rango-dev/wallets-core/namespaces/sui";import{getNetworkInstance as T}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as mn,TransactionType as w}from"rango-types";async function B(t){let n=T(t,C.SOLANA),o=T(t,C.ETHEREUM),r=T(t,C.BTC),a=sn(g),{DefaultEvmSigner:i}=await import("@rango-dev/signer-evm"),{DefaultSolanaSigner:c}=await import("@rango-dev/signer-solana"),{BTCSigner:s}=await Promise.resolve().then(()=>(M(),L)),{DefaultSuiSigner:m}=await import("@rango-dev/signer-sui"),p=new mn;return p.registerSigner(w.SOLANA,new c(n)),p.registerSigner(w.EVM,new i(o)),p.registerSigner(w.TRANSFER,new s(r)),a&&p.registerSigner(w.SUI,new m(a)),p}e(B,"getSigners");var dn=un.PHANTOM,fn={type:dn},gn=d,hn=e(async({instance:t,meta:n})=>{let o=t.get(h.SOLANA);return await pn({instance:o,meta:n})},"connect"),An=e(({instance:t,updateAccounts:n,connect:o})=>{let r=e(async a=>{let i=h.SOLANA;if(a){let c=a.toString();n([c])}else o(i)},"handleAccountsChanged");return t?.on?.("accountChanged",r),()=>{t?.off?.("accountChanged",r)}},"subscribe"),Sn=e(({network:t})=>f.includes(t),"canSwitchNetworkTo"),bn=B,En=e(async({instance:t,meta:n})=>{let o=ln(t,n,h.SOLANA);try{return!!await o.connect({onlyIfTrusted:!0})}catch{return!1}},"canEagerConnect"),wn=e(t=>{let n=[],o=t.filter(c=>c.type===U.SUI),r=_(t),a=t.filter(c=>x(c)&&f.includes(c.name)),i=t.find(c=>c.name===h.BTC);return n=n.concat(r,a,o),i&&n.push(i),{name:"Phantom",img:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/phantom/icon.svg",installLink:{CHROME:"https://chrome.google.com/webstore/detail/phantom/bfnaelmomeimhlpmgjnjophhpkkoljpa",DEFAULT:"https://phantom.app/"},color:"#4d40c6",needsNamespace:{selection:"multiple",data:[{label:"EVM",value:"EVM",id:"ETH",getSupportedChains:c=>c.filter(s=>x(s)&&f.includes(s.name))},{label:"Solana",value:"Solana",id:"SOLANA",getSupportedChains:c=>_(c)},{label:"BTC",value:"UTXO",id:"BTC",getSupportedChains:c=>c.filter(s=>s.name===h.BTC)},{label:"Sui",value:"Sui",id:"SUI",getSupportedChains:c=>c.filter(s=>s.type===U.SUI)}]},supportedChains:n}},"getWalletInfo"),O=e(()=>({config:fn,getInstance:gn,connect:hn,subscribe:An,canSwitchNetworkTo:Sn,getSigners:bn,getWalletInfo:wn,canEagerConnect:En}),"buildLegacyProvider");import{ProviderBuilder as pt}from"@rango-dev/wallets-core";import{NamespaceBuilder as yn}from"@rango-dev/wallets-core";import{builders as vn,standardizeAndThrowError as Pn}from"@rango-dev/wallets-core/namespaces/common";import{actions as I,builders as D}from"@rango-dev/wallets-core/namespaces/evm";var[Cn,W]=I.changeAccountSubscriber(S),Tn=D.connect().action(I.connect(S)).before(Cn).or(W).or(Pn).build(),Bn=vn.disconnect().after(W).build(),In=D.canEagerConnect().action(I.canEagerConnect(S)).build(),R=new yn("EVM",l).action(Tn).action(Bn).action(In).build();import{ActionBuilder as kn,NamespaceBuilder as Nn}from"@rango-dev/wallets-core";import{builders as Ln,standardizeAndThrowError as Mn}from"@rango-dev/wallets-core/namespaces/common";import{actions as xn,builders as _n,CAIP_NAMESPACE as Un,CAIP_SOLANA_CHAIN_ID as On}from"@rango-dev/wallets-core/namespaces/solana";import{CAIP as Dn}from"@rango-dev/wallets-core/utils";import{getSolanaAccounts as Wn}from"@rango-dev/wallets-shared";var[Rn,H]=xn.changeAccountSubscriber(b),Hn=_n.connect().action(async function(){let t=b(),n=await Wn({instance:t,meta:[]});if(Array.isArray(n))throw new Error("Expecting solana response to be a single value, not an array.");return n.accounts.map(r=>Dn.AccountId.format({address:r,chainId:{namespace:Un,reference:On}}))}).before(Rn).or(H).or(Mn).build(),jn=Ln.disconnect().after(H).build(),A=e(async()=>{let t=b();if(!t)throw new Error("Trying to eagerly connect to your Solana wallet, but seems its instance is not available.");try{return!!await t.connect({onlyIfTrusted:!0})}catch{return!1}},"canEagerConnectAction"),Vn=new kn("canEagerConnect").action(A).build(),j=new Nn("Solana",l).action(Hn).action(jn).action(Vn).build();import{ActionBuilder as Fn,NamespaceBuilder as zn}from"@rango-dev/wallets-core";import{builders as $n,standardizeAndThrowError as Gn}from"@rango-dev/wallets-core/namespaces/common";import{actions as Xn,builders as qn}from"@rango-dev/wallets-core/namespaces/sui";var[Jn,V]=Xn.changeAccountSubscriber({name:g}),Yn=qn.connect({name:g}).before(Jn).or(V).or(Gn).build(),Kn=$n.disconnect().after(V).build(),Qn=new Fn("canEagerConnect").action(A).build(),F=new zn("Sui",l).action(Yn).action(Kn).action(Qn).build();import{ActionBuilder as Zn,NamespaceBuilder as nt}from"@rango-dev/wallets-core";import{standardizeAndThrowError as tt}from"@rango-dev/wallets-core/namespaces/common";import{builders as ot}from"@rango-dev/wallets-core/namespaces/common";import{builders as et,CAIP_BITCOIN_CHAIN_ID as z,CAIP_NAMESPACE as $}from"@rango-dev/wallets-core/namespaces/utxo";import{CAIP as G}from"@rango-dev/wallets-core/utils";import{Networks as rt}from"@rango-dev/wallets-shared";var at=e(async()=>({accounts:(await v().requestAccounts()).filter(o=>o.purpose==="payment").map(o=>o.address),chainId:rt.BTC}),"getBitcoinAccounts");function ct(t){let n;return[(o,r)=>{let a=t();if(!a)throw new Error("Trying to subscribe to your Solana wallet, but seems its instance is not available.");let[,i]=o.state();if(n=e(c=>{if(!c.length){o.action("disconnect");return}let s=c.filter(m=>m.purpose==="payment").map(m=>G.AccountId.format({address:m.address,chainId:{namespace:$,reference:z}}));i("accounts",s)},"eventCallback"),a.on("accountsChanged",n),r instanceof Error)throw r},(o,r)=>{let a=t();return n&&a&&a.off("accountsChanged",n),r}]}e(ct,"getChangeAccountSubscriber");var[it,X]=ct(v),st=et.connect().action(async function(){let t=await at();if(Array.isArray(t))throw new Error("Expecting bitcoin response to be a single value, not an array.");return t.accounts.map(o=>G.AccountId.format({address:o,chainId:{namespace:$,reference:z}}))}).before(it).or(X).or(tt).build(),mt=ot.disconnect().after(X).build(),lt=new Zn("canEagerConnect").action(A).build(),q=new nt("UTXO",l).action(st).action(mt).action(lt).build();var J=e(()=>new pt(l).init(function(t){let[,n]=t.state();d()&&(n("installed",!0),console.debug("[phantom] instance detected.",t))}).config("info",N).add("solana",j).add("evm",R).add("utxo",q).add("sui",F).build(),"buildProvider");var Lo=e(()=>ut().version("0.0.0",O()).version("1.0.0",J()).build(),"versions");export{Lo as versions};
1
+ var N=Object.defineProperty;var e=(n,t)=>N(n,"name",{value:t,configurable:!0});var K=(n,t)=>()=>(n&&(t=n(n=0)),t);var Q=(n,t)=>{for(var o in t)N(n,o,{get:t[o],enumerable:!0})};var x={};Q(x,{BTCSigner:()=>P});import*as Z from"@bitcoinerlab/secp256k1";import{Networks as nn}from"@rango-dev/wallets-shared";import*as b from"bitcoinjs-lib";import{SignerError as tn}from"rango-types";function en(n){let t=atob(n),o=t.length,r=new Uint8Array(o);for(let a=0;a<o;a++)r[a]=t.charCodeAt(a);return r}var on,P,L=K(()=>{"use strict";on="https://go.getblock.io/f37bad28a991436483c0a3679a3acbee";e(en,"base64ToUint8Array");P=class{static{e(this,"BTCSigner")}provider;constructor(t){this.provider=t}async signMessage(){throw tn.UnimplementedError("signMessage")}async signAndSendTx(t){let{asset:o,psbt:r}=t;if(!r)throw new Error("No PSBT found to sign. Ensure a valid PSBT is provided.");if(o.blockchain!==nn.BTC)throw new Error(`Signing ${o.blockchain} transaction is not implemented by the signer.`);b.initEccLib(Z);let a=await this.provider.signPSBT(en(r.unsignedPsbtBase64),{inputsToSign:r.inputsToSign}),i=b.Psbt.fromBuffer(Buffer.from(a));i.finalizeAllInputs();let c=i.extractTransaction().toHex(),s=await fetch(on,{method:"POST",body:JSON.stringify({method:"sendrawtransaction",params:[c]})});if(!s.ok){let u=await s.text();throw new Error(`Error broadcasting transaction: ${u}`)}let m=await s.json();if(!m.result)throw new Error(`Error broadcasting transaction. Error Code ${m.error.code}: ${m.error.message}`);return{hash:m.result}}}});import{defineVersions as ft}from"@rango-dev/wallets-core/utils";import{LegacyNetworks as A}from"@rango-dev/wallets-core/legacy";import{chooseInstance as pn,getSolanaAccounts as un,WalletTypes as dn}from"@rango-dev/wallets-shared";import{isEvmBlockchain as U,solanaBlockchain as O,TransactionType as D}from"rango-types";import"@rango-dev/wallets-core";import{LegacyNetworks as B}from"@rango-dev/wallets-core/legacy";import{Networks as cn}from"@rango-dev/wallets-shared";import{isEvmBlockchain as sn,solanaBlockchain as mn,TransactionType as ln}from"rango-types";import{LegacyNetworks as T}from"@rango-dev/wallets-core/legacy";import{getInstance as rn}from"@rango-dev/wallets-core/namespaces/sui";import{getNetworkInstance as C}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as an,TransactionType as w}from"rango-types";async function f(n){let t=C(n,T.SOLANA),o=C(n,T.ETHEREUM),r=C(n,T.BTC),a=rn(g),{DefaultEvmSigner:i}=await import("@rango-dev/signer-evm"),{DefaultSolanaSigner:c}=await import("@rango-dev/signer-solana"),{BTCSigner:s}=await Promise.resolve().then(()=>(L(),x)),{DefaultSuiSigner:m}=await import("@rango-dev/signer-sui"),u=new an;return u.registerSigner(w.SOLANA,new c(t)),u.registerSigner(w.EVM,new i(o)),u.registerSigner(w.TRANSFER,new s(r)),a&&u.registerSigner(w.SUI,new m(a)),u}e(f,"getSigners");import{LegacyNetworks as d}from"@rango-dev/wallets-core/legacy";function p(){let{phantom:n}=window;if(!n)return null;let{solana:t,ethereum:o,bitcoin:r,sui:a}=n,i=new Map;return o&&o.isPhantom&&i.set(d.ETHEREUM,o),t&&t.isPhantom&&i.set(d.SOLANA,t),r&&r.isPhantom&&i.set(d.BTC,r),a&&a.isPhantom&&i.set(d.SUI,a),i}e(p,"phantom");function M(){let n=p();if(!n)throw new Error("Phantom is not injected. Please check your wallet.");return n}e(M,"getInstanceOrThrow");function E(){let t=p()?.get(d.ETHEREUM);if(!t)throw new Error("Phantom not injected or EVM not enabled. Please check your wallet.");return t}e(E,"evmPhantom");function y(){let t=p()?.get(d.SOLANA);if(!t)throw new Error("Phantom not injected or Solana not enabled. Please check your wallet.");return t}e(y,"solanaPhantom");function I(){let t=p()?.get(d.BTC);if(!t)throw new Error("Phantom not injected or Bitcoin not enabled. Please check your wallet.");return t}e(I,"bitcoinPhantom");var h=[B.ETHEREUM,B.POLYGON,B.BASE],l="phantom",g="Phantom",_={name:"Phantom",icon:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/phantom/icon.svg",extensions:{chrome:"https://chrome.google.com/webstore/detail/phantom/bfnaelmomeimhlpmgjnjophhpkkoljpa",homepage:"https://phantom.app/"},properties:[{name:"namespaces",value:{selection:"multiple",data:[{label:"EVM",value:"EVM",id:"ETH",getSupportedChains:n=>n.filter(t=>sn(t)&&h.includes(t.name))},{label:"Solana",value:"Solana",id:"SOLANA",getSupportedChains:n=>mn(n)},{label:"BTC",value:"UTXO",id:"BTC",getSupportedChains:n=>n.filter(t=>t.name===cn.BTC)},{label:"Sui",value:"Sui",id:"SUI",getSupportedChains:n=>n.filter(t=>t.type===ln.SUI)}]}},{name:"signers",value:{getSigners:async()=>f(M())}}]};var fn=dn.PHANTOM,gn={type:fn},hn=p,An=e(async({instance:n,meta:t})=>{let o=n.get(A.SOLANA);return await un({instance:o,meta:t})},"connect"),Sn=e(({instance:n,updateAccounts:t,connect:o})=>{let r=e(async a=>{let i=A.SOLANA;if(a){let c=a.toString();t([c])}else o(i)},"handleAccountsChanged");return n?.on?.("accountChanged",r),()=>{n?.off?.("accountChanged",r)}},"subscribe"),bn=e(({network:n})=>h.includes(n),"canSwitchNetworkTo"),wn=f,En=e(async({instance:n,meta:t})=>{let o=pn(n,t,A.SOLANA);try{return!!await o.connect({onlyIfTrusted:!0})}catch{return!1}},"canEagerConnect"),yn=e(n=>{let t=[],o=n.filter(c=>c.type===D.SUI),r=O(n),a=n.filter(c=>U(c)&&h.includes(c.name)),i=n.find(c=>c.name===A.BTC);return t=t.concat(r,a,o),i&&t.push(i),{name:"Phantom",img:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/phantom/icon.svg",installLink:{CHROME:"https://chrome.google.com/webstore/detail/phantom/bfnaelmomeimhlpmgjnjophhpkkoljpa",DEFAULT:"https://phantom.app/"},color:"#4d40c6",needsNamespace:{selection:"multiple",data:[{label:"EVM",value:"EVM",id:"ETH",getSupportedChains:c=>c.filter(s=>U(s)&&h.includes(s.name))},{label:"Solana",value:"Solana",id:"SOLANA",getSupportedChains:c=>O(c)},{label:"BTC",value:"UTXO",id:"BTC",getSupportedChains:c=>c.filter(s=>s.name===A.BTC)},{label:"Sui",value:"Sui",id:"SUI",getSupportedChains:c=>c.filter(s=>s.type===D.SUI)}]},supportedChains:t}},"getWalletInfo"),W=e(()=>({config:gn,getInstance:hn,connect:An,subscribe:Sn,getSigners:wn,getWalletInfo:yn,canSwitchNetworkTo:bn,canEagerConnect:En}),"buildLegacyProvider");import{ProviderBuilder as dt}from"@rango-dev/wallets-core";import{NamespaceBuilder as vn}from"@rango-dev/wallets-core";import{builders as Pn,standardizeAndThrowError as Tn}from"@rango-dev/wallets-core/namespaces/common";import{actions as v,builders as k}from"@rango-dev/wallets-core/namespaces/evm";var[Cn,R]=v.changeAccountSubscriber(E),In=k.connect().action(v.connect(E)).before(Cn).or(R).or(Tn).build(),Bn=Pn.disconnect().after(R).build(),kn=k.canEagerConnect().action(v.canEagerConnect(E)).build(),Nn=k.canSwitchNetwork().action(v.canSwitchNetwork()).build(),H=new vn("EVM",l).action(In).action(Bn).action(kn).action(Nn).build();import{ActionBuilder as xn,NamespaceBuilder as Ln}from"@rango-dev/wallets-core";import{builders as Mn,standardizeAndThrowError as _n}from"@rango-dev/wallets-core/namespaces/common";import{actions as Un,builders as On,CAIP_NAMESPACE as Dn,CAIP_SOLANA_CHAIN_ID as Wn}from"@rango-dev/wallets-core/namespaces/solana";import{CAIP as Rn}from"@rango-dev/wallets-core/utils";import{getSolanaAccounts as Hn}from"@rango-dev/wallets-shared";var[jn,j]=Un.changeAccountSubscriber(y),Vn=On.connect().action(async function(){let n=y(),t=await Hn({instance:n,meta:[]});if(Array.isArray(t))throw new Error("Expecting solana response to be a single value, not an array.");return t.accounts.map(r=>Rn.AccountId.format({address:r,chainId:{namespace:Dn,reference:Wn}}))}).before(jn).or(j).or(_n).build(),Fn=Mn.disconnect().after(j).build(),S=e(async()=>{let n=y();if(!n)throw new Error("Trying to eagerly connect to your Solana wallet, but seems its instance is not available.");try{return!!await n.connect({onlyIfTrusted:!0})}catch{return!1}},"canEagerConnectAction"),zn=new xn("canEagerConnect").action(S).build(),V=new Ln("Solana",l).action(Vn).action(Fn).action(zn).build();import{ActionBuilder as $n,NamespaceBuilder as Gn}from"@rango-dev/wallets-core";import{builders as Xn,standardizeAndThrowError as qn}from"@rango-dev/wallets-core/namespaces/common";import{actions as Jn,builders as Yn}from"@rango-dev/wallets-core/namespaces/sui";var[Kn,F]=Jn.changeAccountSubscriber({name:g}),Qn=Yn.connect({name:g}).before(Kn).or(F).or(qn).build(),Zn=Xn.disconnect().after(F).build(),nt=new $n("canEagerConnect").action(S).build(),z=new Gn("Sui",l).action(Qn).action(Zn).action(nt).build();import{ActionBuilder as tt,NamespaceBuilder as ot}from"@rango-dev/wallets-core";import{standardizeAndThrowError as et}from"@rango-dev/wallets-core/namespaces/common";import{builders as rt}from"@rango-dev/wallets-core/namespaces/common";import{builders as at,CAIP_BITCOIN_CHAIN_ID as $,CAIP_NAMESPACE as G}from"@rango-dev/wallets-core/namespaces/utxo";import{CAIP as X}from"@rango-dev/wallets-core/utils";import{Networks as ct}from"@rango-dev/wallets-shared";var it=e(async()=>({accounts:(await I().requestAccounts()).filter(o=>o.purpose==="payment").map(o=>o.address),chainId:ct.BTC}),"getBitcoinAccounts");function st(n){let t;return[(o,r)=>{let a=n();if(!a)throw new Error("Trying to subscribe to your Solana wallet, but seems its instance is not available.");let[,i]=o.state();if(t=e(c=>{if(!c.length){o.action("disconnect");return}let s=c.filter(m=>m.purpose==="payment").map(m=>X.AccountId.format({address:m.address,chainId:{namespace:G,reference:$}}));i("accounts",s)},"eventCallback"),a.on("accountsChanged",t),r instanceof Error)throw r},(o,r)=>{let a=n();return t&&a&&a.off("accountsChanged",t),r}]}e(st,"getChangeAccountSubscriber");var[mt,q]=st(I),lt=at.connect().action(async function(){let n=await it();if(Array.isArray(n))throw new Error("Expecting bitcoin response to be a single value, not an array.");return n.accounts.map(o=>X.AccountId.format({address:o,chainId:{namespace:G,reference:$}}))}).before(mt).or(q).or(et).build(),pt=rt.disconnect().after(q).build(),ut=new tt("canEagerConnect").action(S).build(),J=new ot("UTXO",l).action(lt).action(pt).action(ut).build();var Y=e(()=>new dt(l).init(function(n){let[,t]=n.state();p()&&(t("installed",!0),console.debug("[phantom] instance detected.",n))}).config("info",_).add("solana",V).add("evm",H).add("utxo",J).add("sui",z).build(),"buildProvider");var Uo=e(()=>ft().version("0.0.0",W()).version("1.0.0",Y()).build(),"versions");export{Uo as versions};
2
2
  //# sourceMappingURL=mod.js.map
package/dist/mod.js.map CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../src/legacy/utxoSigner.ts", "../src/mod.ts", "../src/legacy/index.ts", "../src/constants.ts", "../src/utils.ts", "../src/legacy/signer.ts", "../src/provider.ts", "../src/namespaces/evm.ts", "../src/namespaces/solana.ts", "../src/namespaces/sui.ts", "../src/namespaces/utxo.ts"],
4
- "sourcesContent": ["import type { GenericSigner, Transfer } from 'rango-types';\n\nimport * as secp256k1 from '@bitcoinerlab/secp256k1';\nimport { Networks } from '@rango-dev/wallets-shared';\nimport * as bitcoin from 'bitcoinjs-lib';\nimport { SignerError } from 'rango-types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype TransferExternalProvider = any;\n\nconst BTC_RPC_URL = 'https://go.getblock.io/f37bad28a991436483c0a3679a3acbee';\n\n// TODO: use Uint8Array.fromBase64() static method and use this function as a polyfill after updating TypeScript DOM lib\nfunction base64ToUint8Array(base64String: string) {\n const binaryString = atob(base64String);\n const length = binaryString.length;\n const uint8Array = new Uint8Array(length);\n\n for (let i = 0; i < length; i++) {\n uint8Array[i] = binaryString.charCodeAt(i);\n }\n\n return uint8Array;\n}\n\nexport class BTCSigner 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 { asset, psbt } = tx;\n\n if (!psbt) {\n throw new Error(\n 'No PSBT found to sign. Ensure a valid PSBT is provided.'\n );\n }\n\n if (asset.blockchain !== Networks.BTC) {\n throw new Error(\n `Signing ${asset.blockchain} transaction is not implemented by the signer.`\n );\n }\n // Initialize ECC library\n bitcoin.initEccLib(secp256k1);\n\n const signedPSBTBytes = await this.provider.signPSBT(\n base64ToUint8Array(psbt.unsignedPsbtBase64),\n {\n inputsToSign: psbt.inputsToSign,\n }\n );\n\n // Finalize PSBT\n const finalPsbt = bitcoin.Psbt.fromBuffer(Buffer.from(signedPSBTBytes));\n finalPsbt.finalizeAllInputs();\n\n const finalPsbtBaseHex = finalPsbt.extractTransaction().toHex();\n\n // Broadcast PSBT to rpc node\n const response = await fetch(BTC_RPC_URL, {\n method: 'POST',\n body: JSON.stringify({\n method: 'sendrawtransaction',\n params: [finalPsbtBaseHex],\n }),\n });\n\n if (!response.ok) {\n // Handle network and fetch errors\n const errorText = await response.text();\n throw new Error(`Error broadcasting transaction: ${errorText}`);\n }\n\n const data = await response.json();\n\n if (!data.result) {\n // Handle Bitcoin specific errors\n throw new Error(\n `Error broadcasting transaction. Error Code ${data.error.code}: ${data.error.message}`\n );\n }\n\n return { hash: data.result };\n }\n}\n", "import { defineVersions } from '@rango-dev/wallets-core/utils';\n\nimport { buildLegacyProvider } from './legacy/index.js';\nimport { buildProvider } from './provider.js';\n\nconst versions = () =>\n defineVersions()\n .version('0.0.0', buildLegacyProvider())\n .version('1.0.0', buildProvider())\n .build();\n\nexport { versions };\n", "import type { LegacyProviderInterface } from '@rango-dev/wallets-core/legacy';\nimport type {\n CanEagerConnect,\n CanSwitchNetwork,\n Connect,\n Subscribe,\n WalletInfo,\n} from '@rango-dev/wallets-shared';\nimport type {\n BlockchainMeta,\n EvmBlockchainMeta,\n SignerFactory,\n SuiBlockchainMeta,\n TransferBlockchainMeta,\n} from 'rango-types';\n\nimport { LegacyNetworks as Networks } from '@rango-dev/wallets-core/legacy';\nimport {\n chooseInstance,\n getSolanaAccounts,\n WalletTypes,\n} from '@rango-dev/wallets-shared';\nimport {\n isEvmBlockchain,\n solanaBlockchain,\n TransactionType,\n} from 'rango-types';\n\nimport { EVM_SUPPORTED_CHAINS } from '../constants.js';\nimport { phantom as phantom_instance, type Provider } from '../utils.js';\n\nimport signer from './signer.js';\n\nconst WALLET = WalletTypes.PHANTOM;\n\nexport const config = {\n type: WALLET,\n};\n\nexport const getInstance = phantom_instance;\n\n/*\n * NOTE: Phantom's Hub version has support for EVM as well since we are deprecating the legacy,\n * we just want to keep the implementation for some time and then legacy provider will be removed soon.\n * So we don't add new namespaces (like EVM) to legacy.\n */\nconst connect: Connect = async ({ instance, meta }) => {\n const solanaInstance = instance.get(Networks.SOLANA);\n const result = await getSolanaAccounts({\n instance: solanaInstance,\n meta,\n });\n\n return result;\n};\n\nexport const subscribe: Subscribe = ({ instance, updateAccounts, connect }) => {\n const handleAccountsChanged = async (publicKey: string) => {\n const network = Networks.SOLANA;\n if (publicKey) {\n const account = publicKey.toString();\n updateAccounts([account]);\n } else {\n connect(network);\n }\n };\n instance?.on?.('accountChanged', handleAccountsChanged);\n\n return () => {\n instance?.off?.('accountChanged', handleAccountsChanged);\n };\n};\n\nconst canSwitchNetworkTo: CanSwitchNetwork = ({ network }) => {\n return EVM_SUPPORTED_CHAINS.includes(network as Networks);\n};\n\nexport const getSigners: (provider: Provider) => Promise<SignerFactory> =\n signer;\n\nconst canEagerConnect: CanEagerConnect = async ({ instance, meta }) => {\n const solanaInstance = chooseInstance(instance, meta, Networks.SOLANA);\n try {\n const result = await solanaInstance.connect({ onlyIfTrusted: true });\n return !!result;\n } catch {\n return false;\n }\n};\nexport const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo = (\n allBlockChains\n) => {\n let supportedChains: BlockchainMeta[] = [];\n const sui = allBlockChains.filter(\n (blockchain) => blockchain.type === TransactionType.SUI\n );\n const solana = solanaBlockchain(allBlockChains);\n const evms = allBlockChains.filter(\n (chain): chain is EvmBlockchainMeta =>\n isEvmBlockchain(chain) &&\n EVM_SUPPORTED_CHAINS.includes(chain.name as Networks)\n );\n const btc = allBlockChains.find((chain) => chain.name === Networks.BTC);\n supportedChains = supportedChains.concat(solana, evms, sui);\n if (btc) {\n supportedChains.push(btc);\n }\n\n return {\n name: 'Phantom',\n img: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/phantom/icon.svg',\n installLink: {\n CHROME:\n 'https://chrome.google.com/webstore/detail/phantom/bfnaelmomeimhlpmgjnjophhpkkoljpa',\n\n DEFAULT: 'https://phantom.app/',\n },\n color: '#4d40c6',\n // if you are adding a new namespace, don't forget to also update `properties`\n needsNamespace: {\n selection: 'multiple',\n data: [\n {\n label: 'EVM',\n value: 'EVM',\n id: 'ETH',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n allBlockchains.filter(\n (chain): chain is EvmBlockchainMeta =>\n isEvmBlockchain(chain) &&\n EVM_SUPPORTED_CHAINS.includes(chain.name as Networks)\n ),\n },\n {\n label: 'Solana',\n value: 'Solana',\n id: 'SOLANA',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n solanaBlockchain(allBlockchains),\n },\n {\n label: 'BTC',\n value: 'UTXO',\n id: 'BTC',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n allBlockchains.filter(\n (chain): chain is TransferBlockchainMeta =>\n chain.name === Networks.BTC\n ),\n },\n {\n label: 'Sui',\n value: 'Sui',\n id: 'SUI',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n allBlockchains.filter(\n (chain): chain is SuiBlockchainMeta =>\n chain.type === TransactionType.SUI\n ),\n },\n ],\n },\n supportedChains,\n };\n};\n\nconst buildLegacyProvider: () => LegacyProviderInterface = () => ({\n config,\n getInstance,\n connect,\n subscribe,\n canSwitchNetworkTo,\n getSigners,\n getWalletInfo,\n canEagerConnect,\n});\n\nexport { buildLegacyProvider };\n", "import { type ProviderInfo } from '@rango-dev/wallets-core';\nimport { LegacyNetworks } from '@rango-dev/wallets-core/legacy';\nimport { Networks } from '@rango-dev/wallets-shared';\nimport {\n type BlockchainMeta,\n type EvmBlockchainMeta,\n isEvmBlockchain,\n solanaBlockchain,\n type SuiBlockchainMeta,\n TransactionType,\n type TransferBlockchainMeta,\n} from 'rango-types';\n\nexport const EVM_SUPPORTED_CHAINS = [\n LegacyNetworks.ETHEREUM,\n LegacyNetworks.POLYGON,\n LegacyNetworks.BASE,\n];\n\nexport const WALLET_ID = 'phantom';\nexport const WALLET_NAME_IN_WALLET_STANDARD = 'Phantom';\n\nexport const info: ProviderInfo = {\n name: 'Phantom',\n icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/phantom/icon.svg',\n extensions: {\n chrome:\n 'https://chrome.google.com/webstore/detail/phantom/bfnaelmomeimhlpmgjnjophhpkkoljpa',\n homepage: 'https://phantom.app/',\n },\n properties: [\n {\n name: 'namespaces',\n value: {\n selection: 'multiple',\n data: [\n {\n label: 'EVM',\n value: 'EVM',\n id: 'ETH',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n allBlockchains.filter(\n (chain): chain is EvmBlockchainMeta =>\n isEvmBlockchain(chain) &&\n EVM_SUPPORTED_CHAINS.includes(chain.name as Networks)\n ),\n },\n {\n label: 'Solana',\n value: 'Solana',\n id: 'SOLANA',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n solanaBlockchain(allBlockchains),\n },\n {\n label: 'BTC',\n value: 'UTXO',\n id: 'BTC',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n allBlockchains.filter(\n (chain): chain is TransferBlockchainMeta =>\n chain.name === Networks.BTC\n ),\n },\n {\n label: 'Sui',\n value: 'Sui',\n id: 'SUI',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n allBlockchains.filter(\n (chain): chain is SuiBlockchainMeta =>\n chain.type === TransactionType.SUI\n ),\n },\n ],\n },\n },\n ],\n};\n", "import type { ProviderAPI as EvmProviderApi } from '@rango-dev/wallets-core/namespaces/evm';\nimport type { ProviderAPI as SolanaProviderApi } from '@rango-dev/wallets-core/namespaces/solana';\nimport type { ProviderAPI as SuiProviderApi } from '@rango-dev/wallets-core/namespaces/sui';\n\nimport { LegacyNetworks } from '@rango-dev/wallets-core/legacy';\n\nexport type Provider = Map<string, unknown>;\n\nexport function phantom(): Provider | null {\n const { phantom } = window;\n\n if (!phantom) {\n return null;\n }\n\n const { solana, ethereum, bitcoin, sui } = phantom;\n\n const instances: Provider = new Map();\n\n if (ethereum && ethereum.isPhantom) {\n instances.set(LegacyNetworks.ETHEREUM, ethereum);\n }\n\n if (solana && solana.isPhantom) {\n instances.set(LegacyNetworks.SOLANA, solana);\n }\n\n if (bitcoin && bitcoin.isPhantom) {\n instances.set(LegacyNetworks.BTC, bitcoin);\n }\n if (sui && sui.isPhantom) {\n instances.set(LegacyNetworks.SUI, sui);\n }\n\n return instances;\n}\n\nexport function evmPhantom(): EvmProviderApi {\n const instances = phantom();\n\n const evmInstance = instances?.get(LegacyNetworks.ETHEREUM);\n\n if (!evmInstance) {\n throw new Error(\n 'Phantom not injected or EVM not enabled. Please check your wallet.'\n );\n }\n\n return evmInstance as EvmProviderApi;\n}\n\nexport function solanaPhantom(): SolanaProviderApi {\n const instance = phantom();\n const solanaInstance = instance?.get(LegacyNetworks.SOLANA);\n\n if (!solanaInstance) {\n throw new Error(\n 'Phantom not injected or Solana not enabled. Please check your wallet.'\n );\n }\n\n return solanaInstance;\n}\n\nexport function bitcoinPhantom(): SolanaProviderApi {\n const instance = phantom();\n const bitcoinInstance = instance?.get(LegacyNetworks.BTC);\n\n if (!bitcoinInstance) {\n throw new Error(\n 'Phantom not injected or Bitcoin not enabled. Please check your wallet.'\n );\n }\n\n return bitcoinInstance;\n}\nexport function suiPhantom(): SuiProviderApi {\n const instance = phantom();\n const suiInstance = instance?.get(LegacyNetworks.SUI);\n\n if (!suiInstance) {\n throw new Error(\n 'Phantom not injected or Sui not enabled. Please check your wallet.'\n );\n }\n\n return suiInstance;\n}\n", "import type { Provider } from '../utils.js';\nimport type { SignerFactory } from 'rango-types';\n\nimport { LegacyNetworks as Networks } from '@rango-dev/wallets-core/legacy';\nimport { getInstance as getSuiInstance } from '@rango-dev/wallets-core/namespaces/sui';\nimport { getNetworkInstance } from '@rango-dev/wallets-shared';\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nimport { WALLET_NAME_IN_WALLET_STANDARD } from '../constants.js';\n\nexport default async function getSigners(\n provider: Provider\n): Promise<SignerFactory> {\n const solProvider = getNetworkInstance(provider, Networks.SOLANA);\n const evmProvider = getNetworkInstance(provider, Networks.ETHEREUM);\n const bitcoinInstance = getNetworkInstance(provider, Networks.BTC);\n\n const suiProvider = getSuiInstance(WALLET_NAME_IN_WALLET_STANDARD);\n\n const { DefaultEvmSigner } = await import('@rango-dev/signer-evm');\n const { DefaultSolanaSigner } = await import('@rango-dev/signer-solana');\n const { BTCSigner } = await import('./utxoSigner.js');\n const { DefaultSuiSigner } = await import('@rango-dev/signer-sui');\n const signers = new DefaultSignerFactory();\n signers.registerSigner(TxType.SOLANA, new DefaultSolanaSigner(solProvider));\n signers.registerSigner(TxType.EVM, new DefaultEvmSigner(evmProvider));\n signers.registerSigner(TxType.TRANSFER, new BTCSigner(bitcoinInstance));\n if (!!suiProvider) {\n signers.registerSigner(TxType.SUI, new DefaultSuiSigner(suiProvider));\n }\n return signers;\n}\n", "import { ProviderBuilder } from '@rango-dev/wallets-core';\n\nimport { info, WALLET_ID } from './constants.js';\nimport { evm } from './namespaces/evm.js';\nimport { solana } from './namespaces/solana.js';\nimport { sui } from './namespaces/sui.js';\nimport { utxo } from './namespaces/utxo.js';\nimport { phantom as phantomInstance } from './utils.js';\n\nconst buildProvider = () =>\n new ProviderBuilder(WALLET_ID)\n .init(function (context) {\n const [, setState] = context.state();\n\n if (phantomInstance()) {\n setState('installed', true);\n console.debug('[phantom] instance detected.', context);\n }\n })\n .config('info', info)\n .add('solana', solana)\n .add('evm', evm)\n .add('utxo', utxo)\n .add('sui', sui)\n .build();\n\nexport { buildProvider };\n", "import type { EvmActions } from '@rango-dev/wallets-core/namespaces/evm';\n\nimport { NamespaceBuilder } from '@rango-dev/wallets-core';\nimport {\n builders as commonBuilders,\n standardizeAndThrowError,\n} from '@rango-dev/wallets-core/namespaces/common';\nimport { actions, builders } from '@rango-dev/wallets-core/namespaces/evm';\n\nimport { WALLET_ID } from '../constants.js';\nimport { evmPhantom } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] =\n actions.changeAccountSubscriber(evmPhantom);\n\n/*\n * TODO: If user imported a private key for EVM, it hasn't solana.\n * when trying to connect to solana for this user we go through `-32603` which is an internal error.\n * If phantom added an specific error code for this situation, we can consider handling the error here.\n * @see https://docs.phantom.app/solana/errors\n */\nconst connect = builders\n .connect()\n .action(actions.connect(evmPhantom))\n .before(changeAccountSubscriber)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<EvmActions>()\n .after(changeAccountCleanup)\n .build();\n\nconst canEagerConnect = builders\n .canEagerConnect()\n .action(actions.canEagerConnect(evmPhantom))\n .build();\n\nconst evm = new NamespaceBuilder<EvmActions>('EVM', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .build();\n\nexport { evm };\n", "import type { CaipAccount } from '@rango-dev/wallets-core/namespaces/common';\nimport type { SolanaActions } from '@rango-dev/wallets-core/namespaces/solana';\n\nimport { ActionBuilder, NamespaceBuilder } from '@rango-dev/wallets-core';\nimport {\n builders as commonBuilders,\n standardizeAndThrowError,\n} from '@rango-dev/wallets-core/namespaces/common';\nimport {\n actions,\n builders,\n CAIP_NAMESPACE,\n CAIP_SOLANA_CHAIN_ID,\n} from '@rango-dev/wallets-core/namespaces/solana';\nimport { CAIP } from '@rango-dev/wallets-core/utils';\nimport { getSolanaAccounts } from '@rango-dev/wallets-shared';\n\nimport { WALLET_ID } from '../constants.js';\nimport { solanaPhantom } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] =\n actions.changeAccountSubscriber(solanaPhantom);\n\n/*\n * TODO: If user imported a private key for EVM, it hasn't solana.\n * when trying to connect to solana for this user we go through `-32603` which is an internal error.\n * If phantom added an specific error code for this situation, we can consider handling the error here.\n * @see https://docs.phantom.app/solana/errors\n */\nconst connect = builders\n .connect()\n .action(async function () {\n const solanaInstance = solanaPhantom();\n const result = await getSolanaAccounts({\n instance: solanaInstance,\n meta: [],\n });\n if (Array.isArray(result)) {\n throw new Error(\n 'Expecting solana response to be a single value, not an array.'\n );\n }\n\n const formatAccounts = result.accounts.map(\n (account) =>\n CAIP.AccountId.format({\n address: account,\n chainId: {\n namespace: CAIP_NAMESPACE,\n reference: CAIP_SOLANA_CHAIN_ID,\n },\n }) as CaipAccount\n );\n\n return formatAccounts;\n })\n .before(changeAccountSubscriber)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<SolanaActions>()\n .after(changeAccountCleanup)\n .build();\n\nexport const canEagerConnectAction = async () => {\n const solanaInstance = solanaPhantom();\n\n if (!solanaInstance) {\n throw new Error(\n 'Trying to eagerly connect to your Solana wallet, but seems its instance is not available.'\n );\n }\n\n try {\n const result = await solanaInstance.connect({ onlyIfTrusted: true });\n return !!result;\n } catch {\n return false;\n }\n};\n\nconst canEagerConnect = new ActionBuilder<SolanaActions, 'canEagerConnect'>(\n 'canEagerConnect'\n)\n .action(canEagerConnectAction)\n .build();\n\nconst solana = new NamespaceBuilder<SolanaActions>('Solana', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .build();\n\nexport { solana };\n", "import type { SolanaActions } from '@rango-dev/wallets-core/namespaces/solana';\nimport type { SuiActions } from '@rango-dev/wallets-core/namespaces/sui';\n\nimport { ActionBuilder, NamespaceBuilder } from '@rango-dev/wallets-core';\nimport {\n builders as commonBuilders,\n standardizeAndThrowError,\n} from '@rango-dev/wallets-core/namespaces/common';\nimport { actions, builders } from '@rango-dev/wallets-core/namespaces/sui';\n\nimport { WALLET_ID, WALLET_NAME_IN_WALLET_STANDARD } from '../constants.js';\n\nimport { canEagerConnectAction as solanaCanEagerConnectAction } from './solana.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] =\n actions.changeAccountSubscriber({\n name: WALLET_NAME_IN_WALLET_STANDARD,\n });\n\nconst connect = builders\n .connect({\n name: WALLET_NAME_IN_WALLET_STANDARD,\n })\n .before(changeAccountSubscriber)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<SuiActions>()\n .after(changeAccountCleanup)\n .build();\n\n/*\n * TODO: We are currently using `solanaCanEagerConnectAction` to establish an eager connection to the Sui instance.\n * This is a temporary workaround due to Phantom's limitation in silently connecting to a Sui account.\n * Once Phantom introduces support for silent Sui connections, this implementation should be updated accordingly.\n */\nconst canEagerConnect = new ActionBuilder<SolanaActions, 'canEagerConnect'>(\n 'canEagerConnect'\n)\n .action(solanaCanEagerConnectAction)\n .build();\n\nconst sui = new NamespaceBuilder<SuiActions>('Sui', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .build();\n\nexport { sui };\n", "import type { SolanaActions } from '@rango-dev/wallets-core/namespaces/solana';\nimport type {\n ProviderAPI,\n UtxoActions,\n} from '@rango-dev/wallets-core/namespaces/utxo';\n\nimport {\n ActionBuilder,\n NamespaceBuilder,\n type Subscriber,\n type SubscriberCleanUp,\n} from '@rango-dev/wallets-core';\nimport {\n type CaipAccount,\n standardizeAndThrowError,\n} from '@rango-dev/wallets-core/namespaces/common';\nimport { builders as commonBuilders } from '@rango-dev/wallets-core/namespaces/common';\nimport {\n builders,\n CAIP_BITCOIN_CHAIN_ID,\n CAIP_NAMESPACE,\n} from '@rango-dev/wallets-core/namespaces/utxo';\nimport { CAIP } from '@rango-dev/wallets-core/utils';\nimport {\n Networks,\n type ProviderConnectResult,\n} from '@rango-dev/wallets-shared';\n\nimport { WALLET_ID } from '../constants.js';\nimport { bitcoinPhantom } from '../utils.js';\n\nimport { canEagerConnectAction as solanaCanEagerConnectAction } from './solana.js';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyFunction = (...args: any[]) => any;\n\ntype BtcAccount = {\n address: string;\n publicKey: string;\n addressType: 'p2tr' | 'p2wpkh' | 'p2sh' | 'p2pkh';\n purpose: 'payment' | 'ordinals';\n};\n\nconst getBitcoinAccounts: () => Promise<ProviderConnectResult> = async () => {\n const instance = bitcoinPhantom();\n const accounts = await instance.requestAccounts();\n\n return {\n accounts: accounts\n .filter((account: BtcAccount) => account.purpose === 'payment')\n .map((account: BtcAccount) => account.address),\n chainId: Networks.BTC,\n };\n};\n\nfunction getChangeAccountSubscriber(\n instance: () => ProviderAPI | undefined\n): [Subscriber<UtxoActions>, SubscriberCleanUp<UtxoActions>] {\n let eventCallback: AnyFunction;\n\n // subscriber can be passed to `or`, it will get the error and should rethrow error to pass the error to next `or` or throw error.\n return [\n (context, err) => {\n const bitcoinInstance = instance();\n\n if (!bitcoinInstance) {\n throw new Error(\n 'Trying to subscribe to your Solana wallet, but seems its instance is not available.'\n );\n }\n\n const [, setState] = context.state();\n\n eventCallback = (accounts: BtcAccount[]) => {\n /*\n * In Phantom, when user is switching to an account which is not connected to dApp yet, it returns an empty array on `accountsChanged`.\n * So empty array means we don't have access to account and we need to disconnect and let the user connect the account.\n */\n if (!accounts.length) {\n context.action('disconnect');\n return;\n }\n\n const formatAccounts = accounts\n .filter((account) => account.purpose === 'payment')\n .map(\n (account: BtcAccount) =>\n CAIP.AccountId.format({\n address: account.address,\n chainId: {\n namespace: CAIP_NAMESPACE,\n reference: CAIP_BITCOIN_CHAIN_ID,\n },\n }) as CaipAccount\n );\n\n setState('accounts', formatAccounts);\n };\n bitcoinInstance.on('accountsChanged', eventCallback);\n\n if (err instanceof Error) {\n throw err;\n }\n },\n (_context, err) => {\n const bitcoinInstance = instance();\n\n if (eventCallback && bitcoinInstance) {\n bitcoinInstance.off('accountsChanged', eventCallback);\n }\n\n return err;\n },\n ];\n}\n\nconst [changeAccountSubscriber, changeAccountCleanup] =\n getChangeAccountSubscriber(bitcoinPhantom);\n\nconst connect = builders\n .connect()\n .action(async function () {\n const result = await getBitcoinAccounts();\n if (Array.isArray(result)) {\n throw new Error(\n 'Expecting bitcoin response to be a single value, not an array.'\n );\n }\n\n const formatAccounts = result.accounts.map(\n (account) =>\n CAIP.AccountId.format({\n address: account,\n chainId: {\n namespace: CAIP_NAMESPACE,\n reference: CAIP_BITCOIN_CHAIN_ID,\n },\n }) as CaipAccount\n );\n\n return formatAccounts;\n })\n .before(changeAccountSubscriber)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<UtxoActions>()\n .after(changeAccountCleanup)\n .build();\n\n/*\n * TODO: We are currently using `solanaCanEagerConnectAction` to establish an eager connection to the BTC instance.\n * This is a temporary workaround due to Phantom's limitation in silently connecting to a BTC account.\n * Once Phantom introduces support for silent BTC connections, this implementation should be updated accordingly.\n */\nconst canEagerConnect = new ActionBuilder<SolanaActions, 'canEagerConnect'>(\n 'canEagerConnect'\n)\n .action(solanaCanEagerConnectAction)\n .build();\n\nconst utxo = new NamespaceBuilder<UtxoActions>('UTXO', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .build();\n\nexport { utxo };\n"],
5
- "mappings": "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",
6
- "names": ["utxoSigner_exports", "__export", "BTCSigner", "secp256k1", "Networks", "bitcoin", "SignerError", "base64ToUint8Array", "base64String", "binaryString", "length", "uint8Array", "i", "BTC_RPC_URL", "init_utxoSigner", "__esmMin", "__name", "provider", "tx", "asset", "psbt", "signedPSBTBytes", "finalPsbt", "finalPsbtBaseHex", "response", "errorText", "data", "defineVersions", "Networks", "chooseInstance", "getSolanaAccounts", "WalletTypes", "isEvmBlockchain", "solanaBlockchain", "TransactionType", "LegacyNetworks", "Networks", "isEvmBlockchain", "solanaBlockchain", "TransactionType", "EVM_SUPPORTED_CHAINS", "WALLET_ID", "WALLET_NAME_IN_WALLET_STANDARD", "info", "allBlockchains", "chain", "LegacyNetworks", "phantom", "solana", "ethereum", "bitcoin", "sui", "instances", "LegacyNetworks", "__name", "evmPhantom", "evmInstance", "solanaPhantom", "solanaInstance", "bitcoinPhantom", "bitcoinInstance", "Networks", "getSuiInstance", "getNetworkInstance", "DefaultSignerFactory", "TxType", "getSigners", "provider", "solProvider", "getNetworkInstance", "Networks", "evmProvider", "bitcoinInstance", "suiProvider", "getSuiInstance", "WALLET_NAME_IN_WALLET_STANDARD", "DefaultEvmSigner", "DefaultSolanaSigner", "BTCSigner", "DefaultSuiSigner", "signers", "DefaultSignerFactory", "TxType", "__name", "WALLET", "WalletTypes", "config", "getInstance", "phantom", "connect", "__name", "instance", "meta", "solanaInstance", "Networks", "getSolanaAccounts", "subscribe", "updateAccounts", "handleAccountsChanged", "publicKey", "network", "account", "canSwitchNetworkTo", "EVM_SUPPORTED_CHAINS", "getSigners", "canEagerConnect", "chooseInstance", "getWalletInfo", "allBlockChains", "supportedChains", "sui", "blockchain", "TransactionType", "solana", "solanaBlockchain", "evms", "chain", "isEvmBlockchain", "btc", "allBlockchains", "buildLegacyProvider", "ProviderBuilder", "NamespaceBuilder", "commonBuilders", "standardizeAndThrowError", "actions", "builders", "changeAccountSubscriber", "changeAccountCleanup", "actions", "evmPhantom", "connect", "builders", "standardizeAndThrowError", "disconnect", "commonBuilders", "canEagerConnect", "evm", "NamespaceBuilder", "WALLET_ID", "ActionBuilder", "NamespaceBuilder", "commonBuilders", "standardizeAndThrowError", "actions", "builders", "CAIP_NAMESPACE", "CAIP_SOLANA_CHAIN_ID", "CAIP", "getSolanaAccounts", "changeAccountSubscriber", "changeAccountCleanup", "actions", "solanaPhantom", "connect", "builders", "solanaInstance", "result", "getSolanaAccounts", "account", "CAIP", "CAIP_NAMESPACE", "CAIP_SOLANA_CHAIN_ID", "standardizeAndThrowError", "disconnect", "commonBuilders", "canEagerConnectAction", "__name", "canEagerConnect", "ActionBuilder", "solana", "NamespaceBuilder", "WALLET_ID", "ActionBuilder", "NamespaceBuilder", "commonBuilders", "standardizeAndThrowError", "actions", "builders", "changeAccountSubscriber", "changeAccountCleanup", "actions", "WALLET_NAME_IN_WALLET_STANDARD", "connect", "builders", "standardizeAndThrowError", "disconnect", "commonBuilders", "canEagerConnect", "ActionBuilder", "canEagerConnectAction", "sui", "NamespaceBuilder", "WALLET_ID", "ActionBuilder", "NamespaceBuilder", "standardizeAndThrowError", "commonBuilders", "builders", "CAIP_BITCOIN_CHAIN_ID", "CAIP_NAMESPACE", "CAIP", "Networks", "getBitcoinAccounts", "__name", "bitcoinPhantom", "account", "Networks", "getChangeAccountSubscriber", "instance", "eventCallback", "context", "err", "bitcoinInstance", "setState", "accounts", "formatAccounts", "CAIP", "CAIP_NAMESPACE", "CAIP_BITCOIN_CHAIN_ID", "_context", "changeAccountSubscriber", "changeAccountCleanup", "connect", "builders", "result", "standardizeAndThrowError", "disconnect", "commonBuilders", "canEagerConnect", "ActionBuilder", "canEagerConnectAction", "utxo", "NamespaceBuilder", "WALLET_ID", "buildProvider", "__name", "ProviderBuilder", "WALLET_ID", "context", "setState", "phantom", "info", "solana", "evm", "utxo", "sui", "versions", "__name", "defineVersions", "buildLegacyProvider", "buildProvider"]
3
+ "sources": ["../src/signers/utxoSigner.ts", "../src/mod.ts", "../src/legacy/index.ts", "../src/constants.ts", "../src/signer.ts", "../src/utils.ts", "../src/provider.ts", "../src/namespaces/evm.ts", "../src/namespaces/solana.ts", "../src/namespaces/sui.ts", "../src/namespaces/utxo.ts"],
4
+ "sourcesContent": ["import type { GenericSigner, Transfer } from 'rango-types';\n\nimport * as secp256k1 from '@bitcoinerlab/secp256k1';\nimport { Networks } from '@rango-dev/wallets-shared';\nimport * as bitcoin from 'bitcoinjs-lib';\nimport { SignerError } from 'rango-types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype TransferExternalProvider = any;\n\nconst BTC_RPC_URL = 'https://go.getblock.io/f37bad28a991436483c0a3679a3acbee';\n\n// TODO: use Uint8Array.fromBase64() static method and use this function as a polyfill after updating TypeScript DOM lib\nfunction base64ToUint8Array(base64String: string) {\n const binaryString = atob(base64String);\n const length = binaryString.length;\n const uint8Array = new Uint8Array(length);\n\n for (let i = 0; i < length; i++) {\n uint8Array[i] = binaryString.charCodeAt(i);\n }\n\n return uint8Array;\n}\n\nexport class BTCSigner 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 { asset, psbt } = tx;\n\n if (!psbt) {\n throw new Error(\n 'No PSBT found to sign. Ensure a valid PSBT is provided.'\n );\n }\n\n if (asset.blockchain !== Networks.BTC) {\n throw new Error(\n `Signing ${asset.blockchain} transaction is not implemented by the signer.`\n );\n }\n // Initialize ECC library\n bitcoin.initEccLib(secp256k1);\n\n const signedPSBTBytes = await this.provider.signPSBT(\n base64ToUint8Array(psbt.unsignedPsbtBase64),\n {\n inputsToSign: psbt.inputsToSign,\n }\n );\n\n // Finalize PSBT\n const finalPsbt = bitcoin.Psbt.fromBuffer(Buffer.from(signedPSBTBytes));\n finalPsbt.finalizeAllInputs();\n\n const finalPsbtBaseHex = finalPsbt.extractTransaction().toHex();\n\n // Broadcast PSBT to rpc node\n const response = await fetch(BTC_RPC_URL, {\n method: 'POST',\n body: JSON.stringify({\n method: 'sendrawtransaction',\n params: [finalPsbtBaseHex],\n }),\n });\n\n if (!response.ok) {\n // Handle network and fetch errors\n const errorText = await response.text();\n throw new Error(`Error broadcasting transaction: ${errorText}`);\n }\n\n const data = await response.json();\n\n if (!data.result) {\n // Handle Bitcoin specific errors\n throw new Error(\n `Error broadcasting transaction. Error Code ${data.error.code}: ${data.error.message}`\n );\n }\n\n return { hash: data.result };\n }\n}\n", "import { defineVersions } from '@rango-dev/wallets-core/utils';\n\nimport { buildLegacyProvider } from './legacy/index.js';\nimport { buildProvider } from './provider.js';\n\nconst versions = () =>\n defineVersions()\n .version('0.0.0', buildLegacyProvider())\n .version('1.0.0', buildProvider())\n .build();\n\nexport { versions };\n", "import type { LegacyProviderInterface } from '@rango-dev/wallets-core/legacy';\nimport type {\n CanEagerConnect,\n CanSwitchNetwork,\n Connect,\n Subscribe,\n WalletInfo,\n} from '@rango-dev/wallets-shared';\nimport type {\n BlockchainMeta,\n EvmBlockchainMeta,\n SignerFactory,\n SuiBlockchainMeta,\n TransferBlockchainMeta,\n} from 'rango-types';\n\nimport { LegacyNetworks as Networks } from '@rango-dev/wallets-core/legacy';\nimport {\n chooseInstance,\n getSolanaAccounts,\n WalletTypes,\n} from '@rango-dev/wallets-shared';\nimport {\n isEvmBlockchain,\n solanaBlockchain,\n TransactionType,\n} from 'rango-types';\n\nimport { EVM_SUPPORTED_CHAINS } from '../constants.js';\nimport signer from '../signer.js';\nimport { phantom as phantom_instance, type Provider } from '../utils.js';\n\nconst WALLET = WalletTypes.PHANTOM;\n\nexport const config = {\n type: WALLET,\n};\n\nexport const getInstance = phantom_instance;\n\n/*\n * NOTE: Phantom's Hub version has support for EVM as well since we are deprecating the legacy,\n * we just want to keep the implementation for some time and then legacy provider will be removed soon.\n * So we don't add new namespaces (like EVM) to legacy.\n */\nconst connect: Connect = async ({ instance, meta }) => {\n const solanaInstance = instance.get(Networks.SOLANA);\n const result = await getSolanaAccounts({\n instance: solanaInstance,\n meta,\n });\n\n return result;\n};\n\nexport const subscribe: Subscribe = ({ instance, updateAccounts, connect }) => {\n const handleAccountsChanged = async (publicKey: string) => {\n const network = Networks.SOLANA;\n if (publicKey) {\n const account = publicKey.toString();\n updateAccounts([account]);\n } else {\n connect(network);\n }\n };\n instance?.on?.('accountChanged', handleAccountsChanged);\n\n return () => {\n instance?.off?.('accountChanged', handleAccountsChanged);\n };\n};\nconst canSwitchNetworkTo: CanSwitchNetwork = ({ network }) => {\n return EVM_SUPPORTED_CHAINS.includes(network as Networks);\n};\nexport const getSigners: (provider: Provider) => Promise<SignerFactory> =\n signer;\n\nconst canEagerConnect: CanEagerConnect = async ({ instance, meta }) => {\n const solanaInstance = chooseInstance(instance, meta, Networks.SOLANA);\n try {\n const result = await solanaInstance.connect({ onlyIfTrusted: true });\n return !!result;\n } catch {\n return false;\n }\n};\nexport const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo = (\n allBlockChains\n) => {\n let supportedChains: BlockchainMeta[] = [];\n const sui = allBlockChains.filter(\n (blockchain) => blockchain.type === TransactionType.SUI\n );\n const solana = solanaBlockchain(allBlockChains);\n const evms = allBlockChains.filter(\n (chain): chain is EvmBlockchainMeta =>\n isEvmBlockchain(chain) &&\n EVM_SUPPORTED_CHAINS.includes(chain.name as Networks)\n );\n const btc = allBlockChains.find((chain) => chain.name === Networks.BTC);\n supportedChains = supportedChains.concat(solana, evms, sui);\n if (btc) {\n supportedChains.push(btc);\n }\n\n return {\n name: 'Phantom',\n img: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/phantom/icon.svg',\n installLink: {\n CHROME:\n 'https://chrome.google.com/webstore/detail/phantom/bfnaelmomeimhlpmgjnjophhpkkoljpa',\n\n DEFAULT: 'https://phantom.app/',\n },\n color: '#4d40c6',\n // if you are adding a new namespace, don't forget to also update `properties`\n needsNamespace: {\n selection: 'multiple',\n data: [\n {\n label: 'EVM',\n value: 'EVM',\n id: 'ETH',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n allBlockchains.filter(\n (chain): chain is EvmBlockchainMeta =>\n isEvmBlockchain(chain) &&\n EVM_SUPPORTED_CHAINS.includes(chain.name as Networks)\n ),\n },\n {\n label: 'Solana',\n value: 'Solana',\n id: 'SOLANA',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n solanaBlockchain(allBlockchains),\n },\n {\n label: 'BTC',\n value: 'UTXO',\n id: 'BTC',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n allBlockchains.filter(\n (chain): chain is TransferBlockchainMeta =>\n chain.name === Networks.BTC\n ),\n },\n {\n label: 'Sui',\n value: 'Sui',\n id: 'SUI',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n allBlockchains.filter(\n (chain): chain is SuiBlockchainMeta =>\n chain.type === TransactionType.SUI\n ),\n },\n ],\n },\n supportedChains,\n };\n};\n\nconst buildLegacyProvider: () => LegacyProviderInterface = () => ({\n config,\n getInstance,\n connect,\n subscribe,\n getSigners,\n getWalletInfo,\n canSwitchNetworkTo,\n canEagerConnect,\n});\n\nexport { buildLegacyProvider };\n", "import { type ProviderInfo } from '@rango-dev/wallets-core';\nimport { LegacyNetworks } from '@rango-dev/wallets-core/legacy';\nimport { Networks } from '@rango-dev/wallets-shared';\nimport {\n type BlockchainMeta,\n type EvmBlockchainMeta,\n isEvmBlockchain,\n solanaBlockchain,\n type SuiBlockchainMeta,\n TransactionType,\n type TransferBlockchainMeta,\n} from 'rango-types';\n\nimport getSigners from './signer.js';\nimport { getInstanceOrThrow } from './utils.js';\n\nexport const EVM_SUPPORTED_CHAINS = [\n LegacyNetworks.ETHEREUM,\n LegacyNetworks.POLYGON,\n LegacyNetworks.BASE,\n];\n\nexport const WALLET_ID = 'phantom';\nexport const WALLET_NAME_IN_WALLET_STANDARD = 'Phantom';\n\nexport const info: ProviderInfo = {\n name: 'Phantom',\n icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/phantom/icon.svg',\n extensions: {\n chrome:\n 'https://chrome.google.com/webstore/detail/phantom/bfnaelmomeimhlpmgjnjophhpkkoljpa',\n homepage: 'https://phantom.app/',\n },\n properties: [\n {\n name: 'namespaces',\n value: {\n selection: 'multiple',\n data: [\n {\n label: 'EVM',\n value: 'EVM',\n id: 'ETH',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n allBlockchains.filter(\n (chain): chain is EvmBlockchainMeta =>\n isEvmBlockchain(chain) &&\n EVM_SUPPORTED_CHAINS.includes(chain.name as Networks)\n ),\n },\n {\n label: 'Solana',\n value: 'Solana',\n id: 'SOLANA',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n solanaBlockchain(allBlockchains),\n },\n {\n label: 'BTC',\n value: 'UTXO',\n id: 'BTC',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n allBlockchains.filter(\n (chain): chain is TransferBlockchainMeta =>\n chain.name === Networks.BTC\n ),\n },\n {\n label: 'Sui',\n value: 'Sui',\n id: 'SUI',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n allBlockchains.filter(\n (chain): chain is SuiBlockchainMeta =>\n chain.type === TransactionType.SUI\n ),\n },\n ],\n },\n },\n {\n name: 'signers',\n value: { getSigners: async () => getSigners(getInstanceOrThrow()) },\n },\n ],\n};\n", "import type { Provider } from './utils.js';\nimport type { SignerFactory } from 'rango-types';\n\nimport { LegacyNetworks as Networks } from '@rango-dev/wallets-core/legacy';\nimport { getInstance as getSuiInstance } from '@rango-dev/wallets-core/namespaces/sui';\nimport { getNetworkInstance } from '@rango-dev/wallets-shared';\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nimport { WALLET_NAME_IN_WALLET_STANDARD } from './constants.js';\n\nexport default async function getSigners(\n provider: Provider\n): Promise<SignerFactory> {\n const solProvider = getNetworkInstance(provider, Networks.SOLANA);\n const evmProvider = getNetworkInstance(provider, Networks.ETHEREUM);\n const bitcoinInstance = getNetworkInstance(provider, Networks.BTC);\n\n const suiProvider = getSuiInstance(WALLET_NAME_IN_WALLET_STANDARD);\n\n const { DefaultEvmSigner } = await import('@rango-dev/signer-evm');\n const { DefaultSolanaSigner } = await import('@rango-dev/signer-solana');\n const { BTCSigner } = await import('./signers/utxoSigner.js');\n const { DefaultSuiSigner } = await import('@rango-dev/signer-sui');\n const signers = new DefaultSignerFactory();\n signers.registerSigner(TxType.SOLANA, new DefaultSolanaSigner(solProvider));\n signers.registerSigner(TxType.EVM, new DefaultEvmSigner(evmProvider));\n signers.registerSigner(TxType.TRANSFER, new BTCSigner(bitcoinInstance));\n if (!!suiProvider) {\n signers.registerSigner(TxType.SUI, new DefaultSuiSigner(suiProvider));\n }\n return signers;\n}\n", "import type { ProviderAPI as EvmProviderApi } from '@rango-dev/wallets-core/namespaces/evm';\nimport type { ProviderAPI as SolanaProviderApi } from '@rango-dev/wallets-core/namespaces/solana';\nimport type { ProviderAPI as SuiProviderApi } from '@rango-dev/wallets-core/namespaces/sui';\n\nimport { LegacyNetworks } from '@rango-dev/wallets-core/legacy';\n\nexport type Provider = Map<string, unknown>;\n\nexport function phantom(): Provider | null {\n const { phantom } = window;\n\n if (!phantom) {\n return null;\n }\n\n const { solana, ethereum, bitcoin, sui } = phantom;\n\n const instances: Provider = new Map();\n\n if (ethereum && ethereum.isPhantom) {\n instances.set(LegacyNetworks.ETHEREUM, ethereum);\n }\n\n if (solana && solana.isPhantom) {\n instances.set(LegacyNetworks.SOLANA, solana);\n }\n\n if (bitcoin && bitcoin.isPhantom) {\n instances.set(LegacyNetworks.BTC, bitcoin);\n }\n if (sui && sui.isPhantom) {\n instances.set(LegacyNetworks.SUI, sui);\n }\n\n return instances;\n}\n\nexport function getInstanceOrThrow(): Provider {\n const instances = phantom();\n\n if (!instances) {\n throw new Error('Phantom is not injected. Please check your wallet.');\n }\n\n return instances;\n}\n\nexport function evmPhantom(): EvmProviderApi {\n const instances = phantom();\n\n const evmInstance = instances?.get(LegacyNetworks.ETHEREUM);\n\n if (!evmInstance) {\n throw new Error(\n 'Phantom not injected or EVM not enabled. Please check your wallet.'\n );\n }\n\n return evmInstance as EvmProviderApi;\n}\n\nexport function solanaPhantom(): SolanaProviderApi {\n const instance = phantom();\n const solanaInstance = instance?.get(LegacyNetworks.SOLANA);\n\n if (!solanaInstance) {\n throw new Error(\n 'Phantom not injected or Solana not enabled. Please check your wallet.'\n );\n }\n\n return solanaInstance;\n}\n\nexport function bitcoinPhantom(): SolanaProviderApi {\n const instance = phantom();\n const bitcoinInstance = instance?.get(LegacyNetworks.BTC);\n\n if (!bitcoinInstance) {\n throw new Error(\n 'Phantom not injected or Bitcoin not enabled. Please check your wallet.'\n );\n }\n\n return bitcoinInstance;\n}\nexport function suiPhantom(): SuiProviderApi {\n const instance = phantom();\n const suiInstance = instance?.get(LegacyNetworks.SUI);\n\n if (!suiInstance) {\n throw new Error(\n 'Phantom not injected or Sui not enabled. Please check your wallet.'\n );\n }\n\n return suiInstance;\n}\n", "import { ProviderBuilder } from '@rango-dev/wallets-core';\n\nimport { info, WALLET_ID } from './constants.js';\nimport { evm } from './namespaces/evm.js';\nimport { solana } from './namespaces/solana.js';\nimport { sui } from './namespaces/sui.js';\nimport { utxo } from './namespaces/utxo.js';\nimport { phantom as phantomInstance } from './utils.js';\n\nconst buildProvider = () =>\n new ProviderBuilder(WALLET_ID)\n .init(function (context) {\n const [, setState] = context.state();\n\n if (phantomInstance()) {\n setState('installed', true);\n console.debug('[phantom] instance detected.', context);\n }\n })\n .config('info', info)\n .add('solana', solana)\n .add('evm', evm)\n .add('utxo', utxo)\n .add('sui', sui)\n .build();\n\nexport { buildProvider };\n", "import type { EvmActions } from '@rango-dev/wallets-core/namespaces/evm';\n\nimport { NamespaceBuilder } from '@rango-dev/wallets-core';\nimport {\n builders as commonBuilders,\n standardizeAndThrowError,\n} from '@rango-dev/wallets-core/namespaces/common';\nimport { actions, builders } from '@rango-dev/wallets-core/namespaces/evm';\n\nimport { WALLET_ID } from '../constants.js';\nimport { evmPhantom } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] =\n actions.changeAccountSubscriber(evmPhantom);\n\n/*\n * TODO: If user imported a private key for EVM, it hasn't solana.\n * when trying to connect to solana for this user we go through `-32603` which is an internal error.\n * If phantom added an specific error code for this situation, we can consider handling the error here.\n * @see https://docs.phantom.app/solana/errors\n */\nconst connect = builders\n .connect()\n .action(actions.connect(evmPhantom))\n .before(changeAccountSubscriber)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<EvmActions>()\n .after(changeAccountCleanup)\n .build();\n\nconst canEagerConnect = builders\n .canEagerConnect()\n .action(actions.canEagerConnect(evmPhantom))\n .build();\n\nconst canSwitchNetwork = builders\n .canSwitchNetwork()\n .action(actions.canSwitchNetwork())\n .build();\n\nconst evm = new NamespaceBuilder<EvmActions>('EVM', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .action(canSwitchNetwork)\n .build();\n\nexport { evm };\n", "import type { CaipAccount } from '@rango-dev/wallets-core/namespaces/common';\nimport type { SolanaActions } from '@rango-dev/wallets-core/namespaces/solana';\n\nimport { ActionBuilder, NamespaceBuilder } from '@rango-dev/wallets-core';\nimport {\n builders as commonBuilders,\n standardizeAndThrowError,\n} from '@rango-dev/wallets-core/namespaces/common';\nimport {\n actions,\n builders,\n CAIP_NAMESPACE,\n CAIP_SOLANA_CHAIN_ID,\n} from '@rango-dev/wallets-core/namespaces/solana';\nimport { CAIP } from '@rango-dev/wallets-core/utils';\nimport { getSolanaAccounts } from '@rango-dev/wallets-shared';\n\nimport { WALLET_ID } from '../constants.js';\nimport { solanaPhantom } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] =\n actions.changeAccountSubscriber(solanaPhantom);\n\n/*\n * TODO: If user imported a private key for EVM, it hasn't solana.\n * when trying to connect to solana for this user we go through `-32603` which is an internal error.\n * If phantom added an specific error code for this situation, we can consider handling the error here.\n * @see https://docs.phantom.app/solana/errors\n */\nconst connect = builders\n .connect()\n .action(async function () {\n const solanaInstance = solanaPhantom();\n const result = await getSolanaAccounts({\n instance: solanaInstance,\n meta: [],\n });\n if (Array.isArray(result)) {\n throw new Error(\n 'Expecting solana response to be a single value, not an array.'\n );\n }\n\n const formatAccounts = result.accounts.map(\n (account) =>\n CAIP.AccountId.format({\n address: account,\n chainId: {\n namespace: CAIP_NAMESPACE,\n reference: CAIP_SOLANA_CHAIN_ID,\n },\n }) as CaipAccount\n );\n\n return formatAccounts;\n })\n .before(changeAccountSubscriber)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<SolanaActions>()\n .after(changeAccountCleanup)\n .build();\n\nexport const canEagerConnectAction = async () => {\n const solanaInstance = solanaPhantom();\n\n if (!solanaInstance) {\n throw new Error(\n 'Trying to eagerly connect to your Solana wallet, but seems its instance is not available.'\n );\n }\n\n try {\n const result = await solanaInstance.connect({ onlyIfTrusted: true });\n return !!result;\n } catch {\n return false;\n }\n};\n\nconst canEagerConnect = new ActionBuilder<SolanaActions, 'canEagerConnect'>(\n 'canEagerConnect'\n)\n .action(canEagerConnectAction)\n .build();\n\nconst solana = new NamespaceBuilder<SolanaActions>('Solana', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .build();\n\nexport { solana };\n", "import type { SolanaActions } from '@rango-dev/wallets-core/namespaces/solana';\nimport type { SuiActions } from '@rango-dev/wallets-core/namespaces/sui';\n\nimport { ActionBuilder, NamespaceBuilder } from '@rango-dev/wallets-core';\nimport {\n builders as commonBuilders,\n standardizeAndThrowError,\n} from '@rango-dev/wallets-core/namespaces/common';\nimport { actions, builders } from '@rango-dev/wallets-core/namespaces/sui';\n\nimport { WALLET_ID, WALLET_NAME_IN_WALLET_STANDARD } from '../constants.js';\n\nimport { canEagerConnectAction as solanaCanEagerConnectAction } from './solana.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] =\n actions.changeAccountSubscriber({\n name: WALLET_NAME_IN_WALLET_STANDARD,\n });\n\nconst connect = builders\n .connect({\n name: WALLET_NAME_IN_WALLET_STANDARD,\n })\n .before(changeAccountSubscriber)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<SuiActions>()\n .after(changeAccountCleanup)\n .build();\n\n/*\n * TODO: We are currently using `solanaCanEagerConnectAction` to establish an eager connection to the Sui instance.\n * This is a temporary workaround due to Phantom's limitation in silently connecting to a Sui account.\n * Once Phantom introduces support for silent Sui connections, this implementation should be updated accordingly.\n */\nconst canEagerConnect = new ActionBuilder<SolanaActions, 'canEagerConnect'>(\n 'canEagerConnect'\n)\n .action(solanaCanEagerConnectAction)\n .build();\n\nconst sui = new NamespaceBuilder<SuiActions>('Sui', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .build();\n\nexport { sui };\n", "import type { SolanaActions } from '@rango-dev/wallets-core/namespaces/solana';\nimport type {\n ProviderAPI,\n UtxoActions,\n} from '@rango-dev/wallets-core/namespaces/utxo';\n\nimport {\n ActionBuilder,\n NamespaceBuilder,\n type Subscriber,\n type SubscriberCleanUp,\n} from '@rango-dev/wallets-core';\nimport {\n type CaipAccount,\n standardizeAndThrowError,\n} from '@rango-dev/wallets-core/namespaces/common';\nimport { builders as commonBuilders } from '@rango-dev/wallets-core/namespaces/common';\nimport {\n builders,\n CAIP_BITCOIN_CHAIN_ID,\n CAIP_NAMESPACE,\n} from '@rango-dev/wallets-core/namespaces/utxo';\nimport { CAIP } from '@rango-dev/wallets-core/utils';\nimport {\n Networks,\n type ProviderConnectResult,\n} from '@rango-dev/wallets-shared';\n\nimport { WALLET_ID } from '../constants.js';\nimport { bitcoinPhantom } from '../utils.js';\n\nimport { canEagerConnectAction as solanaCanEagerConnectAction } from './solana.js';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype AnyFunction = (...args: any[]) => any;\n\ntype BtcAccount = {\n address: string;\n publicKey: string;\n addressType: 'p2tr' | 'p2wpkh' | 'p2sh' | 'p2pkh';\n purpose: 'payment' | 'ordinals';\n};\n\nconst getBitcoinAccounts: () => Promise<ProviderConnectResult> = async () => {\n const instance = bitcoinPhantom();\n const accounts = await instance.requestAccounts();\n\n return {\n accounts: accounts\n .filter((account: BtcAccount) => account.purpose === 'payment')\n .map((account: BtcAccount) => account.address),\n chainId: Networks.BTC,\n };\n};\n\nfunction getChangeAccountSubscriber(\n instance: () => ProviderAPI | undefined\n): [Subscriber<UtxoActions>, SubscriberCleanUp<UtxoActions>] {\n let eventCallback: AnyFunction;\n\n // subscriber can be passed to `or`, it will get the error and should rethrow error to pass the error to next `or` or throw error.\n return [\n (context, err) => {\n const bitcoinInstance = instance();\n\n if (!bitcoinInstance) {\n throw new Error(\n 'Trying to subscribe to your Solana wallet, but seems its instance is not available.'\n );\n }\n\n const [, setState] = context.state();\n\n eventCallback = (accounts: BtcAccount[]) => {\n /*\n * In Phantom, when user is switching to an account which is not connected to dApp yet, it returns an empty array on `accountsChanged`.\n * So empty array means we don't have access to account and we need to disconnect and let the user connect the account.\n */\n if (!accounts.length) {\n context.action('disconnect');\n return;\n }\n\n const formatAccounts = accounts\n .filter((account) => account.purpose === 'payment')\n .map(\n (account: BtcAccount) =>\n CAIP.AccountId.format({\n address: account.address,\n chainId: {\n namespace: CAIP_NAMESPACE,\n reference: CAIP_BITCOIN_CHAIN_ID,\n },\n }) as CaipAccount\n );\n\n setState('accounts', formatAccounts);\n };\n bitcoinInstance.on('accountsChanged', eventCallback);\n\n if (err instanceof Error) {\n throw err;\n }\n },\n (_context, err) => {\n const bitcoinInstance = instance();\n\n if (eventCallback && bitcoinInstance) {\n bitcoinInstance.off('accountsChanged', eventCallback);\n }\n\n return err;\n },\n ];\n}\n\nconst [changeAccountSubscriber, changeAccountCleanup] =\n getChangeAccountSubscriber(bitcoinPhantom);\n\nconst connect = builders\n .connect()\n .action(async function () {\n const result = await getBitcoinAccounts();\n if (Array.isArray(result)) {\n throw new Error(\n 'Expecting bitcoin response to be a single value, not an array.'\n );\n }\n\n const formatAccounts = result.accounts.map(\n (account) =>\n CAIP.AccountId.format({\n address: account,\n chainId: {\n namespace: CAIP_NAMESPACE,\n reference: CAIP_BITCOIN_CHAIN_ID,\n },\n }) as CaipAccount\n );\n\n return formatAccounts;\n })\n .before(changeAccountSubscriber)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<UtxoActions>()\n .after(changeAccountCleanup)\n .build();\n\n/*\n * TODO: We are currently using `solanaCanEagerConnectAction` to establish an eager connection to the BTC instance.\n * This is a temporary workaround due to Phantom's limitation in silently connecting to a BTC account.\n * Once Phantom introduces support for silent BTC connections, this implementation should be updated accordingly.\n */\nconst canEagerConnect = new ActionBuilder<SolanaActions, 'canEagerConnect'>(\n 'canEagerConnect'\n)\n .action(solanaCanEagerConnectAction)\n .build();\n\nconst utxo = new NamespaceBuilder<UtxoActions>('UTXO', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .build();\n\nexport { utxo };\n"],
5
+ "mappings": "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",
6
+ "names": ["utxoSigner_exports", "__export", "BTCSigner", "secp256k1", "Networks", "bitcoin", "SignerError", "base64ToUint8Array", "base64String", "binaryString", "length", "uint8Array", "i", "BTC_RPC_URL", "init_utxoSigner", "__esmMin", "__name", "provider", "tx", "asset", "psbt", "signedPSBTBytes", "finalPsbt", "finalPsbtBaseHex", "response", "errorText", "data", "defineVersions", "Networks", "chooseInstance", "getSolanaAccounts", "WalletTypes", "isEvmBlockchain", "solanaBlockchain", "TransactionType", "LegacyNetworks", "Networks", "isEvmBlockchain", "solanaBlockchain", "TransactionType", "Networks", "getSuiInstance", "getNetworkInstance", "DefaultSignerFactory", "TxType", "getSigners", "provider", "solProvider", "getNetworkInstance", "Networks", "evmProvider", "bitcoinInstance", "suiProvider", "getSuiInstance", "WALLET_NAME_IN_WALLET_STANDARD", "DefaultEvmSigner", "DefaultSolanaSigner", "BTCSigner", "DefaultSuiSigner", "signers", "DefaultSignerFactory", "TxType", "__name", "LegacyNetworks", "phantom", "solana", "ethereum", "bitcoin", "sui", "instances", "LegacyNetworks", "__name", "getInstanceOrThrow", "evmPhantom", "evmInstance", "solanaPhantom", "solanaInstance", "bitcoinPhantom", "bitcoinInstance", "EVM_SUPPORTED_CHAINS", "LegacyNetworks", "WALLET_ID", "WALLET_NAME_IN_WALLET_STANDARD", "info", "allBlockchains", "chain", "isEvmBlockchain", "solanaBlockchain", "Networks", "TransactionType", "getSigners", "getInstanceOrThrow", "WALLET", "WalletTypes", "config", "getInstance", "phantom", "connect", "__name", "instance", "meta", "solanaInstance", "Networks", "getSolanaAccounts", "subscribe", "updateAccounts", "handleAccountsChanged", "publicKey", "network", "account", "canSwitchNetworkTo", "EVM_SUPPORTED_CHAINS", "getSigners", "canEagerConnect", "chooseInstance", "getWalletInfo", "allBlockChains", "supportedChains", "sui", "blockchain", "TransactionType", "solana", "solanaBlockchain", "evms", "chain", "isEvmBlockchain", "btc", "allBlockchains", "buildLegacyProvider", "ProviderBuilder", "NamespaceBuilder", "commonBuilders", "standardizeAndThrowError", "actions", "builders", "changeAccountSubscriber", "changeAccountCleanup", "actions", "evmPhantom", "connect", "builders", "standardizeAndThrowError", "disconnect", "commonBuilders", "canEagerConnect", "canSwitchNetwork", "evm", "NamespaceBuilder", "WALLET_ID", "ActionBuilder", "NamespaceBuilder", "commonBuilders", "standardizeAndThrowError", "actions", "builders", "CAIP_NAMESPACE", "CAIP_SOLANA_CHAIN_ID", "CAIP", "getSolanaAccounts", "changeAccountSubscriber", "changeAccountCleanup", "actions", "solanaPhantom", "connect", "builders", "solanaInstance", "result", "getSolanaAccounts", "account", "CAIP", "CAIP_NAMESPACE", "CAIP_SOLANA_CHAIN_ID", "standardizeAndThrowError", "disconnect", "commonBuilders", "canEagerConnectAction", "__name", "canEagerConnect", "ActionBuilder", "solana", "NamespaceBuilder", "WALLET_ID", "ActionBuilder", "NamespaceBuilder", "commonBuilders", "standardizeAndThrowError", "actions", "builders", "changeAccountSubscriber", "changeAccountCleanup", "actions", "WALLET_NAME_IN_WALLET_STANDARD", "connect", "builders", "standardizeAndThrowError", "disconnect", "commonBuilders", "canEagerConnect", "ActionBuilder", "canEagerConnectAction", "sui", "NamespaceBuilder", "WALLET_ID", "ActionBuilder", "NamespaceBuilder", "standardizeAndThrowError", "commonBuilders", "builders", "CAIP_BITCOIN_CHAIN_ID", "CAIP_NAMESPACE", "CAIP", "Networks", "getBitcoinAccounts", "__name", "bitcoinPhantom", "account", "Networks", "getChangeAccountSubscriber", "instance", "eventCallback", "context", "err", "bitcoinInstance", "setState", "accounts", "formatAccounts", "CAIP", "CAIP_NAMESPACE", "CAIP_BITCOIN_CHAIN_ID", "_context", "changeAccountSubscriber", "changeAccountCleanup", "connect", "builders", "result", "standardizeAndThrowError", "disconnect", "commonBuilders", "canEagerConnect", "ActionBuilder", "canEagerConnectAction", "utxo", "NamespaceBuilder", "WALLET_ID", "buildProvider", "__name", "ProviderBuilder", "WALLET_ID", "context", "setState", "phantom", "info", "solana", "evm", "utxo", "sui", "versions", "__name", "defineVersions", "buildLegacyProvider", "buildProvider"]
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../src/namespaces/evm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AAuCzE,QAAA,MAAM,GAAG,gEAIC,CAAC;AAEX,OAAO,EAAE,GAAG,EAAE,CAAC"}
1
+ {"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../src/namespaces/evm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,wCAAwC,CAAC;AA4CzE,QAAA,MAAM,GAAG,gEAKC,CAAC;AAEX,OAAO,EAAE,GAAG,EAAE,CAAC"}
@@ -1 +1 @@
1
- {"inputs":{"src/constants.ts":{"bytes":2333,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/legacy","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true}],"format":"esm"},"src/utils.ts":{"bytes":2221,"imports":[{"path":"@rango-dev/wallets-core/legacy","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/legacy/utxoSigner.ts":{"bytes":2672,"imports":[{"path":"@bitcoinerlab/secp256k1","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"bitcoinjs-lib","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/legacy/signer.ts":{"bytes":1513,"imports":[{"path":"@rango-dev/wallets-core/legacy","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/sui","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/constants.ts","kind":"import-statement","original":"../constants.js"},{"path":"@rango-dev/signer-evm","kind":"dynamic-import","external":true},{"path":"@rango-dev/signer-solana","kind":"dynamic-import","external":true},{"path":"src/legacy/utxoSigner.ts","kind":"dynamic-import","original":"./utxoSigner.js"},{"path":"@rango-dev/signer-sui","kind":"dynamic-import","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/legacy/index.ts":{"bytes":4992,"imports":[{"path":"@rango-dev/wallets-core/legacy","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/constants.ts","kind":"import-statement","original":"../constants.js"},{"path":"src/utils.ts","kind":"import-statement","original":"../utils.js"},{"path":"src/legacy/signer.ts","kind":"import-statement","original":"./signer.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/namespaces/evm.ts":{"bytes":1414,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/evm","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"../constants.js"},{"path":"src/utils.ts","kind":"import-statement","original":"../utils.js"}],"format":"esm"},"src/namespaces/solana.ts":{"bytes":2714,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/solana","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/utils","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"../constants.js"},{"path":"src/utils.ts","kind":"import-statement","original":"../utils.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/namespaces/sui.ts":{"bytes":1680,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/sui","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"../constants.js"},{"path":"src/namespaces/solana.ts","kind":"import-statement","original":"./solana.js"}],"format":"esm"},"src/namespaces/utxo.ts":{"bytes":4978,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/utxo","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/utils","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"../constants.js"},{"path":"src/utils.ts","kind":"import-statement","original":"../utils.js"},{"path":"src/namespaces/solana.ts","kind":"import-statement","original":"./solana.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/provider.ts":{"bytes":791,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"./constants.js"},{"path":"src/namespaces/evm.ts","kind":"import-statement","original":"./namespaces/evm.js"},{"path":"src/namespaces/solana.ts","kind":"import-statement","original":"./namespaces/solana.js"},{"path":"src/namespaces/sui.ts","kind":"import-statement","original":"./namespaces/sui.js"},{"path":"src/namespaces/utxo.ts","kind":"import-statement","original":"./namespaces/utxo.js"},{"path":"src/utils.ts","kind":"import-statement","original":"./utils.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/mod.ts":{"bytes":332,"imports":[{"path":"@rango-dev/wallets-core/utils","kind":"import-statement","external":true},{"path":"src/legacy/index.ts","kind":"import-statement","original":"./legacy/index.js"},{"path":"src/provider.ts","kind":"import-statement","original":"./provider.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/mod.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":40507},"dist/mod.js":{"imports":[{"path":"@bitcoinerlab/secp256k1","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"bitcoinjs-lib","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/utils","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/legacy","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-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/legacy","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-core/legacy","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/legacy","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/sui","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":"@rango-dev/signer-solana","kind":"dynamic-import","external":true},{"path":"@rango-dev/signer-sui","kind":"dynamic-import","external":true},{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/evm","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/solana","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/utils","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/sui","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/utxo","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/utils","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true}],"exports":["versions"],"entryPoint":"src/mod.ts","inputs":{"src/legacy/utxoSigner.ts":{"bytesInOutput":1355},"src/mod.ts":{"bytesInOutput":144},"src/legacy/index.ts":{"bytesInOutput":1829},"src/constants.ts":{"bytesInOutput":957},"src/utils.ts":{"bytesInOutput":810},"src/legacy/signer.ts":{"bytesInOutput":767},"src/provider.ts":{"bytesInOutput":289},"src/namespaces/evm.ts":{"bytesInOutput":502},"src/namespaces/solana.ts":{"bytesInOutput":1157},"src/namespaces/sui.ts":{"bytesInOutput":507},"src/namespaces/utxo.ts":{"bytesInOutput":1587}},"bytes":10136}}}
1
+ {"inputs":{"src/signers/utxoSigner.ts":{"bytes":2672,"imports":[{"path":"@bitcoinerlab/secp256k1","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"bitcoinjs-lib","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/signer.ts":{"bytes":1519,"imports":[{"path":"@rango-dev/wallets-core/legacy","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/sui","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/constants.ts","kind":"import-statement","original":"./constants.js"},{"path":"@rango-dev/signer-evm","kind":"dynamic-import","external":true},{"path":"@rango-dev/signer-solana","kind":"dynamic-import","external":true},{"path":"src/signers/utxoSigner.ts","kind":"dynamic-import","original":"./signers/utxoSigner.js"},{"path":"@rango-dev/signer-sui","kind":"dynamic-import","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/utils.ts":{"bytes":2425,"imports":[{"path":"@rango-dev/wallets-core/legacy","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/constants.ts":{"bytes":2532,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/legacy","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/signer.ts","kind":"import-statement","original":"./signer.js"},{"path":"src/utils.ts","kind":"import-statement","original":"./utils.js"}],"format":"esm"},"src/legacy/index.ts":{"bytes":4990,"imports":[{"path":"@rango-dev/wallets-core/legacy","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/constants.ts","kind":"import-statement","original":"../constants.js"},{"path":"src/signer.ts","kind":"import-statement","original":"../signer.js"},{"path":"src/utils.ts","kind":"import-statement","original":"../utils.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/namespaces/evm.ts":{"bytes":1549,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/evm","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"../constants.js"},{"path":"src/utils.ts","kind":"import-statement","original":"../utils.js"}],"format":"esm"},"src/namespaces/solana.ts":{"bytes":2714,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/solana","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/utils","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"../constants.js"},{"path":"src/utils.ts","kind":"import-statement","original":"../utils.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/namespaces/sui.ts":{"bytes":1680,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/sui","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"../constants.js"},{"path":"src/namespaces/solana.ts","kind":"import-statement","original":"./solana.js"}],"format":"esm"},"src/namespaces/utxo.ts":{"bytes":4978,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/utxo","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/utils","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"../constants.js"},{"path":"src/utils.ts","kind":"import-statement","original":"../utils.js"},{"path":"src/namespaces/solana.ts","kind":"import-statement","original":"./solana.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/provider.ts":{"bytes":791,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"./constants.js"},{"path":"src/namespaces/evm.ts","kind":"import-statement","original":"./namespaces/evm.js"},{"path":"src/namespaces/solana.ts","kind":"import-statement","original":"./namespaces/solana.js"},{"path":"src/namespaces/sui.ts","kind":"import-statement","original":"./namespaces/sui.js"},{"path":"src/namespaces/utxo.ts","kind":"import-statement","original":"./namespaces/utxo.js"},{"path":"src/utils.ts","kind":"import-statement","original":"./utils.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/mod.ts":{"bytes":332,"imports":[{"path":"@rango-dev/wallets-core/utils","kind":"import-statement","external":true},{"path":"src/legacy/index.ts","kind":"import-statement","original":"./legacy/index.js"},{"path":"src/provider.ts","kind":"import-statement","original":"./provider.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"}},"outputs":{"dist/mod.js.map":{"imports":[],"exports":[],"inputs":{},"bytes":41500},"dist/mod.js":{"imports":[{"path":"@bitcoinerlab/secp256k1","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"bitcoinjs-lib","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/utils","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/legacy","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-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/legacy","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-core/legacy","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/sui","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":"@rango-dev/signer-solana","kind":"dynamic-import","external":true},{"path":"@rango-dev/signer-sui","kind":"dynamic-import","external":true},{"path":"@rango-dev/wallets-core/legacy","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/evm","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/solana","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/utils","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/sui","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/utxo","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/utils","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true}],"exports":["versions"],"entryPoint":"src/mod.ts","inputs":{"src/signers/utxoSigner.ts":{"bytesInOutput":1353},"src/mod.ts":{"bytesInOutput":144},"src/legacy/index.ts":{"bytesInOutput":1829},"src/constants.ts":{"bytesInOutput":1013},"src/signer.ts":{"bytesInOutput":767},"src/utils.ts":{"bytesInOutput":944},"src/provider.ts":{"bytesInOutput":289},"src/namespaces/evm.ts":{"bytesInOutput":574},"src/namespaces/solana.ts":{"bytesInOutput":1157},"src/namespaces/sui.ts":{"bytesInOutput":507},"src/namespaces/utxo.ts":{"bytesInOutput":1587}},"bytes":10396}}}
@@ -1,4 +1,4 @@
1
- import type { Provider } from '../utils.js';
1
+ import type { Provider } from './utils.js';
2
2
  import type { SignerFactory } from 'rango-types';
3
3
  export default function getSigners(provider: Provider): Promise<SignerFactory>;
4
4
  //# sourceMappingURL=signer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AASjD,wBAA8B,UAAU,CACtC,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,aAAa,CAAC,CAmBxB"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utxoSigner.d.ts","sourceRoot":"","sources":["../../src/signers/utxoSigner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAQ3D,KAAK,wBAAwB,GAAG,GAAG,CAAC;AAiBpC,qBAAa,SAAU,YAAW,aAAa,CAAC,QAAQ,CAAC;IACvD,OAAO,CAAC,QAAQ,CAA2B;gBAC/B,QAAQ,EAAE,wBAAwB;IAIxC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAI9B,aAAa,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAwD7D"}
package/dist/utils.d.ts CHANGED
@@ -3,6 +3,7 @@ import type { ProviderAPI as SolanaProviderApi } from '@rango-dev/wallets-core/n
3
3
  import type { ProviderAPI as SuiProviderApi } from '@rango-dev/wallets-core/namespaces/sui';
4
4
  export type Provider = Map<string, unknown>;
5
5
  export declare function phantom(): Provider | null;
6
+ export declare function getInstanceOrThrow(): Provider;
6
7
  export declare function evmPhantom(): EvmProviderApi;
7
8
  export declare function solanaPhantom(): SolanaProviderApi;
8
9
  export declare function bitcoinPhantom(): SolanaProviderApi;
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC5F,OAAO,KAAK,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAClG,OAAO,KAAK,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAI5F,MAAM,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5C,wBAAgB,OAAO,IAAI,QAAQ,GAAG,IAAI,CA2BzC;AAED,wBAAgB,UAAU,IAAI,cAAc,CAY3C;AAED,wBAAgB,aAAa,IAAI,iBAAiB,CAWjD;AAED,wBAAgB,cAAc,IAAI,iBAAiB,CAWlD;AACD,wBAAgB,UAAU,IAAI,cAAc,CAW3C"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC5F,OAAO,KAAK,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAClG,OAAO,KAAK,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAI5F,MAAM,MAAM,QAAQ,GAAG,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE5C,wBAAgB,OAAO,IAAI,QAAQ,GAAG,IAAI,CA2BzC;AAED,wBAAgB,kBAAkB,IAAI,QAAQ,CAQ7C;AAED,wBAAgB,UAAU,IAAI,cAAc,CAY3C;AAED,wBAAgB,aAAa,IAAI,iBAAiB,CAWjD;AAED,wBAAgB,cAAc,IAAI,iBAAiB,CAWlD;AACD,wBAAgB,UAAU,IAAI,cAAc,CAW3C"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rango-dev/provider-phantom",
3
- "version": "0.48.1-next.0",
3
+ "version": "0.48.1-next.2",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "source": "./src/mod.ts",
@@ -26,7 +26,7 @@
26
26
  "@mysten/wallet-standard": "^0.13.26",
27
27
  "@rango-dev/signer-solana": "^0.42.1-next.0",
28
28
  "@rango-dev/signer-sui": "^0.6.1-next.0",
29
- "@rango-dev/wallets-shared": "^0.47.1-next.0",
29
+ "@rango-dev/wallets-shared": "^0.47.1-next.2",
30
30
  "bitcoinjs-lib": "^6.1.7",
31
31
  "rango-types": "^0.1.88"
32
32
  },
package/src/constants.ts CHANGED
@@ -11,6 +11,9 @@ import {
11
11
  type TransferBlockchainMeta,
12
12
  } from 'rango-types';
13
13
 
14
+ import getSigners from './signer.js';
15
+ import { getInstanceOrThrow } from './utils.js';
16
+
14
17
  export const EVM_SUPPORTED_CHAINS = [
15
18
  LegacyNetworks.ETHEREUM,
16
19
  LegacyNetworks.POLYGON,
@@ -75,5 +78,9 @@ export const info: ProviderInfo = {
75
78
  ],
76
79
  },
77
80
  },
81
+ {
82
+ name: 'signers',
83
+ value: { getSigners: async () => getSigners(getInstanceOrThrow()) },
84
+ },
78
85
  ],
79
86
  };
@@ -27,10 +27,9 @@ import {
27
27
  } from 'rango-types';
28
28
 
29
29
  import { EVM_SUPPORTED_CHAINS } from '../constants.js';
30
+ import signer from '../signer.js';
30
31
  import { phantom as phantom_instance, type Provider } from '../utils.js';
31
32
 
32
- import signer from './signer.js';
33
-
34
33
  const WALLET = WalletTypes.PHANTOM;
35
34
 
36
35
  export const config = {
@@ -70,11 +69,9 @@ export const subscribe: Subscribe = ({ instance, updateAccounts, connect }) => {
70
69
  instance?.off?.('accountChanged', handleAccountsChanged);
71
70
  };
72
71
  };
73
-
74
72
  const canSwitchNetworkTo: CanSwitchNetwork = ({ network }) => {
75
73
  return EVM_SUPPORTED_CHAINS.includes(network as Networks);
76
74
  };
77
-
78
75
  export const getSigners: (provider: Provider) => Promise<SignerFactory> =
79
76
  signer;
80
77
 
@@ -169,9 +166,9 @@ const buildLegacyProvider: () => LegacyProviderInterface = () => ({
169
166
  getInstance,
170
167
  connect,
171
168
  subscribe,
172
- canSwitchNetworkTo,
173
169
  getSigners,
174
170
  getWalletInfo,
171
+ canSwitchNetworkTo,
175
172
  canEagerConnect,
176
173
  });
177
174
 
@@ -37,10 +37,16 @@ const canEagerConnect = builders
37
37
  .action(actions.canEagerConnect(evmPhantom))
38
38
  .build();
39
39
 
40
+ const canSwitchNetwork = builders
41
+ .canSwitchNetwork()
42
+ .action(actions.canSwitchNetwork())
43
+ .build();
44
+
40
45
  const evm = new NamespaceBuilder<EvmActions>('EVM', WALLET_ID)
41
46
  .action(connect)
42
47
  .action(disconnect)
43
48
  .action(canEagerConnect)
49
+ .action(canSwitchNetwork)
44
50
  .build();
45
51
 
46
52
  export { evm };
@@ -1,4 +1,4 @@
1
- import type { Provider } from '../utils.js';
1
+ import type { Provider } from './utils.js';
2
2
  import type { SignerFactory } from 'rango-types';
3
3
 
4
4
  import { LegacyNetworks as Networks } from '@rango-dev/wallets-core/legacy';
@@ -6,7 +6,7 @@ import { getInstance as getSuiInstance } from '@rango-dev/wallets-core/namespace
6
6
  import { getNetworkInstance } from '@rango-dev/wallets-shared';
7
7
  import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';
8
8
 
9
- import { WALLET_NAME_IN_WALLET_STANDARD } from '../constants.js';
9
+ import { WALLET_NAME_IN_WALLET_STANDARD } from './constants.js';
10
10
 
11
11
  export default async function getSigners(
12
12
  provider: Provider
@@ -19,7 +19,7 @@ export default async function getSigners(
19
19
 
20
20
  const { DefaultEvmSigner } = await import('@rango-dev/signer-evm');
21
21
  const { DefaultSolanaSigner } = await import('@rango-dev/signer-solana');
22
- const { BTCSigner } = await import('./utxoSigner.js');
22
+ const { BTCSigner } = await import('./signers/utxoSigner.js');
23
23
  const { DefaultSuiSigner } = await import('@rango-dev/signer-sui');
24
24
  const signers = new DefaultSignerFactory();
25
25
  signers.registerSigner(TxType.SOLANA, new DefaultSolanaSigner(solProvider));
package/src/utils.ts CHANGED
@@ -35,6 +35,16 @@ export function phantom(): Provider | null {
35
35
  return instances;
36
36
  }
37
37
 
38
+ export function getInstanceOrThrow(): Provider {
39
+ const instances = phantom();
40
+
41
+ if (!instances) {
42
+ throw new Error('Phantom is not injected. Please check your wallet.');
43
+ }
44
+
45
+ return instances;
46
+ }
47
+
38
48
  export function evmPhantom(): EvmProviderApi {
39
49
  const instances = phantom();
40
50
 
@@ -1 +0,0 @@
1
- {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/legacy/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AASjD,wBAA8B,UAAU,CACtC,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,aAAa,CAAC,CAmBxB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"utxoSigner.d.ts","sourceRoot":"","sources":["../../src/legacy/utxoSigner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAQ3D,KAAK,wBAAwB,GAAG,GAAG,CAAC;AAiBpC,qBAAa,SAAU,YAAW,aAAa,CAAC,QAAQ,CAAC;IACvD,OAAO,CAAC,QAAQ,CAA2B;gBAC/B,QAAQ,EAAE,wBAAwB;IAIxC,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAI9B,aAAa,CAAC,EAAE,EAAE,QAAQ,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAwD7D"}
File without changes
File without changes