@rango-dev/provider-ready 0.55.1-next.2 → 0.56.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.
- package/dist/actions/starknet.d.ts +7 -0
- package/dist/actions/starknet.d.ts.map +1 -0
- package/dist/builders/starknet.d.ts +7 -0
- package/dist/builders/starknet.d.ts.map +1 -0
- package/dist/constants.d.ts +4 -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/starknet.d.ts +4 -0
- package/dist/namespaces/starknet.d.ts.map +1 -0
- package/dist/provider-ready.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 +7 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/utils.d.ts +6 -0
- package/dist/utils.d.ts.map +1 -0
- package/package.json +8 -11
- package/readme.md +14 -1
- package/src/actions/starknet.ts +33 -0
- package/src/builders/starknet.ts +26 -0
- package/src/constants.ts +40 -0
- package/src/mod.ts +8 -0
- package/src/namespaces/starknet.ts +42 -0
- package/src/provider.ts +21 -0
- package/src/signer.ts +20 -5
- package/src/types.ts +10 -0
- package/src/utils.ts +41 -0
- package/tsconfig.build.json +11 -0
- package/tsconfig.json +1 -0
- package/dist/helpers.d.ts +0 -3
- 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/src/helpers.ts +0 -9
- package/src/index.ts +0 -93
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { Context, FunctionWithContext } from '@rango-dev/wallets-core';
|
|
2
|
+
import { type ProviderAPI, type StarknetActions } from '@rango-dev/wallets-core/namespaces/starknet';
|
|
3
|
+
export declare function connect(instance: () => ProviderAPI): FunctionWithContext<StarknetActions['connect'], Context>;
|
|
4
|
+
export declare const starknetActions: {
|
|
5
|
+
connect: typeof connect;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=starknet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"starknet.d.ts","sourceRoot":"","sources":["../../src/actions/starknet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAE5E,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,eAAe,EAErB,MAAM,6CAA6C,CAAC;AAErD,wBAAgB,OAAO,CACrB,QAAQ,EAAE,MAAM,WAAW,GAC1B,mBAAmB,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,OAAO,CAAC,CAoB1D;AACD,eAAO,MAAM,eAAe;;CAAc,CAAC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { ProviderAPI, StarknetActions } from '@rango-dev/wallets-core/namespaces/starknet';
|
|
2
|
+
import { ChangeAccountSubscriberBuilder } from '@rango-dev/wallets-core/namespaces/common';
|
|
3
|
+
export declare const changeAccountSubscriber: (getInstance: () => ProviderAPI) => ChangeAccountSubscriberBuilder<string[], ProviderAPI, StarknetActions>;
|
|
4
|
+
export declare const starknetBuilders: {
|
|
5
|
+
changeAccountSubscriber: (getInstance: () => ProviderAPI) => ChangeAccountSubscriberBuilder<string[], ProviderAPI, StarknetActions>;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=starknet.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"starknet.d.ts","sourceRoot":"","sources":["../../src/builders/starknet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,WAAW,EACX,eAAe,EAChB,MAAM,6CAA6C,CAAC;AAErD,OAAO,EAAE,8BAA8B,EAAE,MAAM,2CAA2C,CAAC;AAG3F,eAAO,MAAM,uBAAuB,gBAAiB,MAAM,WAAW,2EAehE,CAAC;AAEP,eAAO,MAAM,gBAAgB;2CAjBwB,MAAM,WAAW;CAiBX,CAAC"}
|
|
@@ -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;AAMhE,eAAO,MAAM,SAAS,UAAU,CAAC;AACjC,eAAO,MAAM,QAAQ,EAAE,gBAgCtB,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 w=Object.defineProperty;var r=(e,t)=>w(e,"name",{value:t,configurable:!0});import{defineVersions as F}from"@rango-dev/wallets-core/utils";import{ProviderBuilder as W}from"@rango-dev/wallets-core";import"@rango-dev/wallets-core";import{starknetBlockchain as S}from"rango-types";import{LegacyNetworks as k}from"@rango-dev/wallets-core/legacy";import{dynamicImportWithRefinedError as A,getNetworkInstance as b}from"@rango-dev/wallets-shared";import{DefaultSignerFactory as v,TransactionType as P}from"rango-types";async function c(e){let t=new v,o=b(e,k.STARKNET),{DefaultStarknetSigner:y}=await A(async()=>await import("@rango-dev/signer-starknet"));return t.registerSigner(P.STARKNET,new y(o)),t}r(c,"getSigners");import{LegacyNetworks as s}from"@rango-dev/wallets-core/legacy";function n(){let e=new Map,{starknet_argentX:t}=window;return t?(e.set(s.STARKNET,t),e):null}r(n,"ready");function d(){let e=n();if(!e)throw new Error("Ready is not injected. Please check your wallet.");return e}r(d,"getInstanceOrThrow");function a(){let t=n()?.get(s.STARKNET);if(!t)throw new Error("Ready not injected or Starknet not enabled. Please check your wallet.");return t}r(a,"starknetReady");var i="ready",m={name:"Ready",icon:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/argentx/icon.svg",extensions:{chrome:"https://chromewebstore.google.com/detail/ready-wallet-formerly-arg/dlcobpjiigpikoobohmabehhmhfoodbb",brave:"https://chromewebstore.google.com/detail/ready-wallet-formerly-arg/dlcobpjiigpikoobohmabehhmhfoodbb",firefox:"https://addons.mozilla.org/en-GB/firefox/addon/argent-x",homepage:"https://www.ready.co/"},properties:[{name:"namespaces",value:{selection:"multiple",data:[{label:"Ready",value:"Starknet",id:"STARKNET",getSupportedChains:e=>S(e)}]}},{name:"signers",value:{getSigners:async()=>c(d())}}]};import{NamespaceBuilder as N}from"@rango-dev/wallets-core";import{builders as B,standardizeAndThrowError as L}from"@rango-dev/wallets-core/namespaces/common";import{actions as _,builders as u}from"@rango-dev/wallets-core/namespaces/starknet";import{CAIP_STARKNET_CHAIN_ID as I,utils as x}from"@rango-dev/wallets-core/namespaces/starknet";function T(e){return async()=>{let t=e(),o=await t?.enable();if(!o||!t.isConnected||!o?.length)throw new Error("Error during connection");if(t?.chainId!==I)throw new Error(`Please switch to Mainnet, current network is ${t?.chainId}`);return x.formatAccountsToCAIP(o)}}r(T,"connect");var p={connect:T};import{ChangeAccountSubscriberBuilder as E}from"@rango-dev/wallets-core/namespaces/common";import{utils as C}from"@rango-dev/wallets-core/namespaces/starknet";var R=r(e=>new E().getInstance(e).onSwitchAccount(t=>{t.payload.length||t.preventDefault()}).format(async(t,o)=>C.formatAccountsToCAIP(o)).addEventListener((t,o)=>{t.on("accountsChanged",o)}).removeEventListener((t,o)=>{t.off("accountsChanged",o)}),"changeAccountSubscriber"),l={changeAccountSubscriber:R};var[D,f]=l.changeAccountSubscriber(a).build(),j=u.connect().action(p.connect(a)).before(D).or(f).or(L).build(),K=B.disconnect().after(f).build(),M=u.canEagerConnect().action(_.canEagerConnect(a)).build(),g=new N("Starknet",i).action(j).action(K).action(M).build();var h=r(()=>new W(i).init(function(e){let[,t]=e.state();n()&&(t("installed",!0),console.debug("[ready] instance detected.",e))}).config("metadata",m).add("starknet",g).build(),"buildProvider");var St=r(()=>F().version("1.0.0",h()).build(),"versions");export{St 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/starknet.ts", "../src/actions/starknet.ts", "../src/builders/starknet.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 { metadata, WALLET_ID } from './constants.js';\nimport { starknet } from './namespaces/starknet.js';\nimport { ready } from './utils.js';\n\nconst buildProvider = () =>\n new ProviderBuilder(WALLET_ID)\n .init(function (context) {\n const [, setState] = context.state();\n\n if (ready()) {\n setState('installed', true);\n console.debug('[ready] instance detected.', context);\n }\n })\n .config('metadata', metadata)\n .add('starknet', starknet)\n .build();\n\nexport { buildProvider };\n", "import { type ProviderMetadata } from '@rango-dev/wallets-core';\nimport { type BlockchainMeta, starknetBlockchain } from 'rango-types';\n\nimport getSigners from './signer.js';\nimport { getInstanceOrThrow } from './utils.js';\n\nexport const WALLET_ID = 'ready';\nexport const metadata: ProviderMetadata = {\n name: 'Ready',\n icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/argentx/icon.svg',\n extensions: {\n chrome:\n 'https://chromewebstore.google.com/detail/ready-wallet-formerly-arg/dlcobpjiigpikoobohmabehhmhfoodbb',\n brave:\n 'https://chromewebstore.google.com/detail/ready-wallet-formerly-arg/dlcobpjiigpikoobohmabehhmhfoodbb',\n firefox: 'https://addons.mozilla.org/en-GB/firefox/addon/argent-x',\n homepage: 'https://www.ready.co/',\n },\n properties: [\n {\n name: 'namespaces',\n value: {\n selection: 'multiple',\n data: [\n {\n label: 'Ready',\n value: 'Starknet',\n id: 'STARKNET',\n getSupportedChains: (allBlockchains: BlockchainMeta[]) =>\n starknetBlockchain(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 { LegacyNetworks } from '@rango-dev/wallets-core/legacy';\nimport {\n dynamicImportWithRefinedError,\n getNetworkInstance,\n} from '@rango-dev/wallets-shared';\nimport { DefaultSignerFactory, TransactionType } from 'rango-types';\n\nexport default async function getSigners(\n provider: Provider\n): Promise<SignerFactory> {\n const signers = new DefaultSignerFactory();\n const starknetProvider = getNetworkInstance(\n provider,\n LegacyNetworks.STARKNET\n );\n\n const { DefaultStarknetSigner } = await dynamicImportWithRefinedError(\n async () => await import('@rango-dev/signer-starknet')\n );\n signers.registerSigner(\n TransactionType.STARKNET,\n new DefaultStarknetSigner(starknetProvider)\n );\n return signers;\n}\n", "import type { Provider } from './types.js';\nimport type { ProviderAPI as StarknetProviderAPI } from '@rango-dev/wallets-core/namespaces/starknet';\n\nimport { LegacyNetworks } from '@rango-dev/wallets-core/legacy';\n\nexport function ready(): Provider | null {\n const instances: Provider = new Map();\n const { starknet_argentX } = window;\n\n if (!starknet_argentX) {\n return null;\n }\n\n instances.set(LegacyNetworks.STARKNET, starknet_argentX);\n\n return instances;\n}\n\nexport function getInstanceOrThrow(): Provider {\n const instances = ready();\n\n if (!instances) {\n throw new Error('Ready is not injected. Please check your wallet.');\n }\n\n return instances;\n}\n\nexport function starknetReady(): StarknetProviderAPI {\n const instances = ready();\n\n const evmInstance = instances?.get(LegacyNetworks.STARKNET);\n\n if (!evmInstance) {\n throw new Error(\n 'Ready not injected or Starknet not enabled. Please check your wallet.'\n );\n }\n\n return evmInstance;\n}\n", "import type { StarknetActions } from '@rango-dev/wallets-core/namespaces/starknet';\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/starknet';\n\nimport { starknetActions } from '../actions/starknet.js';\nimport { starknetBuilders } from '../builders/starknet.js';\nimport { WALLET_ID } from '../constants.js';\nimport { starknetReady } from '../utils.js';\n\nconst [changeAccountSubscriber, changeAccountCleanup] = starknetBuilders\n .changeAccountSubscriber(starknetReady)\n .build();\nconst connect = builders\n .connect()\n .action(starknetActions.connect(starknetReady))\n .before(changeAccountSubscriber)\n .or(changeAccountCleanup)\n .or(standardizeAndThrowError)\n .build();\n\nconst disconnect = commonBuilders\n .disconnect<StarknetActions>()\n .after(changeAccountCleanup)\n .build();\n\nconst canEagerConnect = builders\n .canEagerConnect()\n .action(actions.canEagerConnect(starknetReady))\n .build();\n\nconst starknet = new NamespaceBuilder<StarknetActions>('Starknet', WALLET_ID)\n .action(connect)\n .action(disconnect)\n .action(canEagerConnect)\n .build();\n\nexport { starknet };\n", "import type { Context, FunctionWithContext } from '@rango-dev/wallets-core';\n\nimport {\n CAIP_STARKNET_CHAIN_ID,\n type ProviderAPI,\n type StarknetActions,\n utils,\n} from '@rango-dev/wallets-core/namespaces/starknet';\n\nexport function connect(\n instance: () => ProviderAPI\n): FunctionWithContext<StarknetActions['connect'], Context> {\n return async () => {\n const starknetInstance = instance();\n\n const connectResult = await starknetInstance?.enable();\n if (\n !connectResult ||\n !starknetInstance.isConnected ||\n !connectResult?.length\n ) {\n throw new Error('Error during connection');\n }\n if (starknetInstance?.chainId !== CAIP_STARKNET_CHAIN_ID) {\n throw new Error(\n `Please switch to Mainnet, current network is ${starknetInstance?.chainId}`\n );\n }\n\n return utils.formatAccountsToCAIP(connectResult);\n };\n}\nexport const starknetActions = { connect };\n", "import type {\n ProviderAPI,\n StarknetActions,\n} from '@rango-dev/wallets-core/namespaces/starknet';\n\nimport { ChangeAccountSubscriberBuilder } from '@rango-dev/wallets-core/namespaces/common';\nimport { utils } from '@rango-dev/wallets-core/namespaces/starknet';\n// Hooks\nexport const changeAccountSubscriber = (getInstance: () => ProviderAPI) =>\n new ChangeAccountSubscriberBuilder<string[], ProviderAPI, StarknetActions>()\n .getInstance(getInstance)\n\n .onSwitchAccount((event) => {\n if (!event.payload.length) {\n event.preventDefault();\n }\n })\n .format(async (_, accounts) => utils.formatAccountsToCAIP(accounts))\n .addEventListener((instance, callback) => {\n instance.on('accountsChanged', callback);\n })\n .removeEventListener((instance, callback) => {\n instance.off('accountsChanged', callback);\n });\n\nexport const starknetBuilders = { changeAccountSubscriber };\n"],
|
|
5
|
+
"mappings": "+EAAA,OAAS,kBAAAA,MAAsB,gCCA/B,OAAS,mBAAAC,MAAuB,0BCAhC,MAAsC,0BACtC,OAA8B,sBAAAC,MAA0B,cCExD,OAAS,kBAAAC,MAAsB,iCAC/B,OACE,iCAAAC,EACA,sBAAAC,MACK,4BACP,OAAS,wBAAAC,EAAsB,mBAAAC,MAAuB,cAEtD,eAAOC,EACLC,EACwB,CACxB,IAAMC,EAAU,IAAIC,EACdC,EAAmBC,EACvBJ,EACAK,EAAe,QACjB,EAEM,CAAE,sBAAAC,CAAsB,EAAI,MAAMC,EACtC,SAAY,KAAM,QAAO,4BAA4B,CACvD,EACA,OAAAN,EAAQ,eACNO,EAAgB,SAChB,IAAIF,EAAsBH,CAAgB,CAC5C,EACOF,CACT,CAjB8BQ,EAAAV,EAAA,cCP9B,OAAS,kBAAAW,MAAsB,iCAExB,SAASC,GAAyB,CACvC,IAAMC,EAAsB,IAAI,IAC1B,CAAE,iBAAAC,CAAiB,EAAI,OAE7B,OAAKA,GAILD,EAAU,IAAIE,EAAe,SAAUD,CAAgB,EAEhDD,GALE,IAMX,CAXgBG,EAAAJ,EAAA,SAaT,SAASK,GAA+B,CAC7C,IAAMJ,EAAYD,EAAM,EAExB,GAAI,CAACC,EACH,MAAM,IAAI,MAAM,kDAAkD,EAGpE,OAAOA,CACT,CARgBG,EAAAC,EAAA,sBAUT,SAASC,GAAqC,CAGnD,IAAMC,EAFYP,EAAM,GAEO,IAAIG,EAAe,QAAQ,EAE1D,GAAI,CAACI,EACH,MAAM,IAAI,MACR,uEACF,EAGF,OAAOA,CACT,CAZgBH,EAAAE,EAAA,iBFtBT,IAAME,EAAY,QACZC,EAA6B,CACxC,KAAM,QACN,KAAM,wFACN,WAAY,CACV,OACE,sGACF,MACE,sGACF,QAAS,0DACT,SAAU,uBACZ,EACA,WAAY,CACV,CACE,KAAM,aACN,MAAO,CACL,UAAW,WACX,KAAM,CACJ,CACE,MAAO,QACP,MAAO,WACP,GAAI,WACJ,mBAAqBC,GACnBC,EAAmBD,CAAc,CACrC,CACF,CACF,CACF,EACA,CACE,KAAM,UACN,MAAO,CAAE,WAAY,SAAYE,EAAWC,EAAmB,CAAC,CAAE,CACpE,CACF,CACF,EGrCA,OAAS,oBAAAC,MAAwB,0BACjC,OACE,YAAYC,EACZ,4BAAAC,MACK,4CACP,OAAS,WAAAC,EAAS,YAAAC,MAAgB,8CCLlC,OACE,0BAAAC,EAGA,SAAAC,MACK,8CAEA,SAASC,EACdC,EAC0D,CAC1D,MAAO,UAAY,CACjB,IAAMC,EAAmBD,EAAS,EAE5BE,EAAgB,MAAMD,GAAkB,OAAO,EACrD,GACE,CAACC,GACD,CAACD,EAAiB,aAClB,CAACC,GAAe,OAEhB,MAAM,IAAI,MAAM,yBAAyB,EAE3C,GAAID,GAAkB,UAAYE,EAChC,MAAM,IAAI,MACR,gDAAgDF,GAAkB,OAAO,EAC3E,EAGF,OAAOG,EAAM,qBAAqBF,CAAa,CACjD,CACF,CAtBgBG,EAAAN,EAAA,WAuBT,IAAMO,EAAkB,CAAE,QAAAP,CAAQ,EC3BzC,OAAS,kCAAAQ,MAAsC,4CAC/C,OAAS,SAAAC,MAAa,8CAEf,IAAMC,EAA0BC,EAACC,GACtC,IAAIC,EAAuE,EACxE,YAAYD,CAAW,EAEvB,gBAAiBE,GAAU,CACrBA,EAAM,QAAQ,QACjBA,EAAM,eAAe,CAEzB,CAAC,EACA,OAAO,MAAOC,EAAGC,IAAaC,EAAM,qBAAqBD,CAAQ,CAAC,EAClE,iBAAiB,CAACE,EAAUC,IAAa,CACxCD,EAAS,GAAG,kBAAmBC,CAAQ,CACzC,CAAC,EACA,oBAAoB,CAACD,EAAUC,IAAa,CAC3CD,EAAS,IAAI,kBAAmBC,CAAQ,CAC1C,CAAC,EAfkC,2BAiB1BC,EAAmB,CAAE,wBAAAV,CAAwB,EFX1D,GAAM,CAACW,EAAyBC,CAAoB,EAAIC,EACrD,wBAAwBC,CAAa,EACrC,MAAM,EACHC,EAAUC,EACb,QAAQ,EACR,OAAOC,EAAgB,QAAQH,CAAa,CAAC,EAC7C,OAAOH,CAAuB,EAC9B,GAAGC,CAAoB,EACvB,GAAGM,CAAwB,EAC3B,MAAM,EAEHC,EAAaC,EAChB,WAA4B,EAC5B,MAAMR,CAAoB,EAC1B,MAAM,EAEHS,EAAkBL,EACrB,gBAAgB,EAChB,OAAOM,EAAQ,gBAAgBR,CAAa,CAAC,EAC7C,MAAM,EAEHS,EAAW,IAAIC,EAAkC,WAAYC,CAAS,EACzE,OAAOV,CAAO,EACd,OAAOI,CAAU,EACjB,OAAOE,CAAe,EACtB,MAAM,EJjCT,IAAMK,EAAgBC,EAAA,IACpB,IAAIC,EAAgBC,CAAS,EAC1B,KAAK,SAAUC,EAAS,CACvB,GAAM,CAAC,CAAEC,CAAQ,EAAID,EAAQ,MAAM,EAE/BE,EAAM,IACRD,EAAS,YAAa,EAAI,EAC1B,QAAQ,MAAM,6BAA8BD,CAAO,EAEvD,CAAC,EACA,OAAO,WAAYG,CAAQ,EAC3B,IAAI,WAAYC,CAAQ,EACxB,MAAM,EAZW,iBDFtB,IAAMC,GAAWC,EAAA,IACfC,EAAe,EAAE,QAAQ,QAASC,EAAc,CAAC,EAAE,MAAM,EAD1C",
|
|
6
|
+
"names": ["defineVersions", "ProviderBuilder", "starknetBlockchain", "LegacyNetworks", "dynamicImportWithRefinedError", "getNetworkInstance", "DefaultSignerFactory", "TransactionType", "getSigners", "provider", "signers", "DefaultSignerFactory", "starknetProvider", "getNetworkInstance", "LegacyNetworks", "DefaultStarknetSigner", "dynamicImportWithRefinedError", "TransactionType", "__name", "LegacyNetworks", "ready", "instances", "starknet_argentX", "LegacyNetworks", "__name", "getInstanceOrThrow", "starknetReady", "evmInstance", "WALLET_ID", "metadata", "allBlockchains", "starknetBlockchain", "getSigners", "getInstanceOrThrow", "NamespaceBuilder", "commonBuilders", "standardizeAndThrowError", "actions", "builders", "CAIP_STARKNET_CHAIN_ID", "utils", "connect", "instance", "starknetInstance", "connectResult", "CAIP_STARKNET_CHAIN_ID", "utils", "__name", "starknetActions", "ChangeAccountSubscriberBuilder", "utils", "changeAccountSubscriber", "__name", "getInstance", "ChangeAccountSubscriberBuilder", "event", "_", "accounts", "utils", "instance", "callback", "starknetBuilders", "changeAccountSubscriber", "changeAccountCleanup", "starknetBuilders", "starknetReady", "connect", "builders", "starknetActions", "standardizeAndThrowError", "disconnect", "commonBuilders", "canEagerConnect", "actions", "starknet", "NamespaceBuilder", "WALLET_ID", "buildProvider", "__name", "ProviderBuilder", "WALLET_ID", "context", "setState", "ready", "metadata", "starknet", "versions", "__name", "defineVersions", "buildProvider"]
|
|
7
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"starknet.d.ts","sourceRoot":"","sources":["../../src/namespaces/starknet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAmCnF,QAAA,MAAM,QAAQ,qEAIJ,CAAC;AAEX,OAAO,EAAE,QAAQ,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"inputs":{"src/
|
|
1
|
+
{"inputs":{"src/signer.ts":{"bytes":828,"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":"@rango-dev/signer-starknet","kind":"dynamic-import","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/utils.ts":{"bytes":977,"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":1278,"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/actions/starknet.ts":{"bytes":920,"imports":[{"path":"@rango-dev/wallets-core/namespaces/starknet","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/builders/starknet.ts":{"bytes":920,"imports":[{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/starknet","kind":"import-statement","external":true},{"path":"<runtime>","kind":"import-statement","external":true}],"format":"esm"},"src/namespaces/starknet.ts":{"bytes":1286,"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/starknet","kind":"import-statement","external":true},{"path":"src/actions/starknet.ts","kind":"import-statement","original":"../actions/starknet.js"},{"path":"src/builders/starknet.ts","kind":"import-statement","original":"../builders/starknet.js"},{"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":582,"imports":[{"path":"@rango-dev/wallets-core","kind":"import-statement","external":true},{"path":"src/constants.ts","kind":"import-statement","original":"./constants.js"},{"path":"src/namespaces/starknet.ts","kind":"import-statement","original":"./namespaces/starknet.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":11870},"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-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/signer-starknet","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/starknet","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/starknet","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/common","kind":"import-statement","external":true},{"path":"@rango-dev/wallets-core/namespaces/starknet","kind":"import-statement","external":true}],"exports":["versions"],"entryPoint":"src/mod.ts","inputs":{"src/mod.ts":{"bytesInOutput":121},"src/provider.ts":{"bytesInOutput":251},"src/constants.ts":{"bytesInOutput":729},"src/signer.ts":{"bytesInOutput":436},"src/utils.ts":{"bytesInOutput":467},"src/namespaces/starknet.ts":{"bytesInOutput":506},"src/actions/starknet.ts":{"bytesInOutput":397},"src/builders/starknet.ts":{"bytesInOutput":465}},"bytes":3507}}}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../src/provider.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,aAAa,kDAYP,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,CAexB"}
|
package/dist/types.d.ts
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { LegacyNetworks } from '@rango-dev/wallets-core/legacy';
|
|
2
|
+
import type { ProviderAPI as StarknetProviderAPI } from '@rango-dev/wallets-core/namespaces/starknet';
|
|
3
|
+
export type ProviderObject = {
|
|
4
|
+
[LegacyNetworks.STARKNET]: StarknetProviderAPI;
|
|
5
|
+
};
|
|
6
|
+
export type Provider = Map<keyof ProviderObject, ProviderObject[keyof ProviderObject]>;
|
|
7
|
+
//# 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,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAEtG,MAAM,MAAM,cAAc,GAAG;IAC3B,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,mBAAmB,CAAC;CAChD,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,6 @@
|
|
|
1
|
+
import type { Provider } from './types.js';
|
|
2
|
+
import type { ProviderAPI as StarknetProviderAPI } from '@rango-dev/wallets-core/namespaces/starknet';
|
|
3
|
+
export declare function ready(): Provider | null;
|
|
4
|
+
export declare function getInstanceOrThrow(): Provider;
|
|
5
|
+
export declare function starknetReady(): StarknetProviderAPI;
|
|
6
|
+
//# 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,mBAAmB,EAAE,MAAM,6CAA6C,CAAC;AAItG,wBAAgB,KAAK,IAAI,QAAQ,GAAG,IAAI,CAWvC;AAED,wBAAgB,kBAAkB,IAAI,QAAQ,CAQ7C;AAED,wBAAgB,aAAa,IAAI,mBAAmB,CAYnD"}
|
package/package.json
CHANGED
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@rango-dev/provider-ready",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.56.0",
|
|
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/
|
|
12
|
-
"files": [
|
|
13
|
-
"dist",
|
|
14
|
-
"src"
|
|
15
|
-
],
|
|
11
|
+
"typings": "dist/mod.d.ts",
|
|
16
12
|
"scripts": {
|
|
17
|
-
"build": "node ../../scripts/build/command.mjs --path wallets/provider-ready",
|
|
13
|
+
"build": "node ../../scripts/build/command.mjs --path wallets/provider-ready --inputs src/mod.ts",
|
|
18
14
|
"ts-check": "tsc --declaration --emitDeclarationOnly -p ./tsconfig.json",
|
|
19
15
|
"clean": "rimraf dist",
|
|
20
16
|
"format": "prettier --write '{.,src}/**/*.{ts,tsx}'",
|
|
@@ -22,7 +18,8 @@
|
|
|
22
18
|
},
|
|
23
19
|
"dependencies": {
|
|
24
20
|
"@rango-dev/signer-starknet": "^0.40.0",
|
|
25
|
-
"@rango-dev/wallets-
|
|
21
|
+
"@rango-dev/wallets-core": "^0.55.0",
|
|
22
|
+
"@rango-dev/wallets-shared": "^0.56.0",
|
|
26
23
|
"rango-types": "^0.1.89"
|
|
27
24
|
},
|
|
28
25
|
"publishConfig": {
|
package/readme.md
CHANGED
|
@@ -1 +1,14 @@
|
|
|
1
|
-
#
|
|
1
|
+
# Ready (formerly Argent X)
|
|
2
|
+
Ready Wallet integration for hub.
|
|
3
|
+
[Homepage](https://www.ready.tech/) | [Docs](https://docs.ready.tech/)
|
|
4
|
+
|
|
5
|
+
More about implementation status can be found [here](../readme.md).
|
|
6
|
+
|
|
7
|
+
## Implementation notes/limitations
|
|
8
|
+
|
|
9
|
+
### Feature
|
|
10
|
+
All features are currently supported, and **no limitations** have been identified in this integration.
|
|
11
|
+
|
|
12
|
+
---
|
|
13
|
+
|
|
14
|
+
More wallet information can be found in [readme.md](../readme.md).
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import type { Context, FunctionWithContext } from '@rango-dev/wallets-core';
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
CAIP_STARKNET_CHAIN_ID,
|
|
5
|
+
type ProviderAPI,
|
|
6
|
+
type StarknetActions,
|
|
7
|
+
utils,
|
|
8
|
+
} from '@rango-dev/wallets-core/namespaces/starknet';
|
|
9
|
+
|
|
10
|
+
export function connect(
|
|
11
|
+
instance: () => ProviderAPI
|
|
12
|
+
): FunctionWithContext<StarknetActions['connect'], Context> {
|
|
13
|
+
return async () => {
|
|
14
|
+
const starknetInstance = instance();
|
|
15
|
+
|
|
16
|
+
const connectResult = await starknetInstance?.enable();
|
|
17
|
+
if (
|
|
18
|
+
!connectResult ||
|
|
19
|
+
!starknetInstance.isConnected ||
|
|
20
|
+
!connectResult?.length
|
|
21
|
+
) {
|
|
22
|
+
throw new Error('Error during connection');
|
|
23
|
+
}
|
|
24
|
+
if (starknetInstance?.chainId !== CAIP_STARKNET_CHAIN_ID) {
|
|
25
|
+
throw new Error(
|
|
26
|
+
`Please switch to Mainnet, current network is ${starknetInstance?.chainId}`
|
|
27
|
+
);
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
return utils.formatAccountsToCAIP(connectResult);
|
|
31
|
+
};
|
|
32
|
+
}
|
|
33
|
+
export const starknetActions = { connect };
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
ProviderAPI,
|
|
3
|
+
StarknetActions,
|
|
4
|
+
} from '@rango-dev/wallets-core/namespaces/starknet';
|
|
5
|
+
|
|
6
|
+
import { ChangeAccountSubscriberBuilder } from '@rango-dev/wallets-core/namespaces/common';
|
|
7
|
+
import { utils } from '@rango-dev/wallets-core/namespaces/starknet';
|
|
8
|
+
// Hooks
|
|
9
|
+
export const changeAccountSubscriber = (getInstance: () => ProviderAPI) =>
|
|
10
|
+
new ChangeAccountSubscriberBuilder<string[], ProviderAPI, StarknetActions>()
|
|
11
|
+
.getInstance(getInstance)
|
|
12
|
+
|
|
13
|
+
.onSwitchAccount((event) => {
|
|
14
|
+
if (!event.payload.length) {
|
|
15
|
+
event.preventDefault();
|
|
16
|
+
}
|
|
17
|
+
})
|
|
18
|
+
.format(async (_, accounts) => utils.formatAccountsToCAIP(accounts))
|
|
19
|
+
.addEventListener((instance, callback) => {
|
|
20
|
+
instance.on('accountsChanged', callback);
|
|
21
|
+
})
|
|
22
|
+
.removeEventListener((instance, callback) => {
|
|
23
|
+
instance.off('accountsChanged', callback);
|
|
24
|
+
});
|
|
25
|
+
|
|
26
|
+
export const starknetBuilders = { changeAccountSubscriber };
|
package/src/constants.ts
ADDED
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { type ProviderMetadata } from '@rango-dev/wallets-core';
|
|
2
|
+
import { type BlockchainMeta, starknetBlockchain } from 'rango-types';
|
|
3
|
+
|
|
4
|
+
import getSigners from './signer.js';
|
|
5
|
+
import { getInstanceOrThrow } from './utils.js';
|
|
6
|
+
|
|
7
|
+
export const WALLET_ID = 'ready';
|
|
8
|
+
export const metadata: ProviderMetadata = {
|
|
9
|
+
name: 'Ready',
|
|
10
|
+
icon: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/argentx/icon.svg',
|
|
11
|
+
extensions: {
|
|
12
|
+
chrome:
|
|
13
|
+
'https://chromewebstore.google.com/detail/ready-wallet-formerly-arg/dlcobpjiigpikoobohmabehhmhfoodbb',
|
|
14
|
+
brave:
|
|
15
|
+
'https://chromewebstore.google.com/detail/ready-wallet-formerly-arg/dlcobpjiigpikoobohmabehhmhfoodbb',
|
|
16
|
+
firefox: 'https://addons.mozilla.org/en-GB/firefox/addon/argent-x',
|
|
17
|
+
homepage: 'https://www.ready.co/',
|
|
18
|
+
},
|
|
19
|
+
properties: [
|
|
20
|
+
{
|
|
21
|
+
name: 'namespaces',
|
|
22
|
+
value: {
|
|
23
|
+
selection: 'multiple',
|
|
24
|
+
data: [
|
|
25
|
+
{
|
|
26
|
+
label: 'Ready',
|
|
27
|
+
value: 'Starknet',
|
|
28
|
+
id: 'STARKNET',
|
|
29
|
+
getSupportedChains: (allBlockchains: BlockchainMeta[]) =>
|
|
30
|
+
starknetBlockchain(allBlockchains),
|
|
31
|
+
},
|
|
32
|
+
],
|
|
33
|
+
},
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
name: 'signers',
|
|
37
|
+
value: { getSigners: async () => getSigners(getInstanceOrThrow()) },
|
|
38
|
+
},
|
|
39
|
+
],
|
|
40
|
+
};
|
package/src/mod.ts
ADDED
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import type { StarknetActions } from '@rango-dev/wallets-core/namespaces/starknet';
|
|
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/starknet';
|
|
9
|
+
|
|
10
|
+
import { starknetActions } from '../actions/starknet.js';
|
|
11
|
+
import { starknetBuilders } from '../builders/starknet.js';
|
|
12
|
+
import { WALLET_ID } from '../constants.js';
|
|
13
|
+
import { starknetReady } from '../utils.js';
|
|
14
|
+
|
|
15
|
+
const [changeAccountSubscriber, changeAccountCleanup] = starknetBuilders
|
|
16
|
+
.changeAccountSubscriber(starknetReady)
|
|
17
|
+
.build();
|
|
18
|
+
const connect = builders
|
|
19
|
+
.connect()
|
|
20
|
+
.action(starknetActions.connect(starknetReady))
|
|
21
|
+
.before(changeAccountSubscriber)
|
|
22
|
+
.or(changeAccountCleanup)
|
|
23
|
+
.or(standardizeAndThrowError)
|
|
24
|
+
.build();
|
|
25
|
+
|
|
26
|
+
const disconnect = commonBuilders
|
|
27
|
+
.disconnect<StarknetActions>()
|
|
28
|
+
.after(changeAccountCleanup)
|
|
29
|
+
.build();
|
|
30
|
+
|
|
31
|
+
const canEagerConnect = builders
|
|
32
|
+
.canEagerConnect()
|
|
33
|
+
.action(actions.canEagerConnect(starknetReady))
|
|
34
|
+
.build();
|
|
35
|
+
|
|
36
|
+
const starknet = new NamespaceBuilder<StarknetActions>('Starknet', WALLET_ID)
|
|
37
|
+
.action(connect)
|
|
38
|
+
.action(disconnect)
|
|
39
|
+
.action(canEagerConnect)
|
|
40
|
+
.build();
|
|
41
|
+
|
|
42
|
+
export { starknet };
|
package/src/provider.ts
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { ProviderBuilder } from '@rango-dev/wallets-core';
|
|
2
|
+
|
|
3
|
+
import { metadata, WALLET_ID } from './constants.js';
|
|
4
|
+
import { starknet } from './namespaces/starknet.js';
|
|
5
|
+
import { ready } from './utils.js';
|
|
6
|
+
|
|
7
|
+
const buildProvider = () =>
|
|
8
|
+
new ProviderBuilder(WALLET_ID)
|
|
9
|
+
.init(function (context) {
|
|
10
|
+
const [, setState] = context.state();
|
|
11
|
+
|
|
12
|
+
if (ready()) {
|
|
13
|
+
setState('installed', true);
|
|
14
|
+
console.debug('[ready] instance detected.', context);
|
|
15
|
+
}
|
|
16
|
+
})
|
|
17
|
+
.config('metadata', metadata)
|
|
18
|
+
.add('starknet', starknet)
|
|
19
|
+
.build();
|
|
20
|
+
|
|
21
|
+
export { buildProvider };
|
package/src/signer.ts
CHANGED
|
@@ -1,13 +1,28 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Provider } from './types.js';
|
|
2
2
|
import type { SignerFactory } from 'rango-types';
|
|
3
3
|
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
4
|
+
import { LegacyNetworks } from '@rango-dev/wallets-core/legacy';
|
|
5
|
+
import {
|
|
6
|
+
dynamicImportWithRefinedError,
|
|
7
|
+
getNetworkInstance,
|
|
8
|
+
} from '@rango-dev/wallets-shared';
|
|
9
|
+
import { DefaultSignerFactory, TransactionType } from 'rango-types';
|
|
6
10
|
|
|
7
11
|
export default async function getSigners(
|
|
8
|
-
provider:
|
|
12
|
+
provider: Provider
|
|
9
13
|
): Promise<SignerFactory> {
|
|
10
14
|
const signers = new DefaultSignerFactory();
|
|
11
|
-
|
|
15
|
+
const starknetProvider = getNetworkInstance(
|
|
16
|
+
provider,
|
|
17
|
+
LegacyNetworks.STARKNET
|
|
18
|
+
);
|
|
19
|
+
|
|
20
|
+
const { DefaultStarknetSigner } = await dynamicImportWithRefinedError(
|
|
21
|
+
async () => await import('@rango-dev/signer-starknet')
|
|
22
|
+
);
|
|
23
|
+
signers.registerSigner(
|
|
24
|
+
TransactionType.STARKNET,
|
|
25
|
+
new DefaultStarknetSigner(starknetProvider)
|
|
26
|
+
);
|
|
12
27
|
return signers;
|
|
13
28
|
}
|
package/src/types.ts
ADDED
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { LegacyNetworks } from '@rango-dev/wallets-core/legacy';
|
|
2
|
+
import type { ProviderAPI as StarknetProviderAPI } from '@rango-dev/wallets-core/namespaces/starknet';
|
|
3
|
+
|
|
4
|
+
export type ProviderObject = {
|
|
5
|
+
[LegacyNetworks.STARKNET]: StarknetProviderAPI;
|
|
6
|
+
};
|
|
7
|
+
export type Provider = Map<
|
|
8
|
+
keyof ProviderObject,
|
|
9
|
+
ProviderObject[keyof ProviderObject]
|
|
10
|
+
>;
|
package/src/utils.ts
ADDED
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import type { Provider } from './types.js';
|
|
2
|
+
import type { ProviderAPI as StarknetProviderAPI } from '@rango-dev/wallets-core/namespaces/starknet';
|
|
3
|
+
|
|
4
|
+
import { LegacyNetworks } from '@rango-dev/wallets-core/legacy';
|
|
5
|
+
|
|
6
|
+
export function ready(): Provider | null {
|
|
7
|
+
const instances: Provider = new Map();
|
|
8
|
+
const { starknet_argentX } = window;
|
|
9
|
+
|
|
10
|
+
if (!starknet_argentX) {
|
|
11
|
+
return null;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
instances.set(LegacyNetworks.STARKNET, starknet_argentX);
|
|
15
|
+
|
|
16
|
+
return instances;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
export function getInstanceOrThrow(): Provider {
|
|
20
|
+
const instances = ready();
|
|
21
|
+
|
|
22
|
+
if (!instances) {
|
|
23
|
+
throw new Error('Ready is not injected. Please check your wallet.');
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
return instances;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
export function starknetReady(): StarknetProviderAPI {
|
|
30
|
+
const instances = ready();
|
|
31
|
+
|
|
32
|
+
const evmInstance = instances?.get(LegacyNetworks.STARKNET);
|
|
33
|
+
|
|
34
|
+
if (!evmInstance) {
|
|
35
|
+
throw new Error(
|
|
36
|
+
'Ready not injected or Starknet not enabled. Please check your wallet.'
|
|
37
|
+
);
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
return evmInstance;
|
|
41
|
+
}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
{
|
|
2
|
+
// see https://www.typescriptlang.org/tsconfig to better understand tsconfigs
|
|
3
|
+
"extends": "../../tsconfig.libnext.json",
|
|
4
|
+
"include": ["src", "types", "../../global-wallets-env.d.ts"],
|
|
5
|
+
"compilerOptions": {
|
|
6
|
+
"outDir": "dist",
|
|
7
|
+
"rootDir": "./src",
|
|
8
|
+
"lib": ["dom", "esnext"]
|
|
9
|
+
// match output dir to input dir. e.g. dist/index instead of dist/src/index
|
|
10
|
+
}
|
|
11
|
+
}
|
package/tsconfig.json
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{ "extends": "./tsconfig.build.json", "include": ["src", "tests"] }
|
package/dist/helpers.d.ts
DELETED
package/dist/helpers.d.ts.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.d.ts","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,mBAAmB,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AACtD,wBAAgB,KAAK,QAMpB"}
|
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 { ready as readyInstances, type StarknetProviderAPI } from './helpers.js';
|
|
5
|
-
export declare const config: {
|
|
6
|
-
type: WalletTypes;
|
|
7
|
-
defaultNetwork: Networks;
|
|
8
|
-
};
|
|
9
|
-
export declare const getInstance: typeof readyInstances;
|
|
10
|
-
export declare const connect: Connect;
|
|
11
|
-
export declare const subscribe: Subscribe;
|
|
12
|
-
export declare const canSwitchNetworkTo: CanSwitchNetwork;
|
|
13
|
-
export declare const getSigners: (provider: StarknetProviderAPI) => 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,EACP,SAAS,EACT,UAAU,EACX,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjE,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,2BAA2B,CAAC;AAGlE,OAAO,EACL,KAAK,IAAI,cAAc,EACvB,KAAK,mBAAmB,EACzB,MAAM,cAAc,CAAC;AAatB,eAAO,MAAM,MAAM;;;CAGlB,CAAC;AAEF,eAAO,MAAM,WAAW,uBAAiB,CAAC;AAE1C,eAAO,MAAM,OAAO,EAAE,OAYrB,CAAC;AAEF,eAAO,MAAM,SAAS,EAAE,SAavB,CAAC;AAEF,eAAO,MAAM,kBAAkB,EAAE,gBAA8B,CAAC;AAEhE,eAAO,MAAM,UAAU,EAAE,CACvB,QAAQ,EAAE,mBAAmB,KAC1B,OAAO,CAAC,aAAa,CAAU,CAAC;AAErC,eAAO,MAAM,eAAe,EAAE,eACF,CAAC;AAE7B,eAAO,MAAM,aAAa,EAAE,CAAC,cAAc,EAAE,cAAc,EAAE,KAAK,UAmBjE,CAAC"}
|
package/dist/index.js
DELETED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
var l=Object.defineProperty;var r=(e,t)=>l(e,"name",{value:t,configurable:!0});import{Networks as n,WalletTypes as h}from"@rango-dev/wallets-shared";import{starknetBlockchain as m}from"rango-types";function i(){let{starknet_argentX:e}=window;return e||null}r(i,"ready");import{DefaultStarknetSigner as g}from"@rango-dev/signer-starknet";import{DefaultSignerFactory as p,TransactionType as d}from"rango-types";async function o(e){let t=new p;return t.registerSigner(d.STARKNET,new g(e)),t}r(o,"getSigners");var f=h.READY,y="SN_MAIN",N={type:f,defaultNetwork:n.STARKNET},P=i,R=r(async({instance:e})=>{let t;if(t=await e?.enable(),!t||!e.isConnected||t?.length===0)throw new Error("Error connecting Ready");if(e?.chainId!==y)throw new Error(`Please switch to Mainnet, current network is ${e?.chainId}`);return{accounts:t||[],chainId:n.STARKNET}},"connect"),v=r(({instance:e,state:t,updateAccounts:c})=>{let a=r(s=>{t.connected&&e&&c(s,n.STARKNET)},"handleAccountsChanged");return e?.on?.("accountsChanged",a),()=>{e?.off?.("accountsChanged",a)}},"subscribe"),F=r(()=>!1,"canSwitchNetworkTo"),B=o,M=r(({instance:e})=>e.isPreauthorized(),"canEagerConnect"),D=r(e=>{let t=m(e);return{name:"Ready",img:"https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/argentx/icon.svg",installLink:{CHROME:"https://chromewebstore.google.com/detail/ready-wallet-formerly-arg/dlcobpjiigpikoobohmabehhmhfoodbb",BRAVE:"https://chromewebstore.google.com/detail/ready-wallet-formerly-arg/dlcobpjiigpikoobohmabehhmhfoodbb",FIREFOX:"https://addons.mozilla.org/en-GB/firefox/addon/argent-x",DEFAULT:"https://www.ready.co/"},color:"#96e7ed",supportedChains:t}},"getWalletInfo");export{M as canEagerConnect,F as canSwitchNetworkTo,N as config,R as connect,P as getInstance,B as getSigners,D 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 Subscribe,\n WalletInfo,\n} from '@rango-dev/wallets-shared';\nimport type { BlockchainMeta, SignerFactory } from 'rango-types';\n\nimport { Networks, WalletTypes } from '@rango-dev/wallets-shared';\nimport { starknetBlockchain } from 'rango-types';\n\nimport {\n ready as readyInstances,\n type StarknetProviderAPI,\n} from './helpers.js';\nimport signer from './signer.js';\n\n/*\n * https://www.starknetjs.com/docs/API/signer\n * https://github.com/apibara/starknet-react\n * https://github.com/0xs34n/starknet.js\n * https://github.com/argentlabs/argent-x#-usage-with-your-dapp\n */\n\nconst WALLET = WalletTypes.READY;\nconst MAINNET_CHAIN_ID = 'SN_MAIN';\n\nexport const config = {\n type: WALLET,\n defaultNetwork: Networks.STARKNET,\n};\n\nexport const getInstance = readyInstances;\n\nexport const connect: Connect = async ({ instance }) => {\n let r = undefined;\n r = await instance?.enable();\n if (!r || !instance.isConnected || r?.length === 0) {\n throw new Error('Error connecting Ready');\n }\n if (instance?.chainId !== MAINNET_CHAIN_ID) {\n throw new Error(\n `Please switch to Mainnet, current network is ${instance?.chainId}`\n );\n }\n return { accounts: r ? r : [], chainId: Networks.STARKNET };\n};\n\nexport const subscribe: Subscribe = ({ instance, state, updateAccounts }) => {\n const handleAccountsChanged = (accounts: string[]) => {\n if (state.connected) {\n if (instance) {\n updateAccounts(accounts, Networks.STARKNET);\n }\n }\n };\n instance?.on?.('accountsChanged', handleAccountsChanged);\n\n return () => {\n instance?.off?.('accountsChanged', handleAccountsChanged);\n };\n};\n\nexport const canSwitchNetworkTo: CanSwitchNetwork = () => false;\n\nexport const getSigners: (\n provider: StarknetProviderAPI\n) => Promise<SignerFactory> = signer;\n\nexport const canEagerConnect: CanEagerConnect = ({ instance }) =>\n instance.isPreauthorized();\n\nexport const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo = (\n allBlockChains\n) => {\n const starknet = starknetBlockchain(allBlockChains);\n return {\n name: 'Ready',\n img: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/argentx/icon.svg',\n installLink: {\n CHROME:\n 'https://chromewebstore.google.com/detail/ready-wallet-formerly-arg/dlcobpjiigpikoobohmabehhmhfoodbb',\n BRAVE:\n 'https://chromewebstore.google.com/detail/ready-wallet-formerly-arg/dlcobpjiigpikoobohmabehhmhfoodbb',\n FIREFOX: 'https://addons.mozilla.org/en-GB/firefox/addon/argent-x',\n DEFAULT: 'https://www.ready.co/',\n },\n\n color: '#96e7ed',\n supportedChains: starknet,\n };\n};\n", "// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type StarknetProviderAPI = Record<string, any>;\nexport function ready() {\n const { starknet_argentX } = window;\n if (!!starknet_argentX) {\n return starknet_argentX;\n }\n return null;\n}\n", "import type { StarknetProviderAPI } from './helpers.js';\nimport type { SignerFactory } from 'rango-types';\n\nimport { DefaultStarknetSigner } from '@rango-dev/signer-starknet';\nimport { DefaultSignerFactory, TransactionType as TxType } from 'rango-types';\n\nexport default async function getSigners(\n provider: StarknetProviderAPI\n): Promise<SignerFactory> {\n const signers = new DefaultSignerFactory();\n signers.registerSigner(TxType.STARKNET, new DefaultStarknetSigner(provider));\n return signers;\n}\n"],
|
|
5
|
-
"mappings": "+EASA,OAAS,YAAAA,EAAU,eAAAC,MAAmB,4BACtC,OAAS,sBAAAC,MAA0B,cCR5B,SAASC,GAAQ,CACtB,GAAM,CAAE,iBAAAC,CAAiB,EAAI,OAC7B,OAAMA,GAGC,IACT,CANgBC,EAAAF,EAAA,SCChB,OAAS,yBAAAG,MAA6B,6BACtC,OAAS,wBAAAC,EAAsB,mBAAmBC,MAAc,cAEhE,eAAOC,EACLC,EACwB,CACxB,IAAMC,EAAU,IAAIC,EACpB,OAAAD,EAAQ,eAAeE,EAAO,SAAU,IAAIC,EAAsBJ,CAAQ,CAAC,EACpEC,CACT,CAN8BI,EAAAN,EAAA,cFmB9B,IAAMO,EAASC,EAAY,MACrBC,EAAmB,UAEZC,EAAS,CACpB,KAAMH,EACN,eAAgBI,EAAS,QAC3B,EAEaC,EAAcC,EAEdC,EAAmBC,EAAA,MAAO,CAAE,SAAAC,CAAS,IAAM,CACtD,IAAIC,EAEJ,GADAA,EAAI,MAAMD,GAAU,OAAO,EACvB,CAACC,GAAK,CAACD,EAAS,aAAeC,GAAG,SAAW,EAC/C,MAAM,IAAI,MAAM,wBAAwB,EAE1C,GAAID,GAAU,UAAYP,EACxB,MAAM,IAAI,MACR,gDAAgDO,GAAU,OAAO,EACnE,EAEF,MAAO,CAAE,SAAUC,GAAQ,CAAC,EAAG,QAASN,EAAS,QAAS,CAC5D,EAZgC,WAcnBO,EAAuBH,EAAA,CAAC,CAAE,SAAAC,EAAU,MAAAG,EAAO,eAAAC,CAAe,IAAM,CAC3E,IAAMC,EAAwBN,EAACO,GAAuB,CAChDH,EAAM,WACJH,GACFI,EAAeE,EAAUX,EAAS,QAAQ,CAGhD,EAN8B,yBAO9B,OAAAK,GAAU,KAAK,kBAAmBK,CAAqB,EAEhD,IAAM,CACXL,GAAU,MAAM,kBAAmBK,CAAqB,CAC1D,CACF,EAboC,aAevBE,EAAuCR,EAAA,IAAM,GAAN,sBAEvCS,EAEiBA,EAEjBC,EAAmCV,EAAA,CAAC,CAAE,SAAAC,CAAS,IAC1DA,EAAS,gBAAgB,EADqB,mBAGnCU,EAAkEX,EAC7EY,GACG,CACH,IAAMC,EAAWC,EAAmBF,CAAc,EAClD,MAAO,CACL,KAAM,QACN,IAAK,wFACL,YAAa,CACX,OACE,sGACF,MACE,sGACF,QAAS,0DACT,QAAS,uBACX,EAEA,MAAO,UACP,gBAAiBC,CACnB,CACF,EAnB+E",
|
|
6
|
-
"names": ["Networks", "WalletTypes", "starknetBlockchain", "ready", "starknet_argentX", "__name", "DefaultStarknetSigner", "DefaultSignerFactory", "TxType", "getSigners", "provider", "signers", "DefaultSignerFactory", "TxType", "DefaultStarknetSigner", "__name", "WALLET", "WalletTypes", "MAINNET_CHAIN_ID", "config", "Networks", "getInstance", "ready", "connect", "__name", "instance", "r", "subscribe", "state", "updateAccounts", "handleAccountsChanged", "accounts", "canSwitchNetworkTo", "getSigners", "canEagerConnect", "getWalletInfo", "allBlockChains", "starknet", "starknetBlockchain"]
|
|
7
|
-
}
|
package/src/helpers.ts
DELETED
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
2
|
-
export type StarknetProviderAPI = Record<string, any>;
|
|
3
|
-
export function ready() {
|
|
4
|
-
const { starknet_argentX } = window;
|
|
5
|
-
if (!!starknet_argentX) {
|
|
6
|
-
return starknet_argentX;
|
|
7
|
-
}
|
|
8
|
-
return null;
|
|
9
|
-
}
|
package/src/index.ts
DELETED
|
@@ -1,93 +0,0 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
CanEagerConnect,
|
|
3
|
-
CanSwitchNetwork,
|
|
4
|
-
Connect,
|
|
5
|
-
Subscribe,
|
|
6
|
-
WalletInfo,
|
|
7
|
-
} from '@rango-dev/wallets-shared';
|
|
8
|
-
import type { BlockchainMeta, SignerFactory } from 'rango-types';
|
|
9
|
-
|
|
10
|
-
import { Networks, WalletTypes } from '@rango-dev/wallets-shared';
|
|
11
|
-
import { starknetBlockchain } from 'rango-types';
|
|
12
|
-
|
|
13
|
-
import {
|
|
14
|
-
ready as readyInstances,
|
|
15
|
-
type StarknetProviderAPI,
|
|
16
|
-
} from './helpers.js';
|
|
17
|
-
import signer from './signer.js';
|
|
18
|
-
|
|
19
|
-
/*
|
|
20
|
-
* https://www.starknetjs.com/docs/API/signer
|
|
21
|
-
* https://github.com/apibara/starknet-react
|
|
22
|
-
* https://github.com/0xs34n/starknet.js
|
|
23
|
-
* https://github.com/argentlabs/argent-x#-usage-with-your-dapp
|
|
24
|
-
*/
|
|
25
|
-
|
|
26
|
-
const WALLET = WalletTypes.READY;
|
|
27
|
-
const MAINNET_CHAIN_ID = 'SN_MAIN';
|
|
28
|
-
|
|
29
|
-
export const config = {
|
|
30
|
-
type: WALLET,
|
|
31
|
-
defaultNetwork: Networks.STARKNET,
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
export const getInstance = readyInstances;
|
|
35
|
-
|
|
36
|
-
export const connect: Connect = async ({ instance }) => {
|
|
37
|
-
let r = undefined;
|
|
38
|
-
r = await instance?.enable();
|
|
39
|
-
if (!r || !instance.isConnected || r?.length === 0) {
|
|
40
|
-
throw new Error('Error connecting Ready');
|
|
41
|
-
}
|
|
42
|
-
if (instance?.chainId !== MAINNET_CHAIN_ID) {
|
|
43
|
-
throw new Error(
|
|
44
|
-
`Please switch to Mainnet, current network is ${instance?.chainId}`
|
|
45
|
-
);
|
|
46
|
-
}
|
|
47
|
-
return { accounts: r ? r : [], chainId: Networks.STARKNET };
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
export const subscribe: Subscribe = ({ instance, state, updateAccounts }) => {
|
|
51
|
-
const handleAccountsChanged = (accounts: string[]) => {
|
|
52
|
-
if (state.connected) {
|
|
53
|
-
if (instance) {
|
|
54
|
-
updateAccounts(accounts, Networks.STARKNET);
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
};
|
|
58
|
-
instance?.on?.('accountsChanged', handleAccountsChanged);
|
|
59
|
-
|
|
60
|
-
return () => {
|
|
61
|
-
instance?.off?.('accountsChanged', handleAccountsChanged);
|
|
62
|
-
};
|
|
63
|
-
};
|
|
64
|
-
|
|
65
|
-
export const canSwitchNetworkTo: CanSwitchNetwork = () => false;
|
|
66
|
-
|
|
67
|
-
export const getSigners: (
|
|
68
|
-
provider: StarknetProviderAPI
|
|
69
|
-
) => Promise<SignerFactory> = signer;
|
|
70
|
-
|
|
71
|
-
export const canEagerConnect: CanEagerConnect = ({ instance }) =>
|
|
72
|
-
instance.isPreauthorized();
|
|
73
|
-
|
|
74
|
-
export const getWalletInfo: (allBlockChains: BlockchainMeta[]) => WalletInfo = (
|
|
75
|
-
allBlockChains
|
|
76
|
-
) => {
|
|
77
|
-
const starknet = starknetBlockchain(allBlockChains);
|
|
78
|
-
return {
|
|
79
|
-
name: 'Ready',
|
|
80
|
-
img: 'https://raw.githubusercontent.com/rango-exchange/assets/main/wallets/argentx/icon.svg',
|
|
81
|
-
installLink: {
|
|
82
|
-
CHROME:
|
|
83
|
-
'https://chromewebstore.google.com/detail/ready-wallet-formerly-arg/dlcobpjiigpikoobohmabehhmhfoodbb',
|
|
84
|
-
BRAVE:
|
|
85
|
-
'https://chromewebstore.google.com/detail/ready-wallet-formerly-arg/dlcobpjiigpikoobohmabehhmhfoodbb',
|
|
86
|
-
FIREFOX: 'https://addons.mozilla.org/en-GB/firefox/addon/argent-x',
|
|
87
|
-
DEFAULT: 'https://www.ready.co/',
|
|
88
|
-
},
|
|
89
|
-
|
|
90
|
-
color: '#96e7ed',
|
|
91
|
-
supportedChains: starknet,
|
|
92
|
-
};
|
|
93
|
-
};
|