@rango-dev/provider-math-wallet 0.55.2-next.3 → 0.55.2-next.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/constants.d.ts +5 -0
- package/dist/constants.d.ts.map +1 -0
- package/dist/mod.d.ts +3 -0
- package/dist/mod.d.ts.map +1 -0
- package/dist/mod.js +2 -0
- package/dist/mod.js.map +7 -0
- package/dist/namespaces/evm.d.ts +4 -0
- package/dist/namespaces/evm.d.ts.map +1 -0
- package/dist/namespaces/solana.d.ts +4 -0
- package/dist/namespaces/solana.d.ts.map +1 -0
- package/dist/provider-math-wallet.build.json +1 -1
- package/dist/provider.d.ts +3 -0
- package/dist/provider.d.ts.map +1 -0
- package/dist/signer.d.ts +2 -2
- package/dist/signer.d.ts.map +1 -1
- package/dist/types.d.ts +14 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils.d.ts +8 -0
- package/dist/utils.d.ts.map +1 -0
- package/package.json +8 -9
- package/readme.md +34 -1
- package/src/constants.ts +51 -0
- package/src/mod.ts +8 -0
- package/src/namespaces/evm.ts +45 -0
- package/src/namespaces/solana.ts +28 -0
- package/src/provider.ts +29 -0
- package/src/signer.ts +4 -12
- package/src/types.ts +17 -0
- package/src/utils.ts +57 -0
- package/dist/chunk-DYCPFO4Y.js +0 -2
- package/dist/chunk-DYCPFO4Y.js.map +0 -7
- package/dist/cosmosSigner-ECZAR6TO.js +0 -2
- package/dist/cosmosSigner-ECZAR6TO.js.map +0 -7
- package/dist/helpers.d.ts +0 -6
- package/dist/helpers.d.ts.map +0 -1
- package/dist/index.d.ts +0 -16
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js +0 -2
- package/dist/index.js.map +0 -7
- package/dist/signers/cosmosSigner.d.ts +0 -10
- package/dist/signers/cosmosSigner.d.ts.map +0 -1
- package/src/helpers.ts +0 -63
- package/src/index.ts +0 -102
- package/src/signers/cosmosSigner.ts +0 -97
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAUhE,eAAO,MAAM,SAAS,SAAS,CAAC;AAChC,eAAO,MAAM,2BAA2B,OAAO,CAAC;AAChD,eAAO,MAAM,QAAQ,EAAE,gBAsCtB,CAAC"}
|
package/dist/mod.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mod.d.ts","sourceRoot":"","sources":["../src/mod.ts"],"names":[],"mappings":"AAIA,QAAA,MAAM,QAAQ,kEAC8C,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
package/dist/mod.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
var M=Object.defineProperty;var o=(e,t)=>M(e,"name",{value:t,configurable:!0});import{defineVersions as J}from"@rango-dev/wallets-core/utils";import{ProviderBuilder as U}from"@rango-dev/wallets-core";import"@rango-dev/wallets-core";import{evmBlockchains as L,solanaBlockchain as I}from"rango-types";import{dynamicImportWithRefinedError as p,getNetworkInstance as f,Networks as h}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as T,TransactionType as u}from"rango-types";async function m(e){let t=f(e,h.ETHEREUM),a=f(e,h.SOLANA),l=new T,{DefaultEvmSigner:P}=await p(async()=>await import("@rango-dev/signer-evm")),{DefaultSolanaSigner:y}=await p(async()=>await import("@rango-dev/signer-solana"));return t&&l.registerSigner(u.EVM,new P(t)),a&&l.registerSigner(u.SOLANA,new y(a)),l}o(m,"getSigners");import{LegacyNetworks as i}from"@rango-dev/wallets-core/legacy";function r(){let{solana:e,ethereum:t}=window,a=new Map;return t&&t.isMathWallet&&a.set(i.ETHEREUM,t),e&&e.isMathWallet&&a.set(i.SOLANA,e),a.size===0?null:a}o(r,"mathWallet");function g(){let e=r();if(!e)throw new Error("Math Wallet is not injected. Please check your wallet.");return e}o(g,"getInstanceOrThrow");function c(){let t=r()?.get(i.ETHEREUM);if(!t)throw new Error("Math Wallet not injected or EVM not enabled. Please check your wallet.");return t}o(c,"evmMathWallet");function v(){let t=r()?.get(i.SOLANA);if(!t)throw new Error("Math Wallet not injected or Solana not enabled. Please check your wallet.");return t}o(v,"solanaMathWallet");var n="math",w=1e3,E={name:"Math Wallet",icon:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/math/icon.svg",extensions:{chrome:"https://chrome.google.com/webstore/detail/math-wallet/afbcbjpbpfadlkmhmclhkeeodmamcflc",brave:"https://chrome.google.com/webstore/detail/math-wallet/afbcbjpbpfadlkmhmclhkeeodmamcflc",homepage:"https://mathwallet.org/en-us/"},properties:[{name:"namespaces",value:{selection:"single",data:[{label:"EVM",value:"EVM",id:"ETH",getSupportedChains:e=>L(e)},{label:"Solana",value:"Solana",id:"SOLANA",getSupportedChains:e=>I(e)}]}},{name:"signers",value:{getSigners:async()=>m(g())}}]};import{NamespaceBuilder as W}from"@rango-dev/wallets-core";import{builders as k,standardizeAndThrowError as N}from"@rango-dev/wallets-core/namespaces/common";import{actions as d,builders as s}from"@rango-dev/wallets-core/namespaces/evm";var x=s.connect().action(d.connect(c)).or(N).build(),B=s.canEagerConnect().action(d.canEagerConnect(c)).build(),C=k.disconnect().build(),_=s.canSwitchNetwork().action(()=>!1).build(),D=s.getChainId().action(d.getChainId(c)).build(),A=new W("EVM",n).action(x).action(C).action(_).action(B).action(D).build();import{NamespaceBuilder as O}from"@rango-dev/wallets-core";import{builders as j,standardizeAndThrowError as H}from"@rango-dev/wallets-core/namespaces/common";import{actions as V,builders as R}from"@rango-dev/wallets-core/namespaces/solana";var z=R.connect().action(V.connect(v)).or(H).build(),F=j.disconnect().build(),b=new O("Solana",n).action(z).action(F).build();var S=o(()=>new U(n).init(function(e){let[,t]=e.state();setTimeout(()=>{r()&&(t("installed",!0),console.debug("[math-wallet] instance detected.",e))},w)}).config("metadata",E).add("solana",b).add("evm",A).build(),"buildProvider");var Te=o(()=>J().version("1.0.0",S()).build(),"versions");export{Te as versions};
|
|
2
|
+
//# sourceMappingURL=mod.js.map
|
package/dist/mod.js.map
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../src/mod.ts", "../src/provider.ts", "../src/constants.ts", "../src/signer.ts", "../src/utils.ts", "../src/namespaces/evm.ts", "../src/namespaces/solana.ts"],
|
|
4
|
+
"sourcesContent": ["import { defineVersions } from '@rango-dev/wallets-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 '@rango-dev/wallets-core';\n\nimport {\n MATH_WALLET_INJECTION_DELAY,\n metadata,\n WALLET_ID,\n} from './constants.js';\nimport { evm } from './namespaces/evm.js';\nimport { solana } from './namespaces/solana.js';\nimport { mathWallet } from './utils.js';\n\nconst buildProvider = () =>\n new ProviderBuilder(WALLET_ID)\n .init(function (context) {\n const [, setState] = context.state();\n\n setTimeout(() => {\n if (mathWallet()) {\n setState('installed', true);\n console.debug('[math-wallet] instance detected.', context);\n }\n }, MATH_WALLET_INJECTION_DELAY);\n })\n .config('metadata', metadata)\n .add('solana', solana)\n .add('evm', evm)\n .build();\n\nexport { buildProvider };\n", "import { type ProviderMetadata } from '@rango-dev/wallets-core';\nimport {\n type BlockchainMeta,\n evmBlockchains,\n solanaBlockchain,\n} from 'rango-types';\n\nimport getSigners from './signer.js';\nimport { getInstanceOrThrow } from './utils.js';\n\nexport const WALLET_ID = 'math';\nexport const MATH_WALLET_INJECTION_DELAY = 1000;\nexport const metadata: ProviderMetadata = {\n name: 'Math Wallet',\n icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/math/icon.svg',\n extensions: {\n chrome:\n 'https://chrome.google.com/webstore/detail/math-wallet/afbcbjpbpfadlkmhmclhkeeodmamcflc',\n brave:\n 'https://chrome.google.com/webstore/detail/math-wallet/afbcbjpbpfadlkmhmclhkeeodmamcflc',\n homepage: 'https://mathwallet.org/en-us/',\n },\n properties: [\n {\n name: 'namespaces',\n value: {\n selection: 'single',\n data: [\n {\n label: 'EVM',\n value: 'EVM',\n id: 'ETH',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n evmBlockchains(allBlockchains),\n },\n {\n label: 'Solana',\n value: 'Solana',\n id: 'SOLANA',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n solanaBlockchain(allBlockchains),\n },\n ],\n },\n },\n {\n name: 'signers',\n value: { getSigners: async () => getSigners(getInstanceOrThrow()) },\n },\n ],\n};\n", "import type { Provider } from './types.js';\nimport type { SignerFactory } from 'rango-types';\n\nimport {\n dynamicImportWithRefinedError,\n getNetworkInstance,\n Networks,\n} from '@rango-dev/wallets-shared';\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nexport default async function getSigners(\n provider: Provider\n): Promise<SignerFactory> {\n const ethProvider = getNetworkInstance(provider, Networks.ETHEREUM);\n const solProvider = getNetworkInstance(provider, Networks.SOLANA);\n\n const signers = new DefaultSignerFactory();\n const { DefaultEvmSigner } = await dynamicImportWithRefinedError(\n async () => await import('@rango-dev/signer-evm')\n );\n const { DefaultSolanaSigner } = await dynamicImportWithRefinedError(\n async () => await import('@rango-dev/signer-solana')\n );\n\n if (!!ethProvider) {\n signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider));\n }\n if (!!solProvider) {\n signers.registerSigner(TxType.SOLANA, new DefaultSolanaSigner(solProvider));\n }\n\n return signers;\n}\n", "import type { Provider } from './types.js';\nimport type { ProviderAPI as EvmProviderApi } from '@rango-dev/wallets-core/namespaces/evm';\nimport type { ProviderAPI as SolanaProviderApi } from '@rango-dev/wallets-core/namespaces/solana';\n\nimport { LegacyNetworks } from '@rango-dev/wallets-core/legacy';\n\nexport function mathWallet(): Provider | null {\n const { solana, ethereum } = window;\n const instances: Provider = new Map();\n if (ethereum && ethereum.isMathWallet) {\n instances.set(LegacyNetworks.ETHEREUM, ethereum);\n }\n if (solana && solana.isMathWallet) {\n instances.set(LegacyNetworks.SOLANA, solana);\n }\n if (instances.size === 0) {\n return null;\n }\n return instances;\n}\n\nexport function getInstanceOrThrow(): Provider {\n const instances = mathWallet();\n\n if (!instances) {\n throw new Error('Math Wallet is not injected. Please check your wallet.');\n }\n\n return instances;\n}\n\nexport function evmMathWallet(): EvmProviderApi {\n const instances = mathWallet();\n\n const evmInstance = instances?.get(LegacyNetworks.ETHEREUM);\n\n if (!evmInstance) {\n throw new Error(\n 'Math Wallet not injected or EVM not enabled. Please check your wallet.'\n );\n }\n\n return evmInstance as EvmProviderApi;\n}\n\nexport function solanaMathWallet(): SolanaProviderApi {\n const instance = mathWallet();\n const solanaInstance = instance?.get(LegacyNetworks.SOLANA);\n\n if (!solanaInstance) {\n throw new Error(\n 'Math Wallet not injected or Solana not enabled. Please check your wallet.'\n );\n }\n\n return solanaInstance as SolanaProviderApi;\n}\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 { evmMathWallet } from '../utils.js';\n\nconst connect = builders\n .connect()\n .action(actions.connect(evmMathWallet))\n .or(standardizeAndThrowError)\n .build();\n\nconst canEagerConnect = builders\n .canEagerConnect()\n .action(actions.canEagerConnect(evmMathWallet))\n .build();\n\nconst disconnect = commonBuilders.disconnect<EvmActions>().build();\n\nconst canSwitchNetwork = builders\n .canSwitchNetwork()\n // Math wallet doesn't support switch network.\n .action(() => false)\n .build();\n\nconst getChainId = builders\n .getChainId()\n .action(actions.getChainId(evmMathWallet))\n .build();\n\nconst evm = new NamespaceBuilder<EvmActions>('EVM', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canSwitchNetwork)\n .action(canEagerConnect)\n .action(getChainId)\n .build();\n\nexport { evm };\n", "import { 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 type SolanaActions,\n} from '@rango-dev/wallets-core/namespaces/solana';\n\nimport { WALLET_ID } from '../constants.js';\nimport { solanaMathWallet } from '../utils.js';\n\nconst connect = builders\n .connect()\n .action(actions.connect(solanaMathWallet))\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders.disconnect<SolanaActions>().build();\n\nconst solana = new NamespaceBuilder<SolanaActions>('Solana', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .build();\n\nexport { solana };\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
|
+
"names": ["defineVersions", "ProviderBuilder", "evmBlockchains", "solanaBlockchain", "dynamicImportWithRefinedError", "getNetworkInstance", "Networks", "DefaultSignerFactory", "TxType", "getSigners", "provider", "ethProvider", "getNetworkInstance", "Networks", "solProvider", "signers", "DefaultSignerFactory", "DefaultEvmSigner", "dynamicImportWithRefinedError", "DefaultSolanaSigner", "TxType", "__name", "LegacyNetworks", "mathWallet", "solana", "ethereum", "instances", "LegacyNetworks", "__name", "getInstanceOrThrow", "evmMathWallet", "evmInstance", "solanaMathWallet", "solanaInstance", "WALLET_ID", "MATH_WALLET_INJECTION_DELAY", "metadata", "allBlockchains", "evmBlockchains", "solanaBlockchain", "getSigners", "getInstanceOrThrow", "NamespaceBuilder", "commonBuilders", "standardizeAndThrowError", "actions", "builders", "connect", "builders", "actions", "evmMathWallet", "standardizeAndThrowError", "canEagerConnect", "disconnect", "commonBuilders", "canSwitchNetwork", "getChainId", "evm", "NamespaceBuilder", "WALLET_ID", "NamespaceBuilder", "commonBuilders", "standardizeAndThrowError", "actions", "builders", "connect", "builders", "actions", "solanaMathWallet", "standardizeAndThrowError", "disconnect", "commonBuilders", "solana", "NamespaceBuilder", "WALLET_ID", "buildProvider", "__name", "ProviderBuilder", "WALLET_ID", "context", "setState", "mathWallet", "MATH_WALLET_INJECTION_DELAY", "metadata", "solana", "evm", "versions", "__name", "defineVersions", "buildProvider"]
|
|
7
|
+
}
|
|
@@ -0,0 +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;AAoCzE,QAAA,MAAM,GAAG,gEAMC,CAAC;AAEX,OAAO,EAAE,GAAG,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/namespaces/solana.ts"],"names":[],"mappings":"AAKA,OAAO,EAGL,KAAK,aAAa,EACnB,MAAM,2CAA2C,CAAC;AAanD,QAAA,MAAM,MAAM,mEAGF,CAAC;AAEX,OAAO,EAAE,MAAM,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/
|
|
1
|
+
{"inputs":{"src/signer.ts":{"bytes":1057,"imports":[{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/signer-evm","kind":"dynamic-import","external":true},{"path":"@rango-dev/signer-solana","kind":"dynamic-import","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/utils.ts":{"bytes":1577,"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":1469,"imports":[{"path":"@rango-dev/wallets-core","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/namespaces/evm.ts":{"bytes":1186,"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":725,"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":"src/constants.ts","kind":"import-statement","original":"../constants.js"},{"path":"src/utils.ts","kind":"import-statement","original":"../utils.js"}],"format":"esm"},"src/provider.ts":{"bytes":762,"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/utils.ts","kind":"import-statement","original":"./utils.js"},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/mod.ts":{"bytes":220,"imports":[{"path":"@rango-dev/wallets-core/utils","kind":"import-statement","external":true},{"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":11869},"dist/mod.js":{"imports":[{"path":"@rango-dev/wallets-core/utils","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-types","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-shared","kind":"import-statement","external":true},{"path":"rango-types","kind":"import-statement","external":true},{"path":"@rango-dev/signer-evm","kind":"dynamic-import","external":true},{"path":"@rango-dev/signer-solana","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/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}],"exports":["versions"],"entryPoint":"src/mod.ts","inputs":{"src/mod.ts":{"bytesInOutput":121},"src/provider.ts":{"bytesInOutput":288},"src/constants.ts":{"bytesInOutput":728},"src/signer.ts":{"bytesInOutput":512},"src/utils.ts":{"bytesInOutput":712},"src/namespaces/evm.ts":{"bytesInOutput":544},"src/namespaces/solana.ts":{"bytesInOutput":366}},"bytes":3406}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAWA,QAAA,MAAM,aAAa,kDAeP,CAAC;AAEb,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
package/dist/signer.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Provider } from './types.js';
|
|
2
2
|
import type { SignerFactory } from 'rango-types';
|
|
3
|
-
export default function getSigners(provider:
|
|
3
|
+
export default function getSigners(provider: Provider): Promise<SignerFactory>;
|
|
4
4
|
//# sourceMappingURL=signer.d.ts.map
|
package/dist/signer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,
|
|
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,CAoBxB"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { LegacyNetworks } from '@rango-dev/wallets-core/legacy';
|
|
2
|
+
import type { ProviderAPI as EvmProviderApi } from '@rango-dev/wallets-core/namespaces/evm';
|
|
3
|
+
import type { ProviderAPI as SolanaProviderApi } from '@rango-dev/wallets-core/namespaces/solana';
|
|
4
|
+
export type OkxBtcAddress = {
|
|
5
|
+
address: string;
|
|
6
|
+
publicKey: string;
|
|
7
|
+
compressedPublicKey: string;
|
|
8
|
+
};
|
|
9
|
+
export type ProviderObject = {
|
|
10
|
+
[LegacyNetworks.ETHEREUM]: EvmProviderApi;
|
|
11
|
+
[LegacyNetworks.SOLANA]: SolanaProviderApi;
|
|
12
|
+
};
|
|
13
|
+
export type Provider = Map<keyof ProviderObject, ProviderObject[keyof ProviderObject]>;
|
|
14
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gCAAgC,CAAC;AACrE,OAAO,KAAK,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC5F,OAAO,KAAK,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAElG,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,mBAAmB,EAAE,MAAM,CAAC;CAC7B,CAAC;AACF,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1C,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,iBAAiB,CAAC;CAC5C,CAAC;AACF,MAAM,MAAM,QAAQ,GAAG,GAAG,CACxB,MAAM,cAAc,EACpB,cAAc,CAAC,MAAM,cAAc,CAAC,CACrC,CAAC"}
|
package/dist/utils.d.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { Provider } from './types.js';
|
|
2
|
+
import type { ProviderAPI as EvmProviderApi } from '@rango-dev/wallets-core/namespaces/evm';
|
|
3
|
+
import type { ProviderAPI as SolanaProviderApi } from '@rango-dev/wallets-core/namespaces/solana';
|
|
4
|
+
export declare function mathWallet(): Provider | null;
|
|
5
|
+
export declare function getInstanceOrThrow(): Provider;
|
|
6
|
+
export declare function evmMathWallet(): EvmProviderApi;
|
|
7
|
+
export declare function solanaMathWallet(): SolanaProviderApi;
|
|
8
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,KAAK,EAAE,WAAW,IAAI,cAAc,EAAE,MAAM,wCAAwC,CAAC;AAC5F,OAAO,KAAK,EAAE,WAAW,IAAI,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAIlG,wBAAgB,UAAU,IAAI,QAAQ,GAAG,IAAI,CAa5C;AAED,wBAAgB,kBAAkB,IAAI,QAAQ,CAQ7C;AAED,wBAAgB,aAAa,IAAI,cAAc,CAY9C;AAED,wBAAgB,gBAAgB,IAAI,iBAAiB,CAWpD"}
|
package/package.json
CHANGED
|
@@ -1,31 +1,30 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rango-dev/provider-math-wallet",
|
|
3
|
-
"version": "0.55.2-next.
|
|
3
|
+
"version": "0.55.2-next.5",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"type": "module",
|
|
6
|
-
"source": "./src/
|
|
7
|
-
"main": "./dist/
|
|
6
|
+
"source": "./src/mod.ts",
|
|
7
|
+
"main": "./dist/mod.js",
|
|
8
8
|
"exports": {
|
|
9
|
-
".": "./dist/
|
|
9
|
+
".": "./dist/mod.js"
|
|
10
10
|
},
|
|
11
|
-
"typings": "dist/
|
|
11
|
+
"typings": "dist/mod.d.ts",
|
|
12
12
|
"files": [
|
|
13
13
|
"dist",
|
|
14
14
|
"src"
|
|
15
15
|
],
|
|
16
16
|
"scripts": {
|
|
17
|
-
"build": "node ../../scripts/build/command.mjs --path wallets/provider-math-wallet --splitting",
|
|
17
|
+
"build": "node ../../scripts/build/command.mjs --path wallets/provider-math-wallet --splitting --inputs src/mod.ts",
|
|
18
18
|
"ts-check": "tsc --declaration --emitDeclarationOnly -p ./tsconfig.json",
|
|
19
19
|
"clean": "rimraf dist",
|
|
20
20
|
"format": "prettier --write '{.,src}/**/*.{ts,tsx}'",
|
|
21
21
|
"lint": "eslint \"**/*.{ts,tsx}\""
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@cosmjs/stargate": "^0.31.0",
|
|
25
24
|
"@rango-dev/signer-evm": "^0.40.0",
|
|
26
25
|
"@rango-dev/signer-solana": "^0.46.1",
|
|
27
|
-
"@rango-dev/wallets-core": "^0.53.1-next.
|
|
28
|
-
"@rango-dev/wallets-shared": "^0.54.2-next.
|
|
26
|
+
"@rango-dev/wallets-core": "^0.53.1-next.3",
|
|
27
|
+
"@rango-dev/wallets-shared": "^0.54.2-next.4",
|
|
29
28
|
"rango-types": "^0.1.89"
|
|
30
29
|
},
|
|
31
30
|
"publishConfig": {
|
package/readme.md
CHANGED
|
@@ -1 +1,34 @@
|
|
|
1
|
-
#
|
|
1
|
+
# MathWallet
|
|
2
|
+
MathWallet integration for hub.
|
|
3
|
+
[Homepage](https://mathwallet.org/)
|
|
4
|
+
|
|
5
|
+
More about implementation status can be found [here](../readme.md).
|
|
6
|
+
|
|
7
|
+
## Implementation notes/limitations
|
|
8
|
+
|
|
9
|
+
#### ⚠️ Cross Browser
|
|
10
|
+
MathWallet is **only available on Chromium-based browsers**
|
|
11
|
+
(e.g., Chrome, Brave, Edge).
|
|
12
|
+
It is **not supported** on Firefox or Safari.
|
|
13
|
+
|
|
14
|
+
### Feature
|
|
15
|
+
|
|
16
|
+
#### ❌ Auto Connect (Solana)
|
|
17
|
+
MathWallet does **not** provide a silent or eager-connect mechanism for **Solana**.
|
|
18
|
+
A manual approval popup is required each time.
|
|
19
|
+
|
|
20
|
+
#### ❌ Switch Account
|
|
21
|
+
MathWallet does **not offer a functional switch-account mechanism**.
|
|
22
|
+
Account changes inside the wallet **do not notify the dApp**, and the session remains tied to the originally connected account.
|
|
23
|
+
|
|
24
|
+
#### ❌ Switch Network
|
|
25
|
+
MathWallet does **not support programmatic network switching**.
|
|
26
|
+
All network changes must be performed manually within the wallet.
|
|
27
|
+
|
|
28
|
+
#### ⚠️ Single Namespace Limitation
|
|
29
|
+
MathWallet can only maintain **one active namespace connection at a time**.
|
|
30
|
+
Users cannot be simultaneously connected to multiple namespaces (e.g., Solana + EVM).
|
|
31
|
+
|
|
32
|
+
---
|
|
33
|
+
|
|
34
|
+
More wallet information can be found in [readme.md](../readme.md).
|
package/src/constants.ts
ADDED
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { type ProviderMetadata } from '@rango-dev/wallets-core';
|
|
2
|
+
import {
|
|
3
|
+
type BlockchainMeta,
|
|
4
|
+
evmBlockchains,
|
|
5
|
+
solanaBlockchain,
|
|
6
|
+
} from 'rango-types';
|
|
7
|
+
|
|
8
|
+
import getSigners from './signer.js';
|
|
9
|
+
import { getInstanceOrThrow } from './utils.js';
|
|
10
|
+
|
|
11
|
+
export const WALLET_ID = 'math';
|
|
12
|
+
export const MATH_WALLET_INJECTION_DELAY = 1000;
|
|
13
|
+
export const metadata: ProviderMetadata = {
|
|
14
|
+
name: 'Math Wallet',
|
|
15
|
+
icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/math/icon.svg',
|
|
16
|
+
extensions: {
|
|
17
|
+
chrome:
|
|
18
|
+
'https://chrome.google.com/webstore/detail/math-wallet/afbcbjpbpfadlkmhmclhkeeodmamcflc',
|
|
19
|
+
brave:
|
|
20
|
+
'https://chrome.google.com/webstore/detail/math-wallet/afbcbjpbpfadlkmhmclhkeeodmamcflc',
|
|
21
|
+
homepage: 'https://mathwallet.org/en-us/',
|
|
22
|
+
},
|
|
23
|
+
properties: [
|
|
24
|
+
{
|
|
25
|
+
name: 'namespaces',
|
|
26
|
+
value: {
|
|
27
|
+
selection: 'single',
|
|
28
|
+
data: [
|
|
29
|
+
{
|
|
30
|
+
label: 'EVM',
|
|
31
|
+
value: 'EVM',
|
|
32
|
+
id: 'ETH',
|
|
33
|
+
getSupportedChains: (allBlockchains: BlockchainMeta[]) =>
|
|
34
|
+
evmBlockchains(allBlockchains),
|
|
35
|
+
},
|
|
36
|
+
{
|
|
37
|
+
label: 'Solana',
|
|
38
|
+
value: 'Solana',
|
|
39
|
+
id: 'SOLANA',
|
|
40
|
+
getSupportedChains: (allBlockchains: BlockchainMeta[]) =>
|
|
41
|
+
solanaBlockchain(allBlockchains),
|
|
42
|
+
},
|
|
43
|
+
],
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: 'signers',
|
|
48
|
+
value: { getSigners: async () => getSigners(getInstanceOrThrow()) },
|
|
49
|
+
},
|
|
50
|
+
],
|
|
51
|
+
};
|
package/src/mod.ts
ADDED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { EvmActions } from '@rango-dev/wallets-core/namespaces/evm';
|
|
2
|
+
|
|
3
|
+
import { NamespaceBuilder } from '@rango-dev/wallets-core';
|
|
4
|
+
import {
|
|
5
|
+
builders as commonBuilders,
|
|
6
|
+
standardizeAndThrowError,
|
|
7
|
+
} from '@rango-dev/wallets-core/namespaces/common';
|
|
8
|
+
import { actions, builders } from '@rango-dev/wallets-core/namespaces/evm';
|
|
9
|
+
|
|
10
|
+
import { WALLET_ID } from '../constants.js';
|
|
11
|
+
import { evmMathWallet } from '../utils.js';
|
|
12
|
+
|
|
13
|
+
const connect = builders
|
|
14
|
+
.connect()
|
|
15
|
+
.action(actions.connect(evmMathWallet))
|
|
16
|
+
.or(standardizeAndThrowError)
|
|
17
|
+
.build();
|
|
18
|
+
|
|
19
|
+
const canEagerConnect = builders
|
|
20
|
+
.canEagerConnect()
|
|
21
|
+
.action(actions.canEagerConnect(evmMathWallet))
|
|
22
|
+
.build();
|
|
23
|
+
|
|
24
|
+
const disconnect = commonBuilders.disconnect<EvmActions>().build();
|
|
25
|
+
|
|
26
|
+
const canSwitchNetwork = builders
|
|
27
|
+
.canSwitchNetwork()
|
|
28
|
+
// Math wallet doesn't support switch network.
|
|
29
|
+
.action(() => false)
|
|
30
|
+
.build();
|
|
31
|
+
|
|
32
|
+
const getChainId = builders
|
|
33
|
+
.getChainId()
|
|
34
|
+
.action(actions.getChainId(evmMathWallet))
|
|
35
|
+
.build();
|
|
36
|
+
|
|
37
|
+
const evm = new NamespaceBuilder<EvmActions>('EVM', WALLET_ID)
|
|
38
|
+
.action(connect)
|
|
39
|
+
.action(disconnect)
|
|
40
|
+
.action(canSwitchNetwork)
|
|
41
|
+
.action(canEagerConnect)
|
|
42
|
+
.action(getChainId)
|
|
43
|
+
.build();
|
|
44
|
+
|
|
45
|
+
export { evm };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { NamespaceBuilder } from '@rango-dev/wallets-core';
|
|
2
|
+
import {
|
|
3
|
+
builders as commonBuilders,
|
|
4
|
+
standardizeAndThrowError,
|
|
5
|
+
} from '@rango-dev/wallets-core/namespaces/common';
|
|
6
|
+
import {
|
|
7
|
+
actions,
|
|
8
|
+
builders,
|
|
9
|
+
type SolanaActions,
|
|
10
|
+
} from '@rango-dev/wallets-core/namespaces/solana';
|
|
11
|
+
|
|
12
|
+
import { WALLET_ID } from '../constants.js';
|
|
13
|
+
import { solanaMathWallet } from '../utils.js';
|
|
14
|
+
|
|
15
|
+
const connect = builders
|
|
16
|
+
.connect()
|
|
17
|
+
.action(actions.connect(solanaMathWallet))
|
|
18
|
+
.or(standardizeAndThrowError)
|
|
19
|
+
.build();
|
|
20
|
+
|
|
21
|
+
const disconnect = commonBuilders.disconnect<SolanaActions>().build();
|
|
22
|
+
|
|
23
|
+
const solana = new NamespaceBuilder<SolanaActions>('Solana', WALLET_ID)
|
|
24
|
+
.action(connect)
|
|
25
|
+
.action(disconnect)
|
|
26
|
+
.build();
|
|
27
|
+
|
|
28
|
+
export { solana };
|
package/src/provider.ts
ADDED
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { ProviderBuilder } from '@rango-dev/wallets-core';
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
MATH_WALLET_INJECTION_DELAY,
|
|
5
|
+
metadata,
|
|
6
|
+
WALLET_ID,
|
|
7
|
+
} from './constants.js';
|
|
8
|
+
import { evm } from './namespaces/evm.js';
|
|
9
|
+
import { solana } from './namespaces/solana.js';
|
|
10
|
+
import { mathWallet } from './utils.js';
|
|
11
|
+
|
|
12
|
+
const buildProvider = () =>
|
|
13
|
+
new ProviderBuilder(WALLET_ID)
|
|
14
|
+
.init(function (context) {
|
|
15
|
+
const [, setState] = context.state();
|
|
16
|
+
|
|
17
|
+
setTimeout(() => {
|
|
18
|
+
if (mathWallet()) {
|
|
19
|
+
setState('installed', true);
|
|
20
|
+
console.debug('[math-wallet] instance detected.', context);
|
|
21
|
+
}
|
|
22
|
+
}, MATH_WALLET_INJECTION_DELAY);
|
|
23
|
+
})
|
|
24
|
+
.config('metadata', metadata)
|
|
25
|
+
.add('solana', solana)
|
|
26
|
+
.add('evm', evm)
|
|
27
|
+
.build();
|
|
28
|
+
|
|
29
|
+
export { buildProvider };
|
package/src/signer.ts
CHANGED
|
@@ -1,7 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Provider } from './types.js';
|
|
2
2
|
import type { SignerFactory } from 'rango-types';
|
|
3
3
|
|
|
4
|
-
import { DefaultSolanaSigner } from '@rango-dev/signer-solana';
|
|
5
4
|
import {
|
|
6
5
|
dynamicImportWithRefinedError,
|
|
7
6
|
getNetworkInstance,
|
|
@@ -10,18 +9,17 @@ import {
|
|
|
10
9
|
import { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';
|
|
11
10
|
|
|
12
11
|
export default async function getSigners(
|
|
13
|
-
provider:
|
|
12
|
+
provider: Provider
|
|
14
13
|
): Promise<SignerFactory> {
|
|
15
14
|
const ethProvider = getNetworkInstance(provider, Networks.ETHEREUM);
|
|
16
15
|
const solProvider = getNetworkInstance(provider, Networks.SOLANA);
|
|
17
|
-
const cosmosProvider = getNetworkInstance(provider, Networks.COSMOS);
|
|
18
16
|
|
|
19
17
|
const signers = new DefaultSignerFactory();
|
|
20
18
|
const { DefaultEvmSigner } = await dynamicImportWithRefinedError(
|
|
21
19
|
async () => await import('@rango-dev/signer-evm')
|
|
22
20
|
);
|
|
23
|
-
const {
|
|
24
|
-
async () => await import('
|
|
21
|
+
const { DefaultSolanaSigner } = await dynamicImportWithRefinedError(
|
|
22
|
+
async () => await import('@rango-dev/signer-solana')
|
|
25
23
|
);
|
|
26
24
|
|
|
27
25
|
if (!!ethProvider) {
|
|
@@ -30,12 +28,6 @@ export default async function getSigners(
|
|
|
30
28
|
if (!!solProvider) {
|
|
31
29
|
signers.registerSigner(TxType.SOLANA, new DefaultSolanaSigner(solProvider));
|
|
32
30
|
}
|
|
33
|
-
if (!!cosmosProvider) {
|
|
34
|
-
signers.registerSigner(
|
|
35
|
-
TxType.COSMOS,
|
|
36
|
-
new MathWalletCosmosSigner(cosmosProvider)
|
|
37
|
-
);
|
|
38
|
-
}
|
|
39
31
|
|
|
40
32
|
return signers;
|
|
41
33
|
}
|
package/src/types.ts
ADDED
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import type { LegacyNetworks } from '@rango-dev/wallets-core/legacy';
|
|
2
|
+
import type { ProviderAPI as EvmProviderApi } from '@rango-dev/wallets-core/namespaces/evm';
|
|
3
|
+
import type { ProviderAPI as SolanaProviderApi } from '@rango-dev/wallets-core/namespaces/solana';
|
|
4
|
+
|
|
5
|
+
export type OkxBtcAddress = {
|
|
6
|
+
address: string;
|
|
7
|
+
publicKey: string;
|
|
8
|
+
compressedPublicKey: string;
|
|
9
|
+
};
|
|
10
|
+
export type ProviderObject = {
|
|
11
|
+
[LegacyNetworks.ETHEREUM]: EvmProviderApi;
|
|
12
|
+
[LegacyNetworks.SOLANA]: SolanaProviderApi;
|
|
13
|
+
};
|
|
14
|
+
export type Provider = Map<
|
|
15
|
+
keyof ProviderObject,
|
|
16
|
+
ProviderObject[keyof ProviderObject]
|
|
17
|
+
>;
|
package/src/utils.ts
ADDED
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import type { Provider } from './types.js';
|
|
2
|
+
import type { ProviderAPI as EvmProviderApi } from '@rango-dev/wallets-core/namespaces/evm';
|
|
3
|
+
import type { ProviderAPI as SolanaProviderApi } from '@rango-dev/wallets-core/namespaces/solana';
|
|
4
|
+
|
|
5
|
+
import { LegacyNetworks } from '@rango-dev/wallets-core/legacy';
|
|
6
|
+
|
|
7
|
+
export function mathWallet(): Provider | null {
|
|
8
|
+
const { solana, ethereum } = window;
|
|
9
|
+
const instances: Provider = new Map();
|
|
10
|
+
if (ethereum && ethereum.isMathWallet) {
|
|
11
|
+
instances.set(LegacyNetworks.ETHEREUM, ethereum);
|
|
12
|
+
}
|
|
13
|
+
if (solana && solana.isMathWallet) {
|
|
14
|
+
instances.set(LegacyNetworks.SOLANA, solana);
|
|
15
|
+
}
|
|
16
|
+
if (instances.size === 0) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
return instances;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
export function getInstanceOrThrow(): Provider {
|
|
23
|
+
const instances = mathWallet();
|
|
24
|
+
|
|
25
|
+
if (!instances) {
|
|
26
|
+
throw new Error('Math Wallet is not injected. Please check your wallet.');
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
return instances;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export function evmMathWallet(): EvmProviderApi {
|
|
33
|
+
const instances = mathWallet();
|
|
34
|
+
|
|
35
|
+
const evmInstance = instances?.get(LegacyNetworks.ETHEREUM);
|
|
36
|
+
|
|
37
|
+
if (!evmInstance) {
|
|
38
|
+
throw new Error(
|
|
39
|
+
'Math Wallet not injected or EVM not enabled. Please check your wallet.'
|
|
40
|
+
);
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
return evmInstance as EvmProviderApi;
|
|
44
|
+
}
|
|
45
|
+
|
|
46
|
+
export function solanaMathWallet(): SolanaProviderApi {
|
|
47
|
+
const instance = mathWallet();
|
|
48
|
+
const solanaInstance = instance?.get(LegacyNetworks.SOLANA);
|
|
49
|
+
|
|
50
|
+
if (!solanaInstance) {
|
|
51
|
+
throw new Error(
|
|
52
|
+
'Math Wallet not injected or Solana not enabled. Please check your wallet.'
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return solanaInstance as SolanaProviderApi;
|
|
57
|
+
}
|
package/dist/chunk-DYCPFO4Y.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as i}from"./chunk-DYCPFO4Y.js";import{SigningStargateClient as h}from"@cosmjs/stargate";import{DEFAULT_COSMOS_RPC_URL as S}from"@rango-dev/wallets-shared";import{SignerError as e,SignerErrorCode as o}from"rango-types";var v="/ibc.applications.transfer.v1.MsgTransfer",a=class{static{i(this,"MathWalletCosmosSigner")}provider;constructor(s){this.provider=s}async signMessage(){throw e.UnimplementedError("signMessage")}async signAndSendTx(s){if(!this.provider)throw e.AssertionFailed("wallet is null!");try{let{memo:n,sequence:c,account_number:d,chainId:m,msgs:u,fee:l,signType:t,rpcUrl:p}=s.data;if(!m)throw e.AssertionFailed("chainId is undefined from server");if(!d)throw e.AssertionFailed("account_number is undefined from server");if(!c)throw e.AssertionFailed("sequence is undefined from server");if(t==="AMINO"){let g=await h.connectWithSigner(p||S,this.provider),f=u.map(r=>({typeUrl:v,value:{sourcePort:r.value?.source_port,sourceChannel:r.value?.source_channel,sender:r.value?.sender,receiver:r.value?.receiver,token:r.value?.token,timeoutHeight:r.value?.timeout_height,timeoutTimestamp:r.value?.timeout_timestamp,memo:r.value?.memo}}));return{hash:await g.signAndBroadcastSync(s.fromWalletAddress,f,l,n)}}else if(t==="DIRECT")throw e.UnimplementedError("signMessage");throw new e(o.OPERATION_UNSUPPORTED,`Sign type for cosmos not supported, type: ${t}`)}catch(n){throw e.isSignerError(n)?n:new e(o.SEND_TX_ERROR,void 0,n)}}};export{a as MathWalletCosmosSigner};
|
|
2
|
-
//# sourceMappingURL=cosmosSigner-ECZAR6TO.js.map
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/signers/cosmosSigner.ts"],
|
|
4
|
-
"sourcesContent": ["import type { StdFee } from '@cosmjs/stargate';\nimport type { CosmosTransaction, GenericSigner } from 'rango-types';\n\nimport { SigningStargateClient } from '@cosmjs/stargate';\nimport { DEFAULT_COSMOS_RPC_URL } from '@rango-dev/wallets-shared';\nimport { SignerError, SignerErrorCode } from 'rango-types';\n\nconst COSMOS_MESSAGE_TRANSFER_TYPE_URL =\n '/ibc.applications.transfer.v1.MsgTransfer';\n\nexport class MathWalletCosmosSigner\n implements GenericSigner<CosmosTransaction>\n{\n private provider: any;\n\n constructor(provider: any) {\n this.provider = provider;\n }\n\n async signMessage(): Promise<string> {\n throw SignerError.UnimplementedError('signMessage');\n }\n\n async signAndSendTx(tx: CosmosTransaction): Promise<{ hash: string }> {\n if (!this.provider) {\n throw SignerError.AssertionFailed('wallet is null!');\n }\n try {\n const {\n memo,\n sequence,\n account_number,\n chainId,\n msgs,\n fee,\n signType,\n rpcUrl,\n } = tx.data;\n\n if (!chainId) {\n throw SignerError.AssertionFailed('chainId is undefined from server');\n }\n if (!account_number) {\n throw SignerError.AssertionFailed(\n 'account_number is undefined from server'\n );\n }\n if (!sequence) {\n throw SignerError.AssertionFailed('sequence is undefined from server');\n }\n\n if (signType === 'AMINO') {\n const signingStargateClient =\n await SigningStargateClient.connectWithSigner(\n rpcUrl || DEFAULT_COSMOS_RPC_URL,\n this.provider\n );\n\n const processedMsgs = msgs.map((msg: any) => ({\n typeUrl: COSMOS_MESSAGE_TRANSFER_TYPE_URL,\n value: {\n sourcePort: msg.value?.source_port,\n sourceChannel: msg.value?.source_channel,\n sender: msg.value?.sender,\n receiver: msg.value?.receiver,\n token: msg.value?.token,\n timeoutHeight: msg.value?.timeout_height,\n timeoutTimestamp: msg.value?.timeout_timestamp,\n memo: msg.value?.memo,\n },\n }));\n\n const signAndBroadcastResult =\n await signingStargateClient.signAndBroadcastSync(\n tx.fromWalletAddress,\n processedMsgs,\n fee as StdFee,\n memo as string\n );\n\n return { hash: signAndBroadcastResult };\n } else if (signType === 'DIRECT') {\n throw SignerError.UnimplementedError('signMessage');\n }\n throw new SignerError(\n SignerErrorCode.OPERATION_UNSUPPORTED,\n `Sign type for cosmos not supported, type: ${signType}`\n );\n } catch (err) {\n if (SignerError.isSignerError(err)) {\n throw err;\n } else {\n throw new SignerError(SignerErrorCode.SEND_TX_ERROR, undefined, err);\n }\n }\n }\n}\n"],
|
|
5
|
-
"mappings": "wCAGA,OAAS,yBAAAA,MAA6B,mBACtC,OAAS,0BAAAC,MAA8B,4BACvC,OAAS,eAAAC,EAAa,mBAAAC,MAAuB,cAE7C,IAAMC,EACJ,4CAEWC,EAAN,KAEP,CAZA,MAYA,CAAAC,EAAA,+BACU,SAER,YAAYC,EAAe,CACzB,KAAK,SAAWA,CAClB,CAEA,MAAM,aAA+B,CACnC,MAAMC,EAAY,mBAAmB,aAAa,CACpD,CAEA,MAAM,cAAcC,EAAkD,CACpE,GAAI,CAAC,KAAK,SACR,MAAMD,EAAY,gBAAgB,iBAAiB,EAErD,GAAI,CACF,GAAM,CACJ,KAAAE,EACA,SAAAC,EACA,eAAAC,EACA,QAAAC,EACA,KAAAC,EACA,IAAAC,EACA,SAAAC,EACA,OAAAC,CACF,EAAIR,EAAG,KAEP,GAAI,CAACI,EACH,MAAML,EAAY,gBAAgB,kCAAkC,EAEtE,GAAI,CAACI,EACH,MAAMJ,EAAY,gBAChB,yCACF,EAEF,GAAI,CAACG,EACH,MAAMH,EAAY,gBAAgB,mCAAmC,EAGvE,GAAIQ,IAAa,QAAS,CACxB,IAAME,EACJ,MAAMC,EAAsB,kBAC1BF,GAAUG,EACV,KAAK,QACP,EAEIC,EAAgBP,EAAK,IAAKQ,IAAc,CAC5C,QAASlB,EACT,MAAO,CACL,WAAYkB,EAAI,OAAO,YACvB,cAAeA,EAAI,OAAO,eAC1B,OAAQA,EAAI,OAAO,OACnB,SAAUA,EAAI,OAAO,SACrB,MAAOA,EAAI,OAAO,MAClB,cAAeA,EAAI,OAAO,eAC1B,iBAAkBA,EAAI,OAAO,kBAC7B,KAAMA,EAAI,OAAO,IACnB,CACF,EAAE,EAUF,MAAO,CAAE,KAPP,MAAMJ,EAAsB,qBAC1BT,EAAG,kBACHY,EACAN,EACAL,CACF,CAEoC,CACxC,SAAWM,IAAa,SACtB,MAAMR,EAAY,mBAAmB,aAAa,EAEpD,MAAM,IAAIA,EACRe,EAAgB,sBAChB,6CAA6CP,CAAQ,EACvD,CACF,OAASQ,EAAK,CACZ,MAAIhB,EAAY,cAAcgB,CAAG,EACzBA,EAEA,IAAIhB,EAAYe,EAAgB,cAAe,OAAWC,CAAG,CAEvE,CACF,CACF",
|
|
6
|
-
"names": ["SigningStargateClient", "DEFAULT_COSMOS_RPC_URL", "SignerError", "SignerErrorCode", "COSMOS_MESSAGE_TRANSFER_TYPE_URL", "MathWalletCosmosSigner", "__name", "provider", "SignerError", "tx", "memo", "sequence", "account_number", "chainId", "msgs", "fee", "signType", "rpcUrl", "signingStargateClient", "SigningStargateClient", "DEFAULT_COSMOS_RPC_URL", "processedMsgs", "msg", "SignerErrorCode", "err"]
|
|
7
|
-
}
|
package/dist/helpers.d.ts
DELETED
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
import type { Network, ProviderConnectResult } from '@rango-dev/wallets-shared';
|
|
2
|
-
type Provider = Map<Network, any>;
|
|
3
|
-
export declare function mathWallet(): Map<any, any> | null;
|
|
4
|
-
export declare function getNonEvmAccounts(instances: Provider): Promise<ProviderConnectResult[]>;
|
|
5
|
-
export {};
|
|
6
|
-
//# sourceMappingURL=helpers.d.ts.map
|
package/dist/helpers.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAIhF,KAAK,QAAQ,GAAG,GAAG,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;AAElC,wBAAgB,UAAU,yBAqBzB;AAED,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,QAAQ,GAClB,OAAO,CAAC,qBAAqB,EAAE,CAAC,CA+BlC"}
|
package/dist/index.d.ts
DELETED
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
import type { CanEagerConnect, CanSwitchNetwork, Connect, Subscribe, WalletInfo } from '@rango-dev/wallets-shared';
|
|
2
|
-
import type { BlockchainMeta, SignerFactory } from 'rango-types';
|
|
3
|
-
import { Networks, WalletTypes } from '@rango-dev/wallets-shared';
|
|
4
|
-
import { mathWallet as mathWallet_instance } from './helpers.js';
|
|
5
|
-
export declare const config: {
|
|
6
|
-
type: WalletTypes;
|
|
7
|
-
defaultNetwork: Networks;
|
|
8
|
-
};
|
|
9
|
-
export declare const getInstance: typeof mathWallet_instance;
|
|
10
|
-
export declare const connect: Connect;
|
|
11
|
-
export declare const subscribe: Subscribe;
|
|
12
|
-
export declare const canSwitchNetworkTo: CanSwitchNetwork;
|
|
13
|
-
export declare const getSigners: (provider: any) => Promise<SignerFactory>;
|
|
14
|
-
export declare const canEagerConnect: CanEagerConnect;
|
|
15
|
-
export declare const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo;
|
|
16
|
-
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,eAAe,EACf,gBAAgB,EAChB,OAAO,EAEP,SAAS,EACT,UAAU,EACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,EAIL,QAAQ,EAER,WAAW,EACZ,MAAM,2BAA2B,CAAC;AAGnC,OAAO,EAEL,UAAU,IAAI,mBAAmB,EAClC,MAAM,cAAc,CAAC;AAKtB,eAAO,MAAM,MAAM;;;CAGlB,CAAC;AAEF,eAAO,MAAM,WAAW,4BAAsB,CAAC;AAC/C,eAAO,MAAM,OAAO,EAAE,OAcrB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,SAiBvB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,gBAA8B,CAAC;AAEhE,eAAO,MAAM,UAAU,EAAE,CAAC,QAAQ,EAAE,GAAG,KAAK,OAAO,CAAC,aAAa,CAAU,CAAC;AAE5E,eAAO,MAAM,eAAe,EAAE,eAM7B,CAAC;AACF,eAAO,MAAM,aAAa,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,KAAK,UAqBjE,CAAC"}
|
package/dist/index.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
import{a as s}from"./chunk-DYCPFO4Y.js";import{canEagerlyConnectToEvm as y,chooseInstance as f,getEvmAccounts as v,Networks as i,subscribeToEvm as M,WalletTypes as C}from"@rango-dev/wallets-shared";import{evmBlockchains as b,solanaBlockchain as A}from"rango-types";import{Networks as a}from"@rango-dev/wallets-shared";function u(){let t=new Map,{solana:o,ethereum:e,offlineSigner:n}=window;return o&&o.isMathWallet&&t.set(a.SOLANA,o),e&&e.isMathWallet&&t.set(a.ETHEREUM,e),n&&n.getAccounts&&t.set(a.COSMOS,n),t.size===0?null:t}s(u,"mathWallet");async function h(t){let o=t.get(a.SOLANA),e=[];if(o){let c=(await o.connect()).publicKey.toString();e.push({accounts:[c],chainId:a.SOLANA})}let n=t.get(a.COSMOS);if(n){let[r]=await n.getAccounts();r&&e.push({accounts:[r.address],chainId:a.COSMOS})}return e}s(h,"getNonEvmAccounts");import{DefaultSolanaSigner as E}from"@rango-dev/signer-solana";import{dynamicImportWithRefinedError as w,getNetworkInstance as l,Networks as m}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as d,TransactionType as p}from"rango-types";async function g(t){let o=l(t,m.ETHEREUM),e=l(t,m.SOLANA),n=l(t,m.COSMOS),r=new d,{DefaultEvmSigner:c}=await w(async()=>await import("@rango-dev/signer-evm")),{MathWalletCosmosSigner:S}=await w(async()=>await import("./cosmosSigner-ECZAR6TO.js"));return o&&r.registerSigner(p.EVM,new c(o)),e&&r.registerSigner(p.SOLANA,new E(e)),n&&r.registerSigner(p.COSMOS,new S(n)),r}s(g,"getSigners");var k=C.MATH,B={type:k,defaultNetwork:i.ETHEREUM},D=u,j=s(async({instance:t,meta:o})=>{let e=f(t,o,i.ETHEREUM),n=[];if(e){let c=await v(e);n.push(c)}let r=await h(t);return n=[...n,...r],n},"connect"),V=s(t=>{let o,e=f(t.instance,t.meta,i.ETHEREUM);return e&&(o=M({...t,instance:e})),()=>{o&&o()}},"subscribe"),_=s(()=>!1,"canSwitchNetworkTo"),z=g,K=s(async({instance:t,meta:o})=>{let e=f(t,o,i.ETHEREUM);return e?y({instance:e,meta:o}):Promise.resolve(!1)},"canEagerConnect"),q=s(t=>{let o=b(t),e=A(t),n=t.filter(r=>r.name===i.COSMOS);return{name:"Math Wallet",img:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/math/icon.svg",installLink:{CHROME:"https://chrome.google.com/webstore/detail/math-wallet/afbcbjpbpfadlkmhmclhkeeodmamcflc",BRAVE:"https://chrome.google.com/webstore/detail/math-wallet/afbcbjpbpfadlkmhmclhkeeodmamcflc",DEFAULT:"https://mathwallet.org/en-us/"},color:"#2b2f25",supportedChains:[...o,...e,...n]}},"getWalletInfo");export{K as canEagerConnect,_ as canSwitchNetworkTo,B as config,j as connect,D as getInstance,z as getSigners,q as getWalletInfo,V as subscribe};
|
|
2
|
-
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../src/index.ts", "../src/helpers.ts", "../src/signer.ts"],
|
|
4
|
-
"sourcesContent": ["import type {\n CanEagerConnect,\n CanSwitchNetwork,\n Connect,\n ProviderConnectResult,\n Subscribe,\n WalletInfo,\n} from '@rango-dev/wallets-shared';\nimport type { BlockchainMeta, SignerFactory } from 'rango-types';\n\nimport {\n canEagerlyConnectToEvm,\n chooseInstance,\n getEvmAccounts,\n Networks,\n subscribeToEvm,\n WalletTypes,\n} from '@rango-dev/wallets-shared';\nimport { evmBlockchains, solanaBlockchain } from 'rango-types';\n\nimport {\n getNonEvmAccounts,\n mathWallet as mathWallet_instance,\n} from './helpers.js';\nimport signer from './signer.js';\n\nconst WALLET = WalletTypes.MATH;\n\nexport const config = {\n type: WALLET,\n defaultNetwork: Networks.ETHEREUM,\n};\n\nexport const getInstance = mathWallet_instance;\nexport const connect: Connect = async ({ instance, meta }) => {\n const ethInstance = chooseInstance(instance, meta, Networks.ETHEREUM);\n\n let results: ProviderConnectResult[] = [];\n\n if (ethInstance) {\n const evmResult = await getEvmAccounts(ethInstance);\n results.push(evmResult);\n }\n\n const nonEvmResults = await getNonEvmAccounts(instance);\n results = [...results, ...nonEvmResults];\n\n return results;\n};\n\nexport const subscribe: Subscribe = (options) => {\n let cleanup: ReturnType<Subscribe>;\n const ethInstance = chooseInstance(\n options.instance,\n options.meta,\n Networks.ETHEREUM\n );\n\n if (ethInstance) {\n cleanup = subscribeToEvm({ ...options, instance: ethInstance });\n }\n\n return () => {\n if (cleanup) {\n cleanup();\n }\n };\n};\n\nexport const canSwitchNetworkTo: CanSwitchNetwork = () => false;\n\nexport const getSigners: (provider: any) => Promise<SignerFactory> = signer;\n\nexport const canEagerConnect: CanEagerConnect = async ({ instance, meta }) => {\n const evm_instance = chooseInstance(instance, meta, Networks.ETHEREUM);\n if (evm_instance) {\n return canEagerlyConnectToEvm({ instance: evm_instance, meta });\n }\n return Promise.resolve(false);\n};\nexport const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo = (\n allBlockChains\n) => {\n const evms = evmBlockchains(allBlockChains);\n const solana = solanaBlockchain(allBlockChains);\n const cosmos = allBlockChains.filter(\n (blockchainMeta) => blockchainMeta.name === Networks.COSMOS\n );\n return {\n name: 'Math Wallet',\n img: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/math/icon.svg',\n installLink: {\n CHROME:\n 'https://chrome.google.com/webstore/detail/math-wallet/afbcbjpbpfadlkmhmclhkeeodmamcflc',\n BRAVE:\n 'https://chrome.google.com/webstore/detail/math-wallet/afbcbjpbpfadlkmhmclhkeeodmamcflc',\n DEFAULT: 'https://mathwallet.org/en-us/',\n },\n color: '#2b2f25',\n supportedChains: [...evms, ...solana, ...cosmos],\n };\n};\n", "import type { Network, ProviderConnectResult } from '@rango-dev/wallets-shared';\n\nimport { Networks } from '@rango-dev/wallets-shared';\n\ntype Provider = Map<Network, any>;\n\nexport function mathWallet() {\n const instances = new Map();\n const { solana, ethereum, offlineSigner } = window;\n\n if (!!solana && solana.isMathWallet) {\n instances.set(Networks.SOLANA, solana);\n }\n\n if (ethereum && ethereum.isMathWallet) {\n instances.set(Networks.ETHEREUM, ethereum);\n }\n\n if (offlineSigner && offlineSigner.getAccounts) {\n instances.set(Networks.COSMOS, offlineSigner);\n }\n\n if (instances.size === 0) {\n return null;\n }\n\n return instances;\n}\n\nexport async function getNonEvmAccounts(\n instances: Provider\n): Promise<ProviderConnectResult[]> {\n // Getting Solana accounts\n const solanaInstance = instances.get(Networks.SOLANA);\n const results: ProviderConnectResult[] = [];\n\n if (solanaInstance) {\n // Asking for account from wallet.\n const solanaResponse = await solanaInstance.connect();\n\n const solanaAccounts: string = solanaResponse.publicKey.toString();\n\n results.push({\n accounts: [solanaAccounts],\n chainId: Networks.SOLANA,\n });\n }\n\n // Getting Cosmos accounts\n const cosmosInstance = instances.get(Networks.COSMOS);\n if (cosmosInstance) {\n const [firstAccount] = await cosmosInstance.getAccounts();\n\n if (firstAccount) {\n results.push({\n accounts: [firstAccount.address],\n chainId: Networks.COSMOS,\n });\n }\n }\n\n return results;\n}\n", "import type { LegacyNetworkProviderMap } from '@rango-dev/wallets-core/legacy';\nimport type { SignerFactory } from 'rango-types';\n\nimport { DefaultSolanaSigner } from '@rango-dev/signer-solana';\nimport {\n dynamicImportWithRefinedError,\n getNetworkInstance,\n Networks,\n} from '@rango-dev/wallets-shared';\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nexport default async function getSigners(\n provider: LegacyNetworkProviderMap\n): Promise<SignerFactory> {\n const ethProvider = getNetworkInstance(provider, Networks.ETHEREUM);\n const solProvider = getNetworkInstance(provider, Networks.SOLANA);\n const cosmosProvider = getNetworkInstance(provider, Networks.COSMOS);\n\n const signers = new DefaultSignerFactory();\n const { DefaultEvmSigner } = await dynamicImportWithRefinedError(\n async () => await import('@rango-dev/signer-evm')\n );\n const { MathWalletCosmosSigner } = await dynamicImportWithRefinedError(\n async () => await import('./signers/cosmosSigner.js')\n );\n\n if (!!ethProvider) {\n signers.registerSigner(TxType.EVM, new DefaultEvmSigner(ethProvider));\n }\n if (!!solProvider) {\n signers.registerSigner(TxType.SOLANA, new DefaultSolanaSigner(solProvider));\n }\n if (!!cosmosProvider) {\n signers.registerSigner(\n TxType.COSMOS,\n new MathWalletCosmosSigner(cosmosProvider)\n );\n }\n\n return signers;\n}\n"],
|
|
5
|
-
"mappings": "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",
|
|
6
|
-
"names": ["canEagerlyConnectToEvm", "chooseInstance", "getEvmAccounts", "Networks", "subscribeToEvm", "WalletTypes", "evmBlockchains", "solanaBlockchain", "Networks", "mathWallet", "instances", "solana", "ethereum", "offlineSigner", "Networks", "__name", "getNonEvmAccounts", "solanaInstance", "results", "solanaAccounts", "cosmosInstance", "firstAccount", "DefaultSolanaSigner", "dynamicImportWithRefinedError", "getNetworkInstance", "Networks", "DefaultSignerFactory", "TxType", "getSigners", "provider", "ethProvider", "getNetworkInstance", "Networks", "solProvider", "cosmosProvider", "signers", "DefaultSignerFactory", "DefaultEvmSigner", "dynamicImportWithRefinedError", "MathWalletCosmosSigner", "TxType", "DefaultSolanaSigner", "__name", "WALLET", "WalletTypes", "config", "Networks", "getInstance", "mathWallet", "connect", "__name", "instance", "meta", "ethInstance", "chooseInstance", "results", "evmResult", "getEvmAccounts", "nonEvmResults", "getNonEvmAccounts", "subscribe", "options", "cleanup", "subscribeToEvm", "canSwitchNetworkTo", "getSigners", "canEagerConnect", "evm_instance", "canEagerlyConnectToEvm", "getWalletInfo", "allBlockChains", "evms", "evmBlockchains", "solana", "solanaBlockchain", "cosmos", "blockchainMeta"]
|
|
7
|
-
}
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import type { CosmosTransaction, GenericSigner } from 'rango-types';
|
|
2
|
-
export declare class MathWalletCosmosSigner implements GenericSigner<CosmosTransaction> {
|
|
3
|
-
private provider;
|
|
4
|
-
constructor(provider: any);
|
|
5
|
-
signMessage(): Promise<string>;
|
|
6
|
-
signAndSendTx(tx: CosmosTransaction): Promise<{
|
|
7
|
-
hash: string;
|
|
8
|
-
}>;
|
|
9
|
-
}
|
|
10
|
-
//# sourceMappingURL=cosmosSigner.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"cosmosSigner.d.ts","sourceRoot":"","sources":["../../src/signers/cosmosSigner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AASpE,qBAAa,sBACX,YAAW,aAAa,CAAC,iBAAiB,CAAC;IAE3C,OAAO,CAAC,QAAQ,CAAM;gBAEV,QAAQ,EAAE,GAAG;IAInB,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC;IAI9B,aAAa,CAAC,EAAE,EAAE,iBAAiB,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC;CAyEtE"}
|
package/src/helpers.ts
DELETED
|
@@ -1,63 +0,0 @@
|
|
|
1
|
-
import type { Network, ProviderConnectResult } from '@rango-dev/wallets-shared';
|
|
2
|
-
|
|
3
|
-
import { Networks } from '@rango-dev/wallets-shared';
|
|
4
|
-
|
|
5
|
-
type Provider = Map<Network, any>;
|
|
6
|
-
|
|
7
|
-
export function mathWallet() {
|
|
8
|
-
const instances = new Map();
|
|
9
|
-
const { solana, ethereum, offlineSigner } = window;
|
|
10
|
-
|
|
11
|
-
if (!!solana && solana.isMathWallet) {
|
|
12
|
-
instances.set(Networks.SOLANA, solana);
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
if (ethereum && ethereum.isMathWallet) {
|
|
16
|
-
instances.set(Networks.ETHEREUM, ethereum);
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
if (offlineSigner && offlineSigner.getAccounts) {
|
|
20
|
-
instances.set(Networks.COSMOS, offlineSigner);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
if (instances.size === 0) {
|
|
24
|
-
return null;
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
return instances;
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
export async function getNonEvmAccounts(
|
|
31
|
-
instances: Provider
|
|
32
|
-
): Promise<ProviderConnectResult[]> {
|
|
33
|
-
// Getting Solana accounts
|
|
34
|
-
const solanaInstance = instances.get(Networks.SOLANA);
|
|
35
|
-
const results: ProviderConnectResult[] = [];
|
|
36
|
-
|
|
37
|
-
if (solanaInstance) {
|
|
38
|
-
// Asking for account from wallet.
|
|
39
|
-
const solanaResponse = await solanaInstance.connect();
|
|
40
|
-
|
|
41
|
-
const solanaAccounts: string = solanaResponse.publicKey.toString();
|
|
42
|
-
|
|
43
|
-
results.push({
|
|
44
|
-
accounts: [solanaAccounts],
|
|
45
|
-
chainId: Networks.SOLANA,
|
|
46
|
-
});
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
// Getting Cosmos accounts
|
|
50
|
-
const cosmosInstance = instances.get(Networks.COSMOS);
|
|
51
|
-
if (cosmosInstance) {
|
|
52
|
-
const [firstAccount] = await cosmosInstance.getAccounts();
|
|
53
|
-
|
|
54
|
-
if (firstAccount) {
|
|
55
|
-
results.push({
|
|
56
|
-
accounts: [firstAccount.address],
|
|
57
|
-
chainId: Networks.COSMOS,
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
return results;
|
|
63
|
-
}
|
package/src/index.ts
DELETED
|
@@ -1,102 +0,0 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
CanEagerConnect,
|
|
3
|
-
CanSwitchNetwork,
|
|
4
|
-
Connect,
|
|
5
|
-
ProviderConnectResult,
|
|
6
|
-
Subscribe,
|
|
7
|
-
WalletInfo,
|
|
8
|
-
} from '@rango-dev/wallets-shared';
|
|
9
|
-
import type { BlockchainMeta, SignerFactory } from 'rango-types';
|
|
10
|
-
|
|
11
|
-
import {
|
|
12
|
-
canEagerlyConnectToEvm,
|
|
13
|
-
chooseInstance,
|
|
14
|
-
getEvmAccounts,
|
|
15
|
-
Networks,
|
|
16
|
-
subscribeToEvm,
|
|
17
|
-
WalletTypes,
|
|
18
|
-
} from '@rango-dev/wallets-shared';
|
|
19
|
-
import { evmBlockchains, solanaBlockchain } from 'rango-types';
|
|
20
|
-
|
|
21
|
-
import {
|
|
22
|
-
getNonEvmAccounts,
|
|
23
|
-
mathWallet as mathWallet_instance,
|
|
24
|
-
} from './helpers.js';
|
|
25
|
-
import signer from './signer.js';
|
|
26
|
-
|
|
27
|
-
const WALLET = WalletTypes.MATH;
|
|
28
|
-
|
|
29
|
-
export const config = {
|
|
30
|
-
type: WALLET,
|
|
31
|
-
defaultNetwork: Networks.ETHEREUM,
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
export const getInstance = mathWallet_instance;
|
|
35
|
-
export const connect: Connect = async ({ instance, meta }) => {
|
|
36
|
-
const ethInstance = chooseInstance(instance, meta, Networks.ETHEREUM);
|
|
37
|
-
|
|
38
|
-
let results: ProviderConnectResult[] = [];
|
|
39
|
-
|
|
40
|
-
if (ethInstance) {
|
|
41
|
-
const evmResult = await getEvmAccounts(ethInstance);
|
|
42
|
-
results.push(evmResult);
|
|
43
|
-
}
|
|
44
|
-
|
|
45
|
-
const nonEvmResults = await getNonEvmAccounts(instance);
|
|
46
|
-
results = [...results, ...nonEvmResults];
|
|
47
|
-
|
|
48
|
-
return results;
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
export const subscribe: Subscribe = (options) => {
|
|
52
|
-
let cleanup: ReturnType<Subscribe>;
|
|
53
|
-
const ethInstance = chooseInstance(
|
|
54
|
-
options.instance,
|
|
55
|
-
options.meta,
|
|
56
|
-
Networks.ETHEREUM
|
|
57
|
-
);
|
|
58
|
-
|
|
59
|
-
if (ethInstance) {
|
|
60
|
-
cleanup = subscribeToEvm({ ...options, instance: ethInstance });
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
return () => {
|
|
64
|
-
if (cleanup) {
|
|
65
|
-
cleanup();
|
|
66
|
-
}
|
|
67
|
-
};
|
|
68
|
-
};
|
|
69
|
-
|
|
70
|
-
export const canSwitchNetworkTo: CanSwitchNetwork = () => false;
|
|
71
|
-
|
|
72
|
-
export const getSigners: (provider: any) => Promise<SignerFactory> = signer;
|
|
73
|
-
|
|
74
|
-
export const canEagerConnect: CanEagerConnect = async ({ instance, meta }) => {
|
|
75
|
-
const evm_instance = chooseInstance(instance, meta, Networks.ETHEREUM);
|
|
76
|
-
if (evm_instance) {
|
|
77
|
-
return canEagerlyConnectToEvm({ instance: evm_instance, meta });
|
|
78
|
-
}
|
|
79
|
-
return Promise.resolve(false);
|
|
80
|
-
};
|
|
81
|
-
export const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo = (
|
|
82
|
-
allBlockChains
|
|
83
|
-
) => {
|
|
84
|
-
const evms = evmBlockchains(allBlockChains);
|
|
85
|
-
const solana = solanaBlockchain(allBlockChains);
|
|
86
|
-
const cosmos = allBlockChains.filter(
|
|
87
|
-
(blockchainMeta) => blockchainMeta.name === Networks.COSMOS
|
|
88
|
-
);
|
|
89
|
-
return {
|
|
90
|
-
name: 'Math Wallet',
|
|
91
|
-
img: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/math/icon.svg',
|
|
92
|
-
installLink: {
|
|
93
|
-
CHROME:
|
|
94
|
-
'https://chrome.google.com/webstore/detail/math-wallet/afbcbjpbpfadlkmhmclhkeeodmamcflc',
|
|
95
|
-
BRAVE:
|
|
96
|
-
'https://chrome.google.com/webstore/detail/math-wallet/afbcbjpbpfadlkmhmclhkeeodmamcflc',
|
|
97
|
-
DEFAULT: 'https://mathwallet.org/en-us/',
|
|
98
|
-
},
|
|
99
|
-
color: '#2b2f25',
|
|
100
|
-
supportedChains: [...evms, ...solana, ...cosmos],
|
|
101
|
-
};
|
|
102
|
-
};
|
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
import type { StdFee } from '@cosmjs/stargate';
|
|
2
|
-
import type { CosmosTransaction, GenericSigner } from 'rango-types';
|
|
3
|
-
|
|
4
|
-
import { SigningStargateClient } from '@cosmjs/stargate';
|
|
5
|
-
import { DEFAULT_COSMOS_RPC_URL } from '@rango-dev/wallets-shared';
|
|
6
|
-
import { SignerError, SignerErrorCode } from 'rango-types';
|
|
7
|
-
|
|
8
|
-
const COSMOS_MESSAGE_TRANSFER_TYPE_URL =
|
|
9
|
-
'/ibc.applications.transfer.v1.MsgTransfer';
|
|
10
|
-
|
|
11
|
-
export class MathWalletCosmosSigner
|
|
12
|
-
implements GenericSigner<CosmosTransaction>
|
|
13
|
-
{
|
|
14
|
-
private provider: any;
|
|
15
|
-
|
|
16
|
-
constructor(provider: any) {
|
|
17
|
-
this.provider = provider;
|
|
18
|
-
}
|
|
19
|
-
|
|
20
|
-
async signMessage(): Promise<string> {
|
|
21
|
-
throw SignerError.UnimplementedError('signMessage');
|
|
22
|
-
}
|
|
23
|
-
|
|
24
|
-
async signAndSendTx(tx: CosmosTransaction): Promise<{ hash: string }> {
|
|
25
|
-
if (!this.provider) {
|
|
26
|
-
throw SignerError.AssertionFailed('wallet is null!');
|
|
27
|
-
}
|
|
28
|
-
try {
|
|
29
|
-
const {
|
|
30
|
-
memo,
|
|
31
|
-
sequence,
|
|
32
|
-
account_number,
|
|
33
|
-
chainId,
|
|
34
|
-
msgs,
|
|
35
|
-
fee,
|
|
36
|
-
signType,
|
|
37
|
-
rpcUrl,
|
|
38
|
-
} = tx.data;
|
|
39
|
-
|
|
40
|
-
if (!chainId) {
|
|
41
|
-
throw SignerError.AssertionFailed('chainId is undefined from server');
|
|
42
|
-
}
|
|
43
|
-
if (!account_number) {
|
|
44
|
-
throw SignerError.AssertionFailed(
|
|
45
|
-
'account_number is undefined from server'
|
|
46
|
-
);
|
|
47
|
-
}
|
|
48
|
-
if (!sequence) {
|
|
49
|
-
throw SignerError.AssertionFailed('sequence is undefined from server');
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
if (signType === 'AMINO') {
|
|
53
|
-
const signingStargateClient =
|
|
54
|
-
await SigningStargateClient.connectWithSigner(
|
|
55
|
-
rpcUrl || DEFAULT_COSMOS_RPC_URL,
|
|
56
|
-
this.provider
|
|
57
|
-
);
|
|
58
|
-
|
|
59
|
-
const processedMsgs = msgs.map((msg: any) => ({
|
|
60
|
-
typeUrl: COSMOS_MESSAGE_TRANSFER_TYPE_URL,
|
|
61
|
-
value: {
|
|
62
|
-
sourcePort: msg.value?.source_port,
|
|
63
|
-
sourceChannel: msg.value?.source_channel,
|
|
64
|
-
sender: msg.value?.sender,
|
|
65
|
-
receiver: msg.value?.receiver,
|
|
66
|
-
token: msg.value?.token,
|
|
67
|
-
timeoutHeight: msg.value?.timeout_height,
|
|
68
|
-
timeoutTimestamp: msg.value?.timeout_timestamp,
|
|
69
|
-
memo: msg.value?.memo,
|
|
70
|
-
},
|
|
71
|
-
}));
|
|
72
|
-
|
|
73
|
-
const signAndBroadcastResult =
|
|
74
|
-
await signingStargateClient.signAndBroadcastSync(
|
|
75
|
-
tx.fromWalletAddress,
|
|
76
|
-
processedMsgs,
|
|
77
|
-
fee as StdFee,
|
|
78
|
-
memo as string
|
|
79
|
-
);
|
|
80
|
-
|
|
81
|
-
return { hash: signAndBroadcastResult };
|
|
82
|
-
} else if (signType === 'DIRECT') {
|
|
83
|
-
throw SignerError.UnimplementedError('signMessage');
|
|
84
|
-
}
|
|
85
|
-
throw new SignerError(
|
|
86
|
-
SignerErrorCode.OPERATION_UNSUPPORTED,
|
|
87
|
-
`Sign type for cosmos not supported, type: ${signType}`
|
|
88
|
-
);
|
|
89
|
-
} catch (err) {
|
|
90
|
-
if (SignerError.isSignerError(err)) {
|
|
91
|
-
throw err;
|
|
92
|
-
} else {
|
|
93
|
-
throw new SignerError(SignerErrorCode.SEND_TX_ERROR, undefined, err);
|
|
94
|
-
}
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
}
|