@rango-dev/wallets-core 0.40.1-next.9 → 0.41.1-next.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/CHANGELOG.md +20 -0
- package/dist/hub/store/events.d.ts +54 -0
- package/dist/hub/store/events.d.ts.map +1 -0
- package/dist/hub/store/extend.d.ts +14 -0
- package/dist/hub/store/extend.d.ts.map +1 -0
- package/dist/hub/store/mod.d.ts +3 -1
- package/dist/hub/store/mod.d.ts.map +1 -1
- package/dist/hub/store/mod.js +2 -0
- package/dist/hub/store/mod.js.map +7 -0
- package/dist/hub/store/namespaces.d.ts +10 -7
- package/dist/hub/store/namespaces.d.ts.map +1 -1
- package/dist/hub/store/providers.d.ts +9 -5
- package/dist/hub/store/providers.d.ts.map +1 -1
- package/dist/hub/store/store.d.ts +2 -1
- package/dist/hub/store/store.d.ts.map +1 -1
- package/dist/legacy/mod.js +1 -1
- package/dist/legacy/mod.js.map +2 -2
- package/dist/legacy/types.d.ts +19 -15
- package/dist/legacy/types.d.ts.map +1 -1
- package/dist/legacy/wallet.d.ts +5 -3
- package/dist/legacy/wallet.d.ts.map +1 -1
- package/dist/mod.js +1 -1
- package/dist/mod.js.map +4 -4
- package/dist/namespaces/common/mod.js +1 -1
- package/dist/namespaces/common/mod.js.map +1 -1
- package/dist/namespaces/evm/builders.d.ts.map +1 -1
- package/dist/namespaces/evm/mod.js +1 -1
- package/dist/namespaces/evm/mod.js.map +3 -3
- package/dist/namespaces/solana/builders.d.ts.map +1 -1
- package/dist/namespaces/solana/mod.js +1 -1
- package/dist/namespaces/solana/mod.js.map +3 -3
- package/dist/wallets-core.build.json +1 -1
- package/package.json +8 -4
- package/src/hub/store/events.ts +89 -0
- package/src/hub/store/extend.ts +125 -0
- package/src/hub/store/mod.ts +14 -1
- package/src/hub/store/namespaces.ts +102 -19
- package/src/hub/store/providers.ts +33 -9
- package/src/hub/store/store.test.ts +1 -1
- package/src/hub/store/store.ts +6 -2
- package/src/legacy/types.ts +26 -17
- package/src/legacy/wallet.ts +12 -6
- package/src/namespaces/evm/builders.ts +6 -2
- package/src/namespaces/solana/builders.ts +6 -2
package/dist/legacy/types.d.ts
CHANGED
|
@@ -59,8 +59,10 @@ export declare enum Networks {
|
|
|
59
59
|
UMEE = "UMEE",
|
|
60
60
|
STARKNET = "STARKNET",
|
|
61
61
|
TON = "TON",
|
|
62
|
+
BASE = "BASE",
|
|
62
63
|
Unknown = "Unkown"
|
|
63
64
|
}
|
|
65
|
+
type InstanceType = any;
|
|
64
66
|
export type NamespaceData = {
|
|
65
67
|
namespace: Namespace;
|
|
66
68
|
derivationPath?: string;
|
|
@@ -115,10 +117,10 @@ export type State = {
|
|
|
115
117
|
export type ConnectResult = {
|
|
116
118
|
accounts: string[] | null;
|
|
117
119
|
network: Network | null;
|
|
118
|
-
provider:
|
|
120
|
+
provider: InstanceType;
|
|
119
121
|
};
|
|
120
122
|
export type Providers = {
|
|
121
|
-
[type in WalletType]?:
|
|
123
|
+
[type in WalletType]?: InstanceType;
|
|
122
124
|
};
|
|
123
125
|
export declare enum Events {
|
|
124
126
|
CONNECTED = "connected",
|
|
@@ -126,7 +128,9 @@ export declare enum Events {
|
|
|
126
128
|
REACHABLE = "reachable",
|
|
127
129
|
INSTALLED = "installed",
|
|
128
130
|
ACCOUNTS = "accounts",
|
|
129
|
-
NETWORK = "network"
|
|
131
|
+
NETWORK = "network",
|
|
132
|
+
NAMESPACE_DISCONNECTED = "namespace_disconnected",
|
|
133
|
+
PROVIDER_DISCONNECTED = "provider_disconnected"
|
|
130
134
|
}
|
|
131
135
|
export type ProviderConnectResult = {
|
|
132
136
|
accounts: string[];
|
|
@@ -134,7 +138,7 @@ export type ProviderConnectResult = {
|
|
|
134
138
|
};
|
|
135
139
|
export type GetInstanceOptions = {
|
|
136
140
|
network?: Network;
|
|
137
|
-
currentProvider:
|
|
141
|
+
currentProvider: InstanceType;
|
|
138
142
|
meta: BlockchainMeta[];
|
|
139
143
|
getState: () => WalletState;
|
|
140
144
|
/**
|
|
@@ -146,21 +150,21 @@ export type GetInstanceOptions = {
|
|
|
146
150
|
force?: boolean;
|
|
147
151
|
updateChainId: (chainId: number | string) => void;
|
|
148
152
|
};
|
|
149
|
-
export type GetInstance = (() =>
|
|
150
|
-
export type TryGetInstance = (() =>
|
|
153
|
+
export type GetInstance = (() => InstanceType) | ((options: GetInstanceOptions) => Promise<InstanceType>);
|
|
154
|
+
export type TryGetInstance = (() => InstanceType) | ((options: Pick<GetInstanceOptions, 'force' | 'network'>) => Promise<InstanceType>);
|
|
151
155
|
export type Connect = (options: {
|
|
152
|
-
instance:
|
|
156
|
+
instance: InstanceType;
|
|
153
157
|
network?: Network;
|
|
154
158
|
meta: BlockchainMeta[];
|
|
155
159
|
namespaces?: NamespaceData[];
|
|
156
160
|
}) => Promise<ProviderConnectResult | ProviderConnectResult[]>;
|
|
157
161
|
export type Disconnect = (options: {
|
|
158
|
-
instance:
|
|
162
|
+
instance: InstanceType;
|
|
159
163
|
destroyInstance: () => void;
|
|
160
164
|
}) => Promise<void>;
|
|
161
165
|
type CleanupSubscribe = () => void;
|
|
162
166
|
export type Subscribe = (options: {
|
|
163
|
-
instance:
|
|
167
|
+
instance: InstanceType;
|
|
164
168
|
state: WalletState;
|
|
165
169
|
meta: BlockchainMeta[];
|
|
166
170
|
updateChainId: (chainId: string) => void;
|
|
@@ -169,7 +173,7 @@ export type Subscribe = (options: {
|
|
|
169
173
|
disconnect: () => void;
|
|
170
174
|
}) => CleanupSubscribe | void;
|
|
171
175
|
export type SwitchNetwork = (options: {
|
|
172
|
-
instance:
|
|
176
|
+
instance: InstanceType;
|
|
173
177
|
network: Network;
|
|
174
178
|
meta: BlockchainMeta[];
|
|
175
179
|
newInstance?: TryGetInstance;
|
|
@@ -177,17 +181,17 @@ export type SwitchNetwork = (options: {
|
|
|
177
181
|
updateChainId: (chainId: string) => void;
|
|
178
182
|
}) => Promise<void>;
|
|
179
183
|
export type Suggest = (options: {
|
|
180
|
-
instance:
|
|
184
|
+
instance: InstanceType;
|
|
181
185
|
network: Network;
|
|
182
186
|
meta: BlockchainMeta[];
|
|
183
187
|
}) => Promise<void>;
|
|
184
188
|
export type CanSwitchNetwork = (options: {
|
|
185
189
|
network: Network;
|
|
186
190
|
meta: BlockchainMeta[];
|
|
187
|
-
provider:
|
|
191
|
+
provider: InstanceType;
|
|
188
192
|
}) => boolean;
|
|
189
193
|
export type CanEagerConnect = (options: {
|
|
190
|
-
instance:
|
|
194
|
+
instance: InstanceType;
|
|
191
195
|
meta: BlockchainMeta[];
|
|
192
196
|
}) => Promise<boolean>;
|
|
193
197
|
export type EagerConnectResult<I = unknown> = {
|
|
@@ -197,12 +201,12 @@ export type EagerConnectResult<I = unknown> = {
|
|
|
197
201
|
};
|
|
198
202
|
export interface WalletActions {
|
|
199
203
|
connect: Connect;
|
|
200
|
-
getInstance:
|
|
204
|
+
getInstance: InstanceType;
|
|
201
205
|
disconnect?: Disconnect;
|
|
202
206
|
subscribe?: Subscribe;
|
|
203
207
|
suggest?: Suggest;
|
|
204
208
|
switchNetwork?: SwitchNetwork;
|
|
205
|
-
getSigners: (provider:
|
|
209
|
+
getSigners: (provider: InstanceType) => Promise<SignerFactory>;
|
|
206
210
|
canSwitchNetworkTo?: CanSwitchNetwork;
|
|
207
211
|
canEagerConnect?: CanEagerConnect;
|
|
208
212
|
getWalletInfo(allBlockChains: BlockchainMeta[]): WalletInfo;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/legacy/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,IAAI,WAAW,EAAE,MAAM,aAAa,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,KAAK,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAEjE,oBAAY,QAAQ;IAClB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,SAAS,SAAS;IAClB,GAAG,QAAQ;IACX,OAAO,QAAQ;IACf,QAAQ,QAAQ;IAChB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,QAAQ,KAAK;IACb,IAAI,SAAS;IACb,IAAI,SAAS;IACb,OAAO,YAAY;IACnB,WAAW,gBAAgB;IAC3B,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,IAAI,SAAS;IACb,KAAK,UAAU;IACf,IAAI,SAAS;IACb,WAAW,gBAAgB;IAC3B,QAAQ,aAAa;IACrB,KAAK,UAAU;IACf,UAAU,eAAe;IACzB,GAAG,QAAQ;IACX,SAAS,cAAc;IACvB,IAAI,SAAS;IACb,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,MAAM,WAAW;IACjB,SAAS,cAAc;IACvB,UAAU,eAAe;IACzB,SAAS,cAAc;IACvB,MAAM,WAAW;IACjB,OAAO,YAAY;IACnB,EAAE,OAAO;IACT,QAAQ,aAAa;IACrB,aAAa,kBAAkB;IAC/B,IAAI,SAAS;IACb,QAAQ,aAAa;IACrB,GAAG,QAAQ;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/legacy/types.ts"],"names":[],"mappings":"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"}
|
package/dist/legacy/wallet.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { EagerConnectResult, NamespaceData, Network, WalletActions, WalletConfig, WalletType } from './types.js';
|
|
2
|
+
import type { Namespace } from '../namespaces/common/types.js';
|
|
2
3
|
import type { BlockchainMeta } from 'rango-types';
|
|
3
4
|
import { Events } from './types.js';
|
|
4
5
|
export type EventHandler = (type: WalletType, event: Events, value: any, coreState: State, info: EventInfo) => void;
|
|
@@ -6,6 +7,7 @@ export type EventInfo = {
|
|
|
6
7
|
supportedBlockchains: BlockchainMeta[];
|
|
7
8
|
isContractWallet: boolean;
|
|
8
9
|
isHub: boolean;
|
|
10
|
+
namespace?: Namespace;
|
|
9
11
|
};
|
|
10
12
|
export interface State {
|
|
11
13
|
connected: boolean;
|
|
@@ -42,11 +44,11 @@ declare class Wallet<InstanceType = any> {
|
|
|
42
44
|
}>;
|
|
43
45
|
disconnect(): Promise<void>;
|
|
44
46
|
eagerConnect(): Promise<EagerConnectResult<InstanceType>>;
|
|
45
|
-
getSigners(provider:
|
|
47
|
+
getSigners(provider: InstanceType): Promise<import("rango-types").SignerFactory>;
|
|
46
48
|
getWalletInfo(allBlockChains: BlockchainMeta[]): import("./types.js").WalletInfo;
|
|
47
|
-
canSwitchNetworkTo(network: Network, provider:
|
|
49
|
+
canSwitchNetworkTo(network: Network, provider: InstanceType): boolean;
|
|
48
50
|
onInit(): void;
|
|
49
|
-
setProvider(value:
|
|
51
|
+
setProvider(value: InstanceType | null): void;
|
|
50
52
|
setInfo(info: Partial<EventInfo>): void;
|
|
51
53
|
setHandler(handler: EventHandler): void;
|
|
52
54
|
getState(): State;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/legacy/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAElB,aAAa,EACb,OAAO,EACP,aAAa,EACb,YAAY,EACZ,UAAU,EACX,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAOlD,OAAO,EAAE,MAAM,EAAY,MAAM,YAAY,CAAC;AAG9C,MAAM,MAAM,YAAY,GAAG,CACzB,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"wallet.d.ts","sourceRoot":"","sources":["../../src/legacy/wallet.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAElB,aAAa,EACb,OAAO,EACP,aAAa,EACb,YAAY,EACZ,UAAU,EACX,MAAM,YAAY,CAAC;AACpB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+BAA+B,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAOlD,OAAO,EAAE,MAAM,EAAY,MAAM,YAAY,CAAC;AAG9C,MAAM,MAAM,YAAY,GAAG,CACzB,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,MAAM,EAEb,KAAK,EAAE,GAAG,EACV,SAAS,EAAE,KAAK,EAChB,IAAI,EAAE,SAAS,KACZ,IAAI,CAAC;AAEV,MAAM,MAAM,SAAS,GAAG;IACtB,oBAAoB,EAAE,cAAc,EAAE,CAAC;IACvC,gBAAgB,EAAE,OAAO,CAAC;IAG1B,KAAK,EAAE,OAAO,CAAC;IAEf,SAAS,CAAC,EAAE,SAAS,CAAC;CACvB,CAAC;AAEF,MAAM,WAAW,KAAK;IACpB,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,OAAO,CAAC;IACpB;;OAEG;IACH,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;IACnB,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1B,OAAO,EAAE,OAAO,GAAG,IAAI,CAAC;CACzB;AAED,MAAM,WAAW,OAAO;IACtB,MAAM,EAAE,YAAY,CAAC;IACrB,OAAO,EAAE,YAAY,CAAC;CACvB;AAGD,cAAM,MAAM,CAAC,YAAY,GAAG,GAAG;IACtB,QAAQ,EAAE,YAAY,GAAG,IAAI,CAAC;IACrC,OAAO,CAAC,OAAO,CAAgB;IAC/B,OAAO,CAAC,KAAK,CAAQ;IACrB,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,IAAI,CAAY;IACxB,OAAO,CAAC,gBAAgB,CAAC,CAAsB;gBAEnC,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,aAAa;IAwB9C,iBAAiB,CAAC,OAAO,EAAE,OAAO;;;;;IAWlC,OAAO,CAAC,OAAO,CAAC,EAAE,OAAO,EAAE,UAAU,CAAC,EAAE,aAAa,EAAE;;;;;IAqKvD,UAAU;IAeV,YAAY,IAAI,OAAO,CAAC,kBAAkB,CAAC,YAAY,CAAC,CAAC;IA0BzD,UAAU,CAAC,QAAQ,EAAE,YAAY;IAGvC,aAAa,CAAC,cAAc,EAAE,cAAc,EAAE;IAG9C,kBAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAE,YAAY;IAa3D,MAAM;IAsBN,WAAW,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;IAkCtC,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,SAAS,CAAC;IAShC,UAAU,CAAC,OAAO,EAAE,YAAY;IAIhC,QAAQ,IAAI,KAAK;IAIjB,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC;IAiDlC,UAAU;YAUI,sBAAsB;IAmBpC,OAAO,CAAC,aAAa;IAUrB,OAAO,CAAC,cAAc;YAUR,cAAc;CA2C7B;AAED,eAAe,MAAM,CAAC"}
|
package/dist/mod.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var O=Object.defineProperty;var i=(n,e)=>O(n,"name",{value:e,configurable:!0});function b(n){return n.constructor.name==="AsyncFunction"}i(b,"isAsync");function f(n,e){return`${n}$$${e}`}i(f,"generateStoreId");var h=i(n=>`Couldn't find "${n}" action. Are you sure you've added the action?`,"ACTION_NOT_FOUND_ERROR"),C=i(n=>`An error occurred during running ${n}`,"OR_ELSE_ACTION_FAILED_ERROR"),P="For setup store, you should set `store` first.";var p=class{static{i(this,"Namespace")}namespaceId;providerId;#e;#r=new Map;#s=new Map;#t=new Map;#o=new Map;#n=!1;#i;#c;constructor(e,t,r){let{configs:o,actions:s}=r;this.namespaceId=e,this.providerId=t,this.#c=o||new Map,this.#e=s,r.store&&this.store(r.store)}init(){if(this.#n)return;let e=this.#e.get("init");e&&e(this.#a()),this.#n=!0}state(){let e=this.#i;if(!e)throw new Error("You need to set your store using `.store` method first.");let t=this.#h();return[i(s=>{let a=e.getState().namespaces.getNamespaceData(t);return s?a[s]:a},"getState"),i((s,a)=>{e.getState().namespaces.updateStatus(t,s,a)},"setState")]}store(e){return this.#i&&console.warn("You've already set an store for your Namespace. Old store will be replaced by the new one."),this.#i=e,this.#y(),this}and_then(e,t){let r=this.#r.get(e)||[];return this.#r.set(e,r.concat(t)),this}or_else(e,t){let r=this.#s.get(e)||[];return this.#s.set(e,r.concat(t)),this}after(e,t,r){let o=this.#o.get(e)||[],s={hook:t,options:{context:r?.context}};return this.#o.set(e,o.concat(s)),this}before(e,t,r){let o=this.#t.get(e)||[],s={hook:t,options:{context:r?.context}};return this.#t.set(e,o.concat(s)),this}run(e,...t){let r=this.#e.get(e);if(!r)throw new Error(h(e.toString()));return b(r)?this.#l(e,t):this.#p(e,t)}#p(e,t){this.#u(e);let r=this.#e.get(e);if(!r)throw new Error(h(e.toString()));let o=this.#a(),s;try{s=r(o,...t),s=this.#m(e,s)}catch(a){s=this.#f(e,a)}finally{this.#d(e)}return s}async#l(e,t){this.#u(e);let r=this.#e.get(e);if(!r)throw new Error(h(e.toString()));let o=this.#a();return await r(o,...t).then(s=>this.#m(e,s)).catch(s=>this.#f(e,s)).finally(()=>this.#d(e))}#d(e){let t=this.#o.get(e);t&&t.forEach(r=>{let o=r.options?.context||this.#a();r.hook(o)})}#u(e){let t=this.#t.get(e);t&&t.forEach(r=>{let o=r.options?.context||this.#a();r.hook(o)})}#m(e,t){let r=this.#r.get(e);if(r){let o=this.#a();t=r.reduce((s,a)=>a(o,s),t)}return t}#f(e,t){let r=this.#s.get(e);if(r)try{let o=this.#a();return r.reduce((s,a)=>a(o,s),t)}catch{let s=C(`${e.toString()} for ${this.namespaceId} namespace.`);throw new Error(s,{cause:t})}else throw t}#y(){let e=this.#i;if(!e)throw new Error(P);let t=this.#h();e.getState().namespaces.addNamespace(t,{namespaceId:this.namespaceId,providerId:this.providerId})}#h(){return f(this.providerId,this.namespaceId)}#a(){return{state:this.state.bind(this),action:this.run.bind(this)}}};var E="1.0",d=class{static{i(this,"Provider")}id;version=E;#e;#r=!1;#s={};#t;#o;constructor(e,t,r,o){this.id=e,this.#o=r,this.#s=o?.extendInternalActions||{},this.#e=t,o?.store&&(this.#t=o.store,this.#i())}init(){if(this.#r)return;let e=this.#s.init;e&&e(this.#c()),this.#r=!0}state(){let e=this.#t;if(!e)throw new Error(`Any store detected for ${this.id}. You need to set your store using '.store' method first.`);return[i(o=>{let s=e.getState().providers.guessNamespacesState(this.id);if(!o)return s;switch(o){case"installed":case"connected":case"connecting":return s[o];default:throw new Error("Unhandled state for provider")}},"getState"),i((o,s)=>{switch(o){case"installed":return e.getState().providers.updateStatus(this.id,o,s);default:throw new Error(`Unhandled state update for provider. (provider id: ${this.id}, state name: ${o})`)}},"setState")]}store(e){return this.#t&&console.warn("You've already set an store for your Provider. Old store will be replaced by the new one."),this.#t=e,this.#i(),this}info(){let e=this.#t;if(!e)throw new Error("You need to set your store using `.store` method first.");return e.getState().providers.list[this.id].config.info}getAll(){return this.#e}get(e){return this.#e.get(e)}findByNamespace(e){let t;return this.#e.forEach(r=>{r.namespaceId===e&&(t=r)}),t}before(e,t){return this.#n("before",e,t),this}after(e,t){return this.#n("after",e,t),this}#n(e,t,r){let o={state:this.state.bind(this)};return this.#e.forEach(s=>{if(e==="after")s.after(t,r,{context:o});else if(e==="before")s.before(t,r,{context:o});else throw new Error(`You hook name is invalid: ${e}`)}),this}#i(){let e=this.#t;if(!e)throw new Error("For setup store, you should set `store` first.");e.getState().providers.addProvider(this.id,this.#o),this.#e.forEach(t=>{t.store(e)})}#c(){return{state:this.state.bind(this)}}};var l=class{static{i(this,"Hub")}#e=new Map;#r;constructor(e){this.#r=e??{}}init(){this.runAll("init")}runAll(e){let t=[],r=this.#e.values();for(let o of r){let s={id:o.id,provider:void 0,namespaces:[]},a=o[e];typeof a=="function"&&(s.provider=a.call(o));let c=o.getAll().values();for(let K of c){let v=K[e];if(typeof v=="function"){let I=v();s.namespaces.push(I)}}t.push(s)}return t}add(e,t){return this.#r.store&&t.store(this.#r.store),this.#e.set(e,t),this}get(e){return this.#e.get(e)}getAll(){return this.#e}state(){let e=this.runAll("state"),t={};return e.forEach(r=>{let o=[];r.namespaces.forEach(a=>{let[c]=a;o.push(c())});let[s]=r.provider;t[r.id]={...s()||{},namespaces:o}}),t}};function u(n,e){let t=n.namespaces.list,r=Object.keys(t).filter(c=>t[c].info.providerId===e),o=n.providers.list[e].data.installed,s=r.length>0?r.some(c=>t[c].data.connected):!1,a=r.length>0?r.some(c=>t[c].data.connecting):!1;return{installed:o,connected:s,connecting:a}}i(u,"guessProviderStateSelector");function m(n,e){return n.namespaces.list[e].data}i(m,"namespaceStateSelector");import{createStore as F}from"zustand/vanilla";var N=i(()=>({config:{}}),"hubStore");import{produce as A}from"immer";var w=i((n,e)=>({list:{},addNamespace:(t,r)=>{let o={data:{accounts:null,network:null,connected:!1,connecting:!1},error:"",info:r};n(A(s=>{s.namespaces.list[t]=o}))},updateStatus:(t,r,o)=>{if(!e().namespaces.list[t])throw new Error(`No namespace with '${t}' found.`);n(A(s=>{s.namespaces.list[t].data[r]=o}))},getNamespaceData(t){return m(e(),t)}}),"namespacesStore");import{produce as T}from"immer";var k=i((n,e)=>({list:{},addProvider:(t,r)=>{let o={data:{installed:!1},error:"",config:r};n(T(s=>{s.providers.list[t]=o}))},updateStatus:(t,r,o)=>{if(!e().providers.list[t])throw new Error(`No namespace namespace with '${t}' found.`);n(T(s=>{s.providers.list[t].data[r]=o}))},guessNamespacesState:t=>u(e(),t)}),"providersStore");var g=i(()=>F((...n)=>({hub:N(...n),providers:k(...n),namespaces:w(...n)})),"createStore");var R=["init","state","after","before","and_then","or_else","store"],y=class{static{i(this,"NamespaceBuilder")}#e;#r;#s=new Map;#t=[];#o;constructor(e,t){this.#e=e,this.#r=t,this.#o={}}config(e,t){return this.#o[e]=t,this}action(e,t){return Array.isArray(e)?(e.forEach(([r,o])=>{this.#s.set(r,o)}),this):typeof e=="object"&&e?.actionName?(this.#t.push(e),this):(t&&this.#s.set(e,t),this)}build(){if(this.#n(this.#o))return this.#p(this.#o);throw new Error("You namespace config isn't valid.")}#n(e){return!0}#i(e){this.#t.forEach(t=>{t.after.forEach(r=>{r.map(o=>{e.after(t.actionName,o)})}),t.before.forEach(r=>{r.map(o=>{e.before(t.actionName,o)})}),t.and.forEach(r=>{r.map(o=>{e.and_then(t.actionName,o)})}),t.or.forEach(r=>{r.map(o=>{e.or_else(t.actionName,o)})})})}#c(){this.#t.forEach(e=>{this.#s.set(e.actionName,e.action)})}#p(e){this.#c();let t=new p(this.#e,this.#r,{configs:e,actions:this.#s});return this.#i(t),new Proxy(t,{get:(o,s)=>{if(typeof s!="string")throw new Error("You can use string as your property on Namespace instance.");let a=t[s];return R.includes(s)?a.bind(t):["string","number"].includes(typeof a)?a:t.run.bind(t,s)},set:()=>{throw new Error("You can not set anything on this object.")}})}};var x=class{static{i(this,"ProviderBuilder")}#e;#r=new Map;#s={};#t={};#o;constructor(e,t){this.#e=e,this.#o=t||{}}add(e,t){return this.#o.store&&t.store(this.#o.store),this.#r.set(e,t),this}config(e,t){return this.#t[e]=t,this}init(e){return this.#s.init=e,this}build(){if(this.#n(this.#t))return new d(this.#e,this.#r,this.#t,{extendInternalActions:this.#s,store:this.#o.store});throw new Error("You need to set all required configs.")}#n(e){return!!e.info}};var S=class{static{i(this,"ActionBuilder")}name;#e=new Map;#r=new Map;#s=new Map;#t=new Map;#o;constructor(e){this.name=e}and(e){return this.#e.has(this.name)||this.#e.set(this.name,[]),this.#e.get(this.name)?.push(e),this}or(e){return this.#r.has(this.name)||this.#r.set(this.name,[]),this.#r.get(this.name)?.push(e),this}before(e){return this.#t.has(this.name)||this.#t.set(this.name,[]),this.#t.get(this.name)?.push(e),this}after(e){return this.#s.has(this.name)||this.#s.set(this.name,[]),this.#s.get(this.name)?.push(e),this}action(e){return this.#o=e,this}build(){if(!this.#o)throw new Error("Your action builder should includes an action.");return{actionName:this.name,action:this.#o,before:this.#t,after:this.#s,and:this.#e,or:this.#r}}};import*as $e from"caip";function V(n,e){if(!e)throw new Error("You should provide a valid semver, e.g 1.0.0.");let t=n.find(([r])=>r===e);if(!t)throw new Error(`You target version hasn't been found. Available versions: ${Object.keys(n).join(", ")}`);return t}i(V,"pickVersion");function j(){let n=[],e={version:(t,r)=>(n.push([t,r]),e),build:()=>n};return e}i(j,"defineVersions");export{S as ActionBuilder,l as Hub,p as Namespace,y as NamespaceBuilder,d as Provider,x as ProviderBuilder,g as createStore,j as defineVersions,u as guessProviderStateSelector,m as namespaceStateSelector,V as pickVersion};
|
|
1
|
+
var R=Object.defineProperty;var i=(a,e)=>R(a,"name",{value:e,configurable:!0});function P(a){return a.constructor.name==="AsyncFunction"}i(P,"isAsync");function l(a,e){return`${a}$$${e}`}i(l,"generateStoreId");var y=i(a=>`Couldn't find "${a}" action. Are you sure you've added the action?`,"ACTION_NOT_FOUND_ERROR"),N=i(a=>`An error occurred during running ${a}`,"OR_ELSE_ACTION_FAILED_ERROR"),w="For setup store, you should set `store` first.";var u=class{static{i(this,"Namespace")}namespaceId;providerId;#e;#r=new Map;#n=new Map;#t=new Map;#o=new Map;#s=!1;#i;#c;constructor(e,t,r){let{configs:o,actions:n}=r;this.namespaceId=e,this.providerId=t,this.#c=o||new Map,this.#e=n,r.store&&this.store(r.store)}init(){if(this.#s)return;let e=this.#e.get("init");e&&e(this.#a()),this.#s=!0}state(){let e=this.#i;if(!e)throw new Error("You need to set your store using `.store` method first.");let t=this.#h();return[i(n=>{let s=e.getState().namespaces.getNamespaceData(t);return n?s[n]:s},"getState"),i((n,s)=>{e.getState().namespaces.updateStatus(t,n,s)},"setState")]}store(e){return this.#i&&console.warn("You've already set an store for your Namespace. Old store will be replaced by the new one."),this.#i=e,this.#l(),this}and_then(e,t){let r=this.#r.get(e)||[];return this.#r.set(e,r.concat(t)),this}or_else(e,t){let r=this.#n.get(e)||[];return this.#n.set(e,r.concat(t)),this}after(e,t,r){let o=this.#o.get(e)||[],n={hook:t,options:{context:r?.context}};return this.#o.set(e,o.concat(n)),this}before(e,t,r){let o=this.#t.get(e)||[],n={hook:t,options:{context:r?.context}};return this.#t.set(e,o.concat(n)),this}run(e,...t){let r=this.#e.get(e);if(!r)throw new Error(y(e.toString()));return P(r)?this.#v(e,t):this.#p(e,t)}#p(e,t){this.#u(e);let r=this.#e.get(e);if(!r)throw new Error(y(e.toString()));let o=this.#a(),n;try{n=r(o,...t),n=this.#m(e,n)}catch(s){n=this.#f(e,s)}finally{this.#d(e)}return n}async#v(e,t){this.#u(e);let r=this.#e.get(e);if(!r)throw new Error(y(e.toString()));let o=this.#a();return await r(o,...t).then(n=>this.#m(e,n)).catch(n=>this.#f(e,n)).finally(()=>this.#d(e))}#d(e){let t=this.#o.get(e);t&&t.forEach(r=>{let o=r.options?.context||this.#a();r.hook(o)})}#u(e){let t=this.#t.get(e);t&&t.forEach(r=>{let o=r.options?.context||this.#a();r.hook(o)})}#m(e,t){let r=this.#r.get(e);if(r){let o=this.#a();t=r.reduce((n,s)=>s(o,n),t)}return t}#f(e,t){let r=this.#n.get(e);if(r)try{let o=this.#a();return r.reduce((n,s)=>s(o,n),t)}catch{let n=N(`${e.toString()} for ${this.namespaceId} namespace.`);throw new Error(n,{cause:t})}else throw t}#l(){let e=this.#i;if(!e)throw new Error(w);let t=this.#h();e.getState().namespaces.addNamespace(t,{namespaceId:this.namespaceId,providerId:this.providerId})}#h(){return l(this.providerId,this.namespaceId)}#a(){return{state:this.state.bind(this),action:this.run.bind(this)}}};var _="1.0",m=class{static{i(this,"Provider")}id;version=_;#e;#r=!1;#n={};#t;#o;constructor(e,t,r,o){this.id=e,this.#o=r,this.#n=o?.extendInternalActions||{},this.#e=t,o?.store&&(this.#t=o.store,this.#i())}init(){if(this.#r)return;let e=this.#n.init;e&&e(this.#c()),this.#r=!0}state(){let e=this.#t;if(!e)throw new Error(`Any store detected for ${this.id}. You need to set your store using '.store' method first.`);return[i(o=>{let n=e.getState().providers.guessNamespacesState(this.id);if(!o)return n;switch(o){case"installed":case"connected":case"connecting":return n[o];default:throw new Error("Unhandled state for provider")}},"getState"),i((o,n)=>{switch(o){case"installed":return e.getState().providers.updateStatus(this.id,o,n);default:throw new Error(`Unhandled state update for provider. (provider id: ${this.id}, state name: ${o})`)}},"setState")]}store(e){return this.#t&&console.warn("You've already set an store for your Provider. Old store will be replaced by the new one."),this.#t=e,this.#i(),this}info(){let e=this.#t;if(!e)throw new Error("You need to set your store using `.store` method first.");return e.getState().providers.list[this.id].config.info}getAll(){return this.#e}get(e){return this.#e.get(e)}findByNamespace(e){let t;return this.#e.forEach(r=>{r.namespaceId===e&&(t=r)}),t}before(e,t){return this.#s("before",e,t),this}after(e,t){return this.#s("after",e,t),this}#s(e,t,r){let o={state:this.state.bind(this)};return this.#e.forEach(n=>{if(e==="after")n.after(t,r,{context:o});else if(e==="before")n.before(t,r,{context:o});else throw new Error(`You hook name is invalid: ${e}`)}),this}#i(){let e=this.#t;if(!e)throw new Error("For setup store, you should set `store` first.");e.getState().providers.addProvider(this.id,this.#o),this.#e.forEach(t=>{t.store(e)})}#c(){return{state:this.state.bind(this)}}};var S=class{static{i(this,"Hub")}#e=new Map;#r;constructor(e){this.#r=e??{}}init(){this.runAll("init")}runAll(e){let t=[],r=this.#e.values();for(let o of r){let n={id:o.id,provider:void 0,namespaces:[]},s=o[e];typeof s=="function"&&(n.provider=s.call(o));let c=o.getAll().values();for(let p of c){let f=p[e];if(typeof f=="function"){let F=f();n.namespaces.push(F)}}t.push(n)}return t}add(e,t){return this.#r.store&&t.store(this.#r.store),this.#e.set(e,t),this}get(e){return this.#e.get(e)}getAll(){return this.#e}state(){let e=this.runAll("state"),t={};return e.forEach(r=>{let o=[];r.namespaces.forEach(s=>{let[c]=s;o.push(c())});let[n]=r.provider;t[r.id]={...n()||{},namespaces:o}}),t}};function d(a,e){let t=a.namespaces.list,r=Object.keys(t).filter(c=>t[c].info.providerId===e),o=a.providers.list[e].data.installed,n=r.length>0?r.some(c=>t[c].data.connected):!1,s=r.length>0?r.some(c=>t[c].data.connecting):!1;return{installed:o,connected:n,connecting:s}}i(d,"guessProviderStateSelector");function v(a,e){return a.namespaces.list[e].data}i(v,"namespaceStateSelector");import{createStore as V}from"zustand/vanilla";function A(a){let e=i(t=>r=>{let o=i((n,s,c)=>{for(let p of n)r(p,s,c)},"executeListener");return t.subscribe((n,s)=>{let c=j(n,s),f=[...E(n),...c];o(f,n,s)}),{flushEvents:()=>{let n=t.getState(),s=E(n);o(s,n,n)}}},"extendedSubscribe");return new Proxy(a,{get:function(t,r,o){return r==="subscribe"?e(t):Reflect.get(t,r,o)}})}i(A,"extend");function E(a){return[...a.providers.events,...a.namespaces.events]}i(E,"tryConsumeEvents");function j(a,e){let t=[];for(let r of Object.keys(a.providers.list)){let o=d(a,r),n=d(e,r);if(n.connecting!==o.connecting){let s={type:"provider_connecting",provider:r,value:o.connecting};t.push(s)}if(!n.connected&&o.connected){let s={type:"provider_connected",provider:r};t.push(s)}if(n.connected&&!o.connected){let s={type:"provider_disconnected",provider:r};t.push(s)}}return t}i(j,"getEventsLike");var T=i(()=>({config:{}}),"hubStore");import{produce as k}from"immer";var h=class{static{i(this,"ConsumableEvents")}#e=[];push(e){this.#e.push(e)}[Symbol.iterator](){return{next:()=>this.#e.length==0?{done:!0,value:void 0}:{done:!1,value:this.#e.shift()}}}};var I=i((a,e)=>({events:new h,list:{},addNamespace:(t,r)=>{let n={data:{accounts:null,network:null,connected:!1,connecting:!1},error:"",info:r};a(k(s=>{s.namespaces.list[t]=n}))},updateStatus:(t,r,o)=>{let n=e().namespaces.list[t];if(!n)throw new Error(`No namespace with '${t}' found.`);e().namespaces._produceEventsWhenUpdatingStatus(n,t,r,o),a(k(s=>{s.namespaces.list[t].data[r]=o}))},getNamespaceData(t){return v(e(),t)},_produceEventsWhenUpdatingStatus:(t,r,o,n)=>{if(o==="accounts")if(Object.is(n,null)||Array.isArray(n)&&n.length===0){if(e().namespaces.list[r].data.connected){let p={type:"namespace_disconnected",provider:t.info.providerId,namespace:t.info.namespaceId};e().namespaces.events.push(p)}}else{let c=e().namespaces.list[r].data.accounts;if(c){if(!(c.sort().toString()===n.sort().toString())){let f={type:"namespace_account_switched",provider:t.info.providerId,namespace:t.info.namespaceId,previousAccounts:c,accounts:n};e().namespaces.events.push(f)}}else{let p={type:"namespace_connected",provider:t.info.providerId,namespace:t.info.namespaceId,accounts:n};e().namespaces.events.push(p)}}else if(o==="network"){let s=e().namespaces.list[r].data.network,c={type:"namespace_network_switched",provider:t.info.providerId,namespace:t.info.namespaceId,network:n,previousNetwork:s};e().namespaces.events.push(c)}}}),"namespacesStore");import{produce as K}from"immer";var O=i((a,e)=>({events:new h,list:{},addProvider:(t,r)=>{let o={data:{installed:!1},error:"",config:r};a(K(n=>{n.providers.list[t]=o}))},updateStatus:(t,r,o)=>{let n=e().providers.list[t];if(!n)throw new Error(`No namespace namespace with '${t}' found.`);e().providers._produceEventsWhenUpdatingStatus(n,t,r,o),a(K(s=>{s.providers.list[t].data[r]=o}))},guessNamespacesState:t=>d(e(),t),_produceEventsWhenUpdatingStatus:(t,r,o,n)=>{if(o==="installed"){let s={type:"provider_detected",provider:r};e().providers.events.push(s)}}}),"providersStore");var C=i(()=>{let a=V((...e)=>({hub:T(...e),providers:O(...e),namespaces:I(...e)}));return A(a)},"createStore");var D=["init","state","after","before","and_then","or_else","store"],g=class{static{i(this,"NamespaceBuilder")}#e;#r;#n=new Map;#t=[];#o;constructor(e,t){this.#e=e,this.#r=t,this.#o={}}config(e,t){return this.#o[e]=t,this}action(e,t){return Array.isArray(e)?(e.forEach(([r,o])=>{this.#n.set(r,o)}),this):typeof e=="object"&&e?.actionName?(this.#t.push(e),this):(t&&this.#n.set(e,t),this)}build(){if(this.#s(this.#o))return this.#p(this.#o);throw new Error("You namespace config isn't valid.")}#s(e){return!0}#i(e){this.#t.forEach(t=>{t.after.forEach(r=>{r.map(o=>{e.after(t.actionName,o)})}),t.before.forEach(r=>{r.map(o=>{e.before(t.actionName,o)})}),t.and.forEach(r=>{r.map(o=>{e.and_then(t.actionName,o)})}),t.or.forEach(r=>{r.map(o=>{e.or_else(t.actionName,o)})})})}#c(){this.#t.forEach(e=>{this.#n.set(e.actionName,e.action)})}#p(e){this.#c();let t=new u(this.#e,this.#r,{configs:e,actions:this.#n});return this.#i(t),new Proxy(t,{get:(o,n)=>{if(typeof n!="string")throw new Error("You can use string as your property on Namespace instance.");let s=t[n];return D.includes(n)?s.bind(t):["string","number"].includes(typeof s)?s:t.run.bind(t,n)},set:()=>{throw new Error("You can not set anything on this object.")}})}};var x=class{static{i(this,"ProviderBuilder")}#e;#r=new Map;#n={};#t={};#o;constructor(e,t){this.#e=e,this.#o=t||{}}add(e,t){return this.#o.store&&t.store(this.#o.store),this.#r.set(e,t),this}config(e,t){return this.#t[e]=t,this}init(e){return this.#n.init=e,this}build(){if(this.#s(this.#t))return new m(this.#e,this.#r,this.#t,{extendInternalActions:this.#n,store:this.#o.store});throw new Error("You need to set all required configs.")}#s(e){return!!e.info}};var b=class{static{i(this,"ActionBuilder")}name;#e=new Map;#r=new Map;#n=new Map;#t=new Map;#o;constructor(e){this.name=e}and(e){return this.#e.has(this.name)||this.#e.set(this.name,[]),this.#e.get(this.name)?.push(e),this}or(e){return this.#r.has(this.name)||this.#r.set(this.name,[]),this.#r.get(this.name)?.push(e),this}before(e){return this.#t.has(this.name)||this.#t.set(this.name,[]),this.#t.get(this.name)?.push(e),this}after(e){return this.#n.has(this.name)||this.#n.set(this.name,[]),this.#n.get(this.name)?.push(e),this}action(e){return this.#o=e,this}build(){if(!this.#o)throw new Error("Your action builder should includes an action.");return{actionName:this.name,action:this.#o,before:this.#t,after:this.#n,and:this.#e,or:this.#r}}};import*as et from"caip";function W(a,e){if(!e)throw new Error("You should provide a valid semver, e.g 1.0.0.");let t=a.find(([r])=>r===e);if(!t)throw new Error(`You target version hasn't been found. Available versions: ${Object.keys(a).join(", ")}`);return t}i(W,"pickVersion");function H(){let a=[],e={version:(t,r)=>(a.push([t,r]),e),build:()=>a};return e}i(H,"defineVersions");export{b as ActionBuilder,S as Hub,u as Namespace,g as NamespaceBuilder,m as Provider,x as ProviderBuilder,C as createStore,H as defineVersions,d as guessProviderStateSelector,v as namespaceStateSelector,W as pickVersion};
|
|
2
2
|
//# sourceMappingURL=mod.js.map
|