@rango-dev/provider-vultisig 0.3.1-next.4 → 0.4.0

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,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAKrD,eAAO,MAAM,SAAS,aAAa,CAAC;AAEpC,eAAO,MAAM,IAAI,EAAE,gBA+BlB,CAAC"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAUrD,eAAO,MAAM,SAAS,aAAa,CAAC;AAEpC,eAAO,MAAM,IAAI,EAAE,gBA8BlB,CAAC"}
package/dist/mod.js CHANGED
@@ -1,2 +1,2 @@
1
- var y=Object.defineProperty;var o=(t,e)=>y(t,"name",{value:e,configurable:!0});var r=(t,e)=>()=>(t&&(e=t(t=0)),e);var M=(t,e)=>{for(var i in e)y(t,i,{get:e[i],enumerable:!0})};import{UTXO_NAMESPACE as v}from"@hub3js/namespaces";function g(){let{vultisig:t}=window;if(!t)return null;let e=new Map;return t.zcash&&e.set(v,t.zcash),e}function s(){let e=g()?.get(v);if(!e)throw new Error("Vultisig not injected. Please check your wallet.");return e}var a=r(()=>{"use strict";o(g,"vultisig");o(s,"vultisigZcash")});async function S(){return s().requestAccounts()}async function c(){return await s().request({method:"get_accounts"})}var l=r(()=>{"use strict";a();o(S,"requestZcashAccounts");o(c,"getZcashAccounts")});import{ActionBuilder as D,NamespaceBuilder as L}from"@hub3js/core";import*as x from"@hub3js/std/builders";import{standardizeAndThrowError as N}from"@hub3js/std/operators";import{builders as R,CAIP_ZCASH_CHAIN_ID as j,utils as q}from"@rango-dev/wallets-core/namespaces/utxo";var H,V,O,m,d=r(()=>{"use strict";f();l();H=R.connect().action(async function(){let t=await S();return q.formatAccountsToCAIP(t,j)}).or(N).build(),V=new D("canEagerConnect").action(async()=>(await c().catch(()=>[])).length>0).build(),O=x.disconnect().build(),m=new L("UTXO",u).action(H).action(O).action(V).build()});import{LegacyNetworks as W}from"@rango-dev/wallets-core/legacy";import{SignerError as h,SignerErrorCode as E}from"rango-types";var p,T=r(()=>{"use strict";a();l();p=class{static{o(this,"Signer")}async signMessage(){throw h.UnimplementedError("signMessage")}async signAndSendTx(e){let{memo:i,fromWalletAddress:w,recipientAddress:U,amount:I,asset:k}=e;if(k.blockchain!==W.ZCASH)throw new Error(`You can not sign ${e.blockChain} using ZCash signer.`);let B=await c();if(w!==B[0])throw new Error("fromWalletAddress is not matched with the connected account");try{let n={method:"send_transaction",params:[{from:w,to:U,value:I,memo:i}]};return{hash:await s().request(n)}}catch(n){throw typeof n=="string"?new h(E.UNEXPECTED_BEHAVIOUR,n,void 0):new h(E.SEND_TX_ERROR,void 0,n)}}}});var b={};M(b,{Signer:()=>p,namespace:()=>m});var P=r(()=>{"use strict";d();T()});import{DefaultSignerFactory as X,TransactionType as z}from"rango-types";async function A(){let{Signer:t}=await Promise.resolve().then(()=>(P(),b)),e=new X;return e.registerSigner(z.TRANSFER,new t),e}var C=r(()=>{"use strict";o(A,"getSigners")});var u,Z,f=r(()=>{"use strict";C();u="vultisig",Z={name:"Vultisig",icon:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/vultisig/icon.svg",extensions:{chrome:"https://chromewebstore.google.com/detail/vultisig-extension/ggafhcdaplkhmmnlbfjpnnkepdfjaelb",homepage:"https://vultisig.com/"},properties:[{name:"namespaces",value:{selection:"multiple",data:[{label:"Zcash",value:"UTXO",id:"ZCASH",getSupportedChains:t=>t.filter(e=>e.name==="ZCASH")}]}},{name:"signers",value:{getSigners:async()=>A()}}]}});import{defineVersions as G}from"@hub3js/core/utils";f();d();a();import{ProviderBuilder as F}from"@hub3js/core";var _=o(()=>new F(u).init(function(t){let[,e]=t.state();g()&&(e("installed",!0),console.debug("[vultisig] instance detected.",t))}).config("metadata",Z).add("utxo",m).build(),"buildProvider");var Ut=o(()=>G().version("1.0.0",_()).build(),"versions");export{Ut as versions};
1
+ var v=Object.defineProperty;var o=(t,e)=>v(t,"name",{value:e,configurable:!0});var r=(t,e)=>()=>(t&&(e=t(t=0)),e);var B=(t,e)=>{for(var s in e)v(t,s,{get:e[s],enumerable:!0})};import{UTXO_NAMESPACE as y}from"@hub3js/namespaces";function g(){let{vultisig:t}=window;if(!t)return null;let e=new Map;return t.zcash&&e.set(y,t.zcash),e}function i(){let e=g()?.get(y);if(!e)throw new Error("Vultisig not injected. Please check your wallet.");return e}var a=r(()=>{"use strict";o(g,"vultisig");o(i,"vultisigZcash")});async function x(){return i().requestAccounts()}async function c(){return await i().request({method:"get_accounts"})}var d=r(()=>{"use strict";a();o(x,"requestZcashAccounts");o(c,"getZcashAccounts")});import{ActionBuilder as R,NamespaceBuilder as j}from"@hub3js/core";import*as S from"@hub3js/std/builders";import{standardizeAndThrowError as k}from"@hub3js/std/operators";import{builders as q,CAIP_ZCASH_CHAIN_ID as H,utils as L}from"@rango-dev/wallets-core/namespaces/utxo";var M,V,F,m,l=r(()=>{"use strict";f();d();M=q.connect().action(async function(){let t=await x();return L.formatAccountsToCAIP(t,H)}).or(k).build(),V=new R("canEagerConnect").action(async()=>(await c().catch(()=>[])).length>0).build(),F=S.disconnect().build(),m=new j("UTXO",u).action(M).action(F).action(V).build()});import{isZcashBlockchain as O}from"@rango-dev/wallets-shared";import{SignerError as h,SignerErrorCode as E}from"rango-types";var p,T=r(()=>{"use strict";a();d();p=class{static{o(this,"Signer")}async signMessage(){throw h.UnimplementedError("signMessage")}async signAndSendTx(e){let{memo:s,fromWalletAddress:w,recipientAddress:I,amount:U,asset:D}=e;if(!O(D.blockchain))throw new Error(`You can not sign ${e.blockChain} using ZCash signer.`);let N=await c();if(w!==N[0])throw new Error("fromWalletAddress is not matched with the connected account");try{let n={method:"send_transaction",params:[{from:w,to:I,value:U,memo:s}]};return{hash:await i().request(n)}}catch(n){throw typeof n=="string"?new h(E.UNEXPECTED_BEHAVIOUR,n,void 0):new h(E.SEND_TX_ERROR,void 0,n)}}}});var C={};B(C,{Signer:()=>p,namespace:()=>m});var P=r(()=>{"use strict";l();T()});import{DefaultSignerFactory as W,TransactionType as X}from"rango-types";async function A(){let{Signer:t}=await Promise.resolve().then(()=>(P(),C)),e=new W;return e.registerSigner(X.TRANSFER,new t),e}var b=r(()=>{"use strict";o(A,"getSigners")});import{getChainIdFromCaip2ChainId as z}from"@hub3js/std/utils";import{CAIP_ZCASH_CHAIN_ID as G,isUtxoNamespace as Y}from"@rango-dev/wallets-core/namespaces/utxo";var u,Z,f=r(()=>{"use strict";b();u="vultisig",Z={name:"Vultisig",icon:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/vultisig/icon.svg",extensions:{chrome:"https://chromewebstore.google.com/detail/vultisig-extension/ggafhcdaplkhmmnlbfjpnnkepdfjaelb",homepage:"https://vultisig.com/"},properties:[{name:"namespaces",value:{selection:"multiple",data:[{label:"Zcash",value:"UTXO",id:"ZCASH",isChainSupported:t=>Y(t)&&z(t)===G}]}},{name:"signers",value:{getSigners:async()=>A()}}]}});import{defineVersions as J}from"@hub3js/core/utils";f();l();a();import{ProviderBuilder as $}from"@hub3js/core";var _=o(()=>new $(u).init(function(t){let[,e]=t.state();g()&&(e("installed",!0),console.debug("[vultisig] instance detected.",t))}).config("metadata",Z).add("utxo",m).build(),"buildProvider");var Rt=o(()=>J().version("1.0.0",_()).build(),"versions");export{Rt 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
3
  "sources": ["../src/utils.ts", "../src/namespaces/utxo/helpers.ts", "../src/namespaces/utxo/namespace.ts", "../src/namespaces/utxo/singer.ts", "../src/namespaces/utxo/mod.ts", "../src/signer.ts", "../src/constants.ts", "../src/mod.ts", "../src/provider.ts"],
4
- "sourcesContent": ["import type { Provider, VultisigZcashProviderApi } from './types.js';\n\nimport { UTXO_NAMESPACE } from '@hub3js/namespaces';\n\nexport function vultisig(): Provider | null {\n const { vultisig } = window;\n if (!vultisig) {\n return null;\n }\n\n const instances: Provider = new Map();\n\n if (vultisig.zcash) {\n instances.set(UTXO_NAMESPACE, vultisig.zcash);\n }\n\n return instances;\n}\n\nexport function vultisigZcash(): VultisigZcashProviderApi {\n const instances = vultisig();\n const zcashInstance = instances?.get(UTXO_NAMESPACE);\n\n if (!zcashInstance) {\n throw new Error('Vultisig not injected. Please check your wallet.');\n }\n\n return zcashInstance;\n}\n", "import { vultisigZcash } from '../../utils.js';\n\nexport async function requestZcashAccounts() {\n return vultisigZcash().requestAccounts();\n}\n\n// Get accounts silently\nexport async function getZcashAccounts() {\n return await vultisigZcash().request({ method: 'get_accounts' });\n}\n", "import type { UtxoActions } from '@rango-dev/wallets-core/namespaces/utxo';\n\nimport { ActionBuilder, NamespaceBuilder } from '@hub3js/core';\nimport * as commonBuilders from '@hub3js/std/builders';\nimport { standardizeAndThrowError } from '@hub3js/std/operators';\nimport {\n builders,\n CAIP_ZCASH_CHAIN_ID,\n utils,\n} from '@rango-dev/wallets-core/namespaces/utxo';\n\nimport { WALLET_ID } from '../../constants.js';\n\nimport { getZcashAccounts, requestZcashAccounts } from './helpers.js';\n\nconst connect = builders\n .connect()\n .action(async function () {\n const accounts = await requestZcashAccounts();\n\n return utils.formatAccountsToCAIP(accounts, CAIP_ZCASH_CHAIN_ID);\n })\n .or(standardizeAndThrowError)\n .build();\n\nconst canEagerConnect = new ActionBuilder<UtxoActions, 'canEagerConnect'>(\n 'canEagerConnect'\n)\n .action(async () => {\n const accounts = await getZcashAccounts().catch(() => []);\n return accounts.length > 0;\n })\n .build();\n\nconst disconnect = commonBuilders.disconnect<UtxoActions>().build();\n\nexport const namespace = new NamespaceBuilder<UtxoActions>('UTXO', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .build();\n", "import type { SendTransactionArgs } from '../../types.js';\nimport type { Transfer } from 'rango-types/mainApi';\n\nimport { LegacyNetworks } from '@rango-dev/wallets-core/legacy';\nimport { type GenericSigner, SignerError, SignerErrorCode } from 'rango-types';\n\nimport { vultisigZcash } from '../../utils.js';\n\nimport { getZcashAccounts } from './helpers.js';\n\nexport class Signer implements GenericSigner<Transfer> {\n async signMessage(): Promise<string> {\n throw SignerError.UnimplementedError('signMessage');\n }\n\n async signAndSendTx(tx: Transfer): Promise<{ hash: string }> {\n const { memo, fromWalletAddress, recipientAddress, amount, asset } = tx;\n\n // TODO: check should be performed on the blockchain field of transaction instead of asset, but currently it is not available in the transaction object\n if (asset.blockchain !== LegacyNetworks.ZCASH) {\n throw new Error(`You can not sign ${tx.blockChain} using ZCash signer.`);\n }\n\n const accounts = await getZcashAccounts();\n\n if (fromWalletAddress !== accounts[0]) {\n throw new Error(\n 'fromWalletAddress is not matched with the connected account'\n );\n }\n\n try {\n const transactionRequest: SendTransactionArgs = {\n method: 'send_transaction',\n params: [\n {\n from: fromWalletAddress,\n to: recipientAddress,\n value: amount,\n memo,\n },\n ],\n };\n\n const response = await vultisigZcash().request(transactionRequest);\n return { hash: response };\n } catch (error) {\n if (typeof error === 'string') {\n throw new SignerError(\n SignerErrorCode.UNEXPECTED_BEHAVIOUR,\n error,\n undefined\n );\n }\n throw new SignerError(SignerErrorCode.SEND_TX_ERROR, undefined, error);\n }\n }\n}\n", "export { namespace } from './namespace.js';\nexport { Signer } from './singer.js';\n", "import type { SignerFactory } from 'rango-types';\n\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nexport default async function getSigners(): Promise<SignerFactory> {\n const { Signer: UtxoSigner } = await import('./namespaces/utxo/mod.js');\n const signers = new DefaultSignerFactory();\n\n signers.registerSigner(TxType.TRANSFER, new UtxoSigner());\n return signers;\n}\n", "import type { ProviderMetadata } from '@hub3js/core';\nimport type { BlockchainMeta } from 'rango-types';\n\nimport getSigners from './signer.js';\n\nexport const WALLET_ID = 'vultisig';\n\nexport const info: ProviderMetadata = {\n name: 'Vultisig',\n icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/vultisig/icon.svg',\n extensions: {\n chrome:\n 'https://chromewebstore.google.com/detail/vultisig-extension/ggafhcdaplkhmmnlbfjpnnkepdfjaelb',\n homepage: 'https://vultisig.com/',\n },\n properties: [\n {\n name: 'namespaces',\n value: {\n selection: 'multiple',\n data: [\n {\n label: 'Zcash',\n value: 'UTXO',\n id: 'ZCASH',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n allBlockchains.filter(\n (blockchain) => blockchain.name === 'ZCASH'\n ),\n },\n ],\n },\n },\n {\n name: 'signers',\n value: { getSigners: async () => getSigners() },\n },\n ],\n};\n", "import { defineVersions } from '@hub3js/core/utils';\n\nimport { buildProvider } from './provider.js';\n\nconst versions = () =>\n defineVersions().version('1.0.0', buildProvider()).build();\n\nexport { versions };\n", "import { ProviderBuilder } from '@hub3js/core';\n\nimport { info, WALLET_ID } from './constants.js';\nimport { namespace as utxo } from './namespaces/utxo/namespace.js';\nimport { vultisig } from './utils.js';\n\nconst buildProvider = () =>\n new ProviderBuilder(WALLET_ID)\n .init(function (context) {\n const [, setState] = context.state();\n if (vultisig()) {\n setState('installed', true);\n console.debug('[vultisig] instance detected.', context);\n }\n })\n .config('metadata', info)\n .add('utxo', utxo)\n .build();\n\nexport { buildProvider };\n"],
5
- "mappings": "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",
6
- "names": ["UTXO_NAMESPACE", "vultisig", "instances", "vultisigZcash", "zcashInstance", "init_utils", "__esmMin", "__name", "requestZcashAccounts", "vultisigZcash", "getZcashAccounts", "init_helpers", "__esmMin", "init_utils", "__name", "ActionBuilder", "NamespaceBuilder", "commonBuilders", "standardizeAndThrowError", "builders", "CAIP_ZCASH_CHAIN_ID", "utils", "connect", "canEagerConnect", "disconnect", "namespace", "init_namespace", "__esmMin", "init_constants", "init_helpers", "accounts", "requestZcashAccounts", "getZcashAccounts", "WALLET_ID", "LegacyNetworks", "SignerError", "SignerErrorCode", "Signer", "init_singer", "__esmMin", "init_utils", "init_helpers", "__name", "tx", "memo", "fromWalletAddress", "recipientAddress", "amount", "asset", "accounts", "getZcashAccounts", "transactionRequest", "vultisigZcash", "error", "mod_exports", "__export", "Signer", "namespace", "init_mod", "__esmMin", "init_namespace", "init_singer", "DefaultSignerFactory", "TxType", "getSigners", "UtxoSigner", "signers", "init_signer", "__esmMin", "__name", "WALLET_ID", "info", "init_constants", "__esmMin", "init_signer", "allBlockchains", "blockchain", "getSigners", "defineVersions", "init_constants", "init_namespace", "init_utils", "ProviderBuilder", "buildProvider", "__name", "ProviderBuilder", "WALLET_ID", "context", "setState", "vultisig", "info", "namespace", "versions", "__name", "defineVersions", "buildProvider"]
4
+ "sourcesContent": ["import type { Provider, VultisigZcashProviderApi } from './types.js';\n\nimport { UTXO_NAMESPACE } from '@hub3js/namespaces';\n\nexport function vultisig(): Provider | null {\n const { vultisig } = window;\n if (!vultisig) {\n return null;\n }\n\n const instances: Provider = new Map();\n\n if (vultisig.zcash) {\n instances.set(UTXO_NAMESPACE, vultisig.zcash);\n }\n\n return instances;\n}\n\nexport function vultisigZcash(): VultisigZcashProviderApi {\n const instances = vultisig();\n const zcashInstance = instances?.get(UTXO_NAMESPACE);\n\n if (!zcashInstance) {\n throw new Error('Vultisig not injected. Please check your wallet.');\n }\n\n return zcashInstance;\n}\n", "import { vultisigZcash } from '../../utils.js';\n\nexport async function requestZcashAccounts() {\n return vultisigZcash().requestAccounts();\n}\n\n// Get accounts silently\nexport async function getZcashAccounts() {\n return await vultisigZcash().request({ method: 'get_accounts' });\n}\n", "import type { UtxoActions } from '@rango-dev/wallets-core/namespaces/utxo';\n\nimport { ActionBuilder, NamespaceBuilder } from '@hub3js/core';\nimport * as commonBuilders from '@hub3js/std/builders';\nimport { standardizeAndThrowError } from '@hub3js/std/operators';\nimport {\n builders,\n CAIP_ZCASH_CHAIN_ID,\n utils,\n} from '@rango-dev/wallets-core/namespaces/utxo';\n\nimport { WALLET_ID } from '../../constants.js';\n\nimport { getZcashAccounts, requestZcashAccounts } from './helpers.js';\n\nconst connect = builders\n .connect()\n .action(async function () {\n const accounts = await requestZcashAccounts();\n\n return utils.formatAccountsToCAIP(accounts, CAIP_ZCASH_CHAIN_ID);\n })\n .or(standardizeAndThrowError)\n .build();\n\nconst canEagerConnect = new ActionBuilder<UtxoActions, 'canEagerConnect'>(\n 'canEagerConnect'\n)\n .action(async () => {\n const accounts = await getZcashAccounts().catch(() => []);\n return accounts.length > 0;\n })\n .build();\n\nconst disconnect = commonBuilders.disconnect<UtxoActions>().build();\n\nexport const namespace = new NamespaceBuilder<UtxoActions>('UTXO', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .build();\n", "import type { SendTransactionArgs } from '../../types.js';\nimport type { Transfer } from 'rango-types/mainApi';\n\nimport { isZcashBlockchain } from '@rango-dev/wallets-shared';\nimport { type GenericSigner, SignerError, SignerErrorCode } from 'rango-types';\n\nimport { vultisigZcash } from '../../utils.js';\n\nimport { getZcashAccounts } from './helpers.js';\n\nexport class Signer implements GenericSigner<Transfer> {\n async signMessage(): Promise<string> {\n throw SignerError.UnimplementedError('signMessage');\n }\n\n async signAndSendTx(tx: Transfer): Promise<{ hash: string }> {\n const { memo, fromWalletAddress, recipientAddress, amount, asset } = tx;\n\n // TODO: check should be performed on the blockchain field of transaction instead of asset, but currently it is not available in the transaction object\n if (!isZcashBlockchain(asset.blockchain)) {\n throw new Error(`You can not sign ${tx.blockChain} using ZCash signer.`);\n }\n\n const accounts = await getZcashAccounts();\n\n if (fromWalletAddress !== accounts[0]) {\n throw new Error(\n 'fromWalletAddress is not matched with the connected account'\n );\n }\n\n try {\n const transactionRequest: SendTransactionArgs = {\n method: 'send_transaction',\n params: [\n {\n from: fromWalletAddress,\n to: recipientAddress,\n value: amount,\n memo,\n },\n ],\n };\n\n const response = await vultisigZcash().request(transactionRequest);\n return { hash: response };\n } catch (error) {\n if (typeof error === 'string') {\n throw new SignerError(\n SignerErrorCode.UNEXPECTED_BEHAVIOUR,\n error,\n undefined\n );\n }\n throw new SignerError(SignerErrorCode.SEND_TX_ERROR, undefined, error);\n }\n }\n}\n", "export { namespace } from './namespace.js';\nexport { Signer } from './singer.js';\n", "import type { SignerFactory } from 'rango-types';\n\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nexport default async function getSigners(): Promise<SignerFactory> {\n const { Signer: UtxoSigner } = await import('./namespaces/utxo/mod.js');\n const signers = new DefaultSignerFactory();\n\n signers.registerSigner(TxType.TRANSFER, new UtxoSigner());\n return signers;\n}\n", "import type { ProviderMetadata } from '@hub3js/core';\n\nimport { getChainIdFromCaip2ChainId } from '@hub3js/std/utils';\nimport {\n CAIP_ZCASH_CHAIN_ID,\n isUtxoNamespace,\n} from '@rango-dev/wallets-core/namespaces/utxo';\n\nimport getSigners from './signer.js';\n\nexport const WALLET_ID = 'vultisig';\n\nexport const info: ProviderMetadata = {\n name: 'Vultisig',\n icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/vultisig/icon.svg',\n extensions: {\n chrome:\n 'https://chromewebstore.google.com/detail/vultisig-extension/ggafhcdaplkhmmnlbfjpnnkepdfjaelb',\n homepage: 'https://vultisig.com/',\n },\n properties: [\n {\n name: 'namespaces',\n value: {\n selection: 'multiple',\n data: [\n {\n label: 'Zcash',\n value: 'UTXO',\n id: 'ZCASH',\n isChainSupported: (chainId: string) =>\n isUtxoNamespace(chainId) &&\n getChainIdFromCaip2ChainId(chainId) === CAIP_ZCASH_CHAIN_ID,\n },\n ],\n },\n },\n {\n name: 'signers',\n value: { getSigners: async () => getSigners() },\n },\n ],\n};\n", "import { defineVersions } from '@hub3js/core/utils';\n\nimport { buildProvider } from './provider.js';\n\nconst versions = () =>\n defineVersions().version('1.0.0', buildProvider()).build();\n\nexport { versions };\n", "import { ProviderBuilder } from '@hub3js/core';\n\nimport { info, WALLET_ID } from './constants.js';\nimport { namespace as utxo } from './namespaces/utxo/namespace.js';\nimport { vultisig } from './utils.js';\n\nconst buildProvider = () =>\n new ProviderBuilder(WALLET_ID)\n .init(function (context) {\n const [, setState] = context.state();\n if (vultisig()) {\n setState('installed', true);\n console.debug('[vultisig] instance detected.', context);\n }\n })\n .config('metadata', info)\n .add('utxo', utxo)\n .build();\n\nexport { buildProvider };\n"],
5
+ "mappings": "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",
6
+ "names": ["UTXO_NAMESPACE", "vultisig", "instances", "vultisigZcash", "zcashInstance", "init_utils", "__esmMin", "__name", "requestZcashAccounts", "vultisigZcash", "getZcashAccounts", "init_helpers", "__esmMin", "init_utils", "__name", "ActionBuilder", "NamespaceBuilder", "commonBuilders", "standardizeAndThrowError", "builders", "CAIP_ZCASH_CHAIN_ID", "utils", "connect", "canEagerConnect", "disconnect", "namespace", "init_namespace", "__esmMin", "init_constants", "init_helpers", "accounts", "requestZcashAccounts", "getZcashAccounts", "WALLET_ID", "isZcashBlockchain", "SignerError", "SignerErrorCode", "Signer", "init_singer", "__esmMin", "init_utils", "init_helpers", "__name", "tx", "memo", "fromWalletAddress", "recipientAddress", "amount", "asset", "accounts", "getZcashAccounts", "transactionRequest", "vultisigZcash", "error", "mod_exports", "__export", "Signer", "namespace", "init_mod", "__esmMin", "init_namespace", "init_singer", "DefaultSignerFactory", "TxType", "getSigners", "UtxoSigner", "signers", "init_signer", "__esmMin", "__name", "getChainIdFromCaip2ChainId", "CAIP_ZCASH_CHAIN_ID", "isUtxoNamespace", "WALLET_ID", "info", "init_constants", "__esmMin", "init_signer", "chainId", "getSigners", "defineVersions", "init_constants", "init_namespace", "init_utils", "ProviderBuilder", "buildProvider", "__name", "ProviderBuilder", "WALLET_ID", "context", "setState", "vultisig", "info", "namespace", "versions", "__name", "defineVersions", "buildProvider"]
7
7
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@rango-dev/provider-vultisig",
3
- "version": "0.3.1-next.4",
3
+ "version": "0.4.0",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "source": "./src/mod.ts",
@@ -21,10 +21,11 @@
21
21
  "lint": "eslint \"**/*.{ts,tsx}\""
22
22
  },
23
23
  "dependencies": {
24
- "@hub3js/core": "^0.61.0",
25
- "@hub3js/namespaces": "^0.2.2",
26
- "@hub3js/std": "^0.2.0",
27
- "@rango-dev/wallets-shared": "^0.61.1-next.4",
24
+ "@hub3js/core": "^0.61.1",
25
+ "@hub3js/namespaces": "^0.2.5",
26
+ "@hub3js/std": "^0.2.3",
27
+ "@rango-dev/wallets-core": "^0.61.0",
28
+ "@rango-dev/wallets-shared": "^0.62.0",
28
29
  "rango-types": "^0.5.0"
29
30
  },
30
31
  "publishConfig": {
package/src/constants.ts CHANGED
@@ -1,5 +1,10 @@
1
1
  import type { ProviderMetadata } from '@hub3js/core';
2
- import type { BlockchainMeta } from 'rango-types';
2
+
3
+ import { getChainIdFromCaip2ChainId } from '@hub3js/std/utils';
4
+ import {
5
+ CAIP_ZCASH_CHAIN_ID,
6
+ isUtxoNamespace,
7
+ } from '@rango-dev/wallets-core/namespaces/utxo';
3
8
 
4
9
  import getSigners from './signer.js';
5
10
 
@@ -23,10 +28,9 @@ export const info: ProviderMetadata = {
23
28
  label: 'Zcash',
24
29
  value: 'UTXO',
25
30
  id: 'ZCASH',
26
- getSupportedChains: (allBlockchains: BlockchainMeta[]) =>
27
- allBlockchains.filter(
28
- (blockchain) => blockchain.name === 'ZCASH'
29
- ),
31
+ isChainSupported: (chainId: string) =>
32
+ isUtxoNamespace(chainId) &&
33
+ getChainIdFromCaip2ChainId(chainId) === CAIP_ZCASH_CHAIN_ID,
30
34
  },
31
35
  ],
32
36
  },
@@ -1,7 +1,7 @@
1
1
  import type { SendTransactionArgs } from '../../types.js';
2
2
  import type { Transfer } from 'rango-types/mainApi';
3
3
 
4
- import { LegacyNetworks } from '@rango-dev/wallets-core/legacy';
4
+ import { isZcashBlockchain } from '@rango-dev/wallets-shared';
5
5
  import { type GenericSigner, SignerError, SignerErrorCode } from 'rango-types';
6
6
 
7
7
  import { vultisigZcash } from '../../utils.js';
@@ -17,7 +17,7 @@ export class Signer implements GenericSigner<Transfer> {
17
17
  const { memo, fromWalletAddress, recipientAddress, amount, asset } = tx;
18
18
 
19
19
  // TODO: check should be performed on the blockchain field of transaction instead of asset, but currently it is not available in the transaction object
20
- if (asset.blockchain !== LegacyNetworks.ZCASH) {
20
+ if (!isZcashBlockchain(asset.blockchain)) {
21
21
  throw new Error(`You can not sign ${tx.blockChain} using ZCash signer.`);
22
22
  }
23
23