@rango-dev/wallets-core 0.40.1-next.11 → 0.40.1-next.13
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/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 +18 -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 +6 -2
- 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 +24 -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,8 @@ 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"
|
|
130
133
|
}
|
|
131
134
|
export type ProviderConnectResult = {
|
|
132
135
|
accounts: string[];
|
|
@@ -134,7 +137,7 @@ export type ProviderConnectResult = {
|
|
|
134
137
|
};
|
|
135
138
|
export type GetInstanceOptions = {
|
|
136
139
|
network?: Network;
|
|
137
|
-
currentProvider:
|
|
140
|
+
currentProvider: InstanceType;
|
|
138
141
|
meta: BlockchainMeta[];
|
|
139
142
|
getState: () => WalletState;
|
|
140
143
|
/**
|
|
@@ -146,21 +149,21 @@ export type GetInstanceOptions = {
|
|
|
146
149
|
force?: boolean;
|
|
147
150
|
updateChainId: (chainId: number | string) => void;
|
|
148
151
|
};
|
|
149
|
-
export type GetInstance = (() =>
|
|
150
|
-
export type TryGetInstance = (() =>
|
|
152
|
+
export type GetInstance = (() => InstanceType) | ((options: GetInstanceOptions) => Promise<InstanceType>);
|
|
153
|
+
export type TryGetInstance = (() => InstanceType) | ((options: Pick<GetInstanceOptions, 'force' | 'network'>) => Promise<InstanceType>);
|
|
151
154
|
export type Connect = (options: {
|
|
152
|
-
instance:
|
|
155
|
+
instance: InstanceType;
|
|
153
156
|
network?: Network;
|
|
154
157
|
meta: BlockchainMeta[];
|
|
155
158
|
namespaces?: NamespaceData[];
|
|
156
159
|
}) => Promise<ProviderConnectResult | ProviderConnectResult[]>;
|
|
157
160
|
export type Disconnect = (options: {
|
|
158
|
-
instance:
|
|
161
|
+
instance: InstanceType;
|
|
159
162
|
destroyInstance: () => void;
|
|
160
163
|
}) => Promise<void>;
|
|
161
164
|
type CleanupSubscribe = () => void;
|
|
162
165
|
export type Subscribe = (options: {
|
|
163
|
-
instance:
|
|
166
|
+
instance: InstanceType;
|
|
164
167
|
state: WalletState;
|
|
165
168
|
meta: BlockchainMeta[];
|
|
166
169
|
updateChainId: (chainId: string) => void;
|
|
@@ -169,7 +172,7 @@ export type Subscribe = (options: {
|
|
|
169
172
|
disconnect: () => void;
|
|
170
173
|
}) => CleanupSubscribe | void;
|
|
171
174
|
export type SwitchNetwork = (options: {
|
|
172
|
-
instance:
|
|
175
|
+
instance: InstanceType;
|
|
173
176
|
network: Network;
|
|
174
177
|
meta: BlockchainMeta[];
|
|
175
178
|
newInstance?: TryGetInstance;
|
|
@@ -177,17 +180,17 @@ export type SwitchNetwork = (options: {
|
|
|
177
180
|
updateChainId: (chainId: string) => void;
|
|
178
181
|
}) => Promise<void>;
|
|
179
182
|
export type Suggest = (options: {
|
|
180
|
-
instance:
|
|
183
|
+
instance: InstanceType;
|
|
181
184
|
network: Network;
|
|
182
185
|
meta: BlockchainMeta[];
|
|
183
186
|
}) => Promise<void>;
|
|
184
187
|
export type CanSwitchNetwork = (options: {
|
|
185
188
|
network: Network;
|
|
186
189
|
meta: BlockchainMeta[];
|
|
187
|
-
provider:
|
|
190
|
+
provider: InstanceType;
|
|
188
191
|
}) => boolean;
|
|
189
192
|
export type CanEagerConnect = (options: {
|
|
190
|
-
instance:
|
|
193
|
+
instance: InstanceType;
|
|
191
194
|
meta: BlockchainMeta[];
|
|
192
195
|
}) => Promise<boolean>;
|
|
193
196
|
export type EagerConnectResult<I = unknown> = {
|
|
@@ -197,12 +200,12 @@ export type EagerConnectResult<I = unknown> = {
|
|
|
197
200
|
};
|
|
198
201
|
export interface WalletActions {
|
|
199
202
|
connect: Connect;
|
|
200
|
-
getInstance:
|
|
203
|
+
getInstance: InstanceType;
|
|
201
204
|
disconnect?: Disconnect;
|
|
202
205
|
subscribe?: Subscribe;
|
|
203
206
|
suggest?: Suggest;
|
|
204
207
|
switchNetwork?: SwitchNetwork;
|
|
205
|
-
getSigners: (provider:
|
|
208
|
+
getSigners: (provider: InstanceType) => Promise<SignerFactory>;
|
|
206
209
|
canSwitchNetworkTo?: CanSwitchNetwork;
|
|
207
210
|
canEagerConnect?: CanEagerConnect;
|
|
208
211
|
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
|