@paimaexample/wallets 0.3.130 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm/wallets/src/midnight/midnight.d.ts +2 -5
- package/esm/wallets/src/midnight/midnight.d.ts.map +1 -1
- package/esm/wallets/src/midnight/midnight.js +25 -47
- package/esm/wallets/src/midnight/wrapper.d.ts.map +1 -1
- package/esm/wallets/src/midnight/wrapper.js +1 -3
- package/esm/wallets/src/wallet-modes.d.ts +1 -3
- package/esm/wallets/src/wallet-modes.d.ts.map +1 -1
- package/package.json +1 -3
- package/script/wallets/src/midnight/midnight.d.ts +2 -5
- package/script/wallets/src/midnight/midnight.d.ts.map +1 -1
- package/script/wallets/src/midnight/midnight.js +25 -50
- package/script/wallets/src/midnight/wrapper.d.ts.map +1 -1
- package/script/wallets/src/midnight/wrapper.js +1 -3
- package/script/wallets/src/wallet-modes.d.ts +1 -3
- package/script/wallets/src/wallet-modes.d.ts.map +1 -1
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import { type MidnightAddress } from "../../../utils/src/mod.js";
|
|
2
|
-
import type { ConnectedAPI } from "@midnight-ntwrk/dapp-connector-api";
|
|
3
2
|
import { type IInjectedConnector, type ActiveConnection, type IProvider, type AddressAndType, type UserSignature, type IConnector, type ConnectionOption } from "../IProvider.js";
|
|
4
|
-
export type MidnightApi =
|
|
3
|
+
export type MidnightApi = any;
|
|
5
4
|
export declare class MidnightConnector implements IConnector<MidnightApi>, IInjectedConnector<MidnightApi> {
|
|
6
5
|
private provider;
|
|
7
6
|
private static INSTANCE;
|
|
8
|
-
private static networkId;
|
|
9
7
|
static getWalletOptions(): ConnectionOption<MidnightApi>[];
|
|
10
8
|
static instance(): MidnightConnector;
|
|
11
|
-
setNetworkId: (networkId: string) => void;
|
|
12
9
|
getOrThrowProvider: () => MidnightProvider;
|
|
13
10
|
getProvider: () => undefined | MidnightProvider;
|
|
14
11
|
isConnected(): boolean;
|
|
@@ -22,7 +19,7 @@ export declare class MidnightProvider implements IProvider<MidnightApi> {
|
|
|
22
19
|
constructor(conn: ActiveConnection<MidnightApi>, address: MidnightAddress);
|
|
23
20
|
static init: (conn: ActiveConnection<MidnightApi>) => Promise<MidnightProvider>;
|
|
24
21
|
getConnection(): ActiveConnection<MidnightApi>;
|
|
25
|
-
signMessage: (message: string
|
|
22
|
+
signMessage: (message: string) => Promise<UserSignature>;
|
|
26
23
|
getAddress(): AddressAndType;
|
|
27
24
|
static fetchAddress: (conn: ActiveConnection<MidnightApi>) => Promise<string>;
|
|
28
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"midnight.d.ts","sourceRoot":"","sources":["../../../../src/wallets/src/midnight/midnight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,
|
|
1
|
+
{"version":3,"file":"midnight.d.ts","sourceRoot":"","sources":["../../../../src/wallets/src/midnight/midnight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,gBAAgB,EAEtB,MAAM,iBAAiB,CAAC;AAIzB,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC;AAG9B,qBAAa,iBAAkB,YAAW,UAAU,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC;IAChG,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA4C;IAEnE,MAAM,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,WAAW,CAAC,EAAE;IAoB1D,MAAM,CAAC,QAAQ,IAAI,iBAAiB;IAQpC,kBAAkB,QAAO,gBAAgB,CAKvC;IAEF,WAAW,QAAO,SAAS,GAAG,gBAAgB,CAE5C;IAEF,WAAW,IAAI,OAAO;IAItB,aAAa,QAAa,OAAO,CAAC,gBAAgB,CAAC,CAUjD;IAEF,YAAY,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,gBAAgB,CAAC,CAW7D;IAED,eAAe,GAAU,MAAM,gBAAgB,CAAC,WAAW,CAAC,KAAG,OAAO,CAAC,gBAAgB,CAAC,CAMvF;CAEF;AAGD,qBAAa,gBAAiB,YAAW,SAAS,CAAC,WAAW,CAAC;IAE3D,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,QAAQ,CAAC,OAAO,EAAE,eAAe;gBADhB,IAAI,EAAE,gBAAgB,CAAC,WAAW,CAAC,EAC3C,OAAO,EAAE,eAAe;IAGnC,MAAM,CAAC,IAAI,GACT,MAAM,gBAAgB,CAAC,WAAW,CAAC,KAClC,OAAO,CAAC,gBAAgB,CAAC,CAO1B;IAEF,aAAa,IAAI,gBAAgB,CAAC,WAAW,CAAC;IAI9C,WAAW,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC,aAAa,CAAC,CAG3D;IAEF,UAAU,IAAI,cAAc;IAO5B,MAAM,CAAC,YAAY,GAAU,MAAM,gBAAgB,CAAC,WAAW,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC,CAShF;CACH"}
|
|
@@ -1,32 +1,25 @@
|
|
|
1
1
|
import { AddressType } from "../../../utils/src/mod.js";
|
|
2
|
-
import semver from "semver";
|
|
3
2
|
import { optionToActive, } from "../IProvider.js";
|
|
4
3
|
import { getWindow } from "../windows.js";
|
|
5
|
-
const COMPATIBLE_CONNECTOR_API_VERSION = ">=1.0.0";
|
|
6
|
-
const DEFAULT_NETWORK_ID = "undeployed";
|
|
7
4
|
// TODO Implement this class
|
|
8
5
|
export class MidnightConnector {
|
|
9
6
|
provider;
|
|
10
7
|
static INSTANCE = undefined;
|
|
11
|
-
static networkId = DEFAULT_NETWORK_ID;
|
|
12
8
|
static getWalletOptions() {
|
|
13
|
-
const midnightApi = getWindow()
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
},
|
|
28
|
-
api: () => connectWithNetwork(api, MidnightConnector.networkId),
|
|
29
|
-
});
|
|
9
|
+
const midnightApi = getWindow()?.midnight;
|
|
10
|
+
if (midnightApi == null)
|
|
11
|
+
return [];
|
|
12
|
+
const options = Object.entries(midnightApi).reduce((options, [key, info]) => {
|
|
13
|
+
if (info.name != null && info.enable != null) {
|
|
14
|
+
options.push({
|
|
15
|
+
metadata: {
|
|
16
|
+
name: key,
|
|
17
|
+
displayName: info.name,
|
|
18
|
+
icon: 'icon' in info ? info.icon : undefined,
|
|
19
|
+
},
|
|
20
|
+
api: info.enable,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
30
23
|
return options;
|
|
31
24
|
}, []);
|
|
32
25
|
return options;
|
|
@@ -38,9 +31,6 @@ export class MidnightConnector {
|
|
|
38
31
|
}
|
|
39
32
|
return MidnightConnector.INSTANCE;
|
|
40
33
|
}
|
|
41
|
-
setNetworkId = (networkId) => {
|
|
42
|
-
MidnightConnector.networkId = networkId || DEFAULT_NETWORK_ID;
|
|
43
|
-
};
|
|
44
34
|
getOrThrowProvider = () => {
|
|
45
35
|
if (this.provider == null) {
|
|
46
36
|
throw new Error(`MidnightConnector provider isn't initialized yet`);
|
|
@@ -99,12 +89,9 @@ export class MidnightProvider {
|
|
|
99
89
|
getConnection() {
|
|
100
90
|
return this.conn;
|
|
101
91
|
}
|
|
102
|
-
signMessage = async (message
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
keyType,
|
|
106
|
-
}));
|
|
107
|
-
return signature.signature;
|
|
92
|
+
signMessage = async (message) => {
|
|
93
|
+
console.log('NYI LACE: MidnightProvider.signMessage', message);
|
|
94
|
+
return message; // this.conn.api.signMessage(message);
|
|
108
95
|
};
|
|
109
96
|
getAddress() {
|
|
110
97
|
return {
|
|
@@ -113,22 +100,13 @@ export class MidnightProvider {
|
|
|
113
100
|
};
|
|
114
101
|
}
|
|
115
102
|
static fetchAddress = async (conn) => {
|
|
116
|
-
const
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
103
|
+
const state = await conn.api.state();
|
|
104
|
+
// address : "mn_shield-addr_undeployed1k7dst6qphntqmypwa4mhyltk794wx4lta07kherlc9y6clu5swssxqr9xe4z7txy8rscldhec7nmm47ujccf7syky0wz86jwahhkfd3mvq9wu8qx"
|
|
105
|
+
// addressLegacy : "b79b05e801bcd60d902eed77727d76f16ae357ebebfd6be47fc149ac7f9483a1|030065366a2f2cc438e18fb6f9c7a7bdd7dc96309f409623dc23ea4eedef64b63b60"
|
|
106
|
+
// coinPublicKey : "mn_shield-cpk_undeployed1k7dst6qphntqmypwa4mhyltk794wx4lta07kherlc9y6clu5swsspxas0m"
|
|
107
|
+
// coinPublicKeyLegacy : "b79b05e801bcd60d902eed77727d76f16ae357ebebfd6be47fc149ac7f9483a1"
|
|
108
|
+
// encryptionPublicKey : "mn_shield-epk_undeployed1qvqx2dn29ukvgw8p37m0n3a8hhtae93snaqfvg7uy04yam00vjmrkcqtdla9r"
|
|
109
|
+
// encryptionPublicKeyLegacy : "030065366a2f2cc438e18fb6f9c7a7bdd7dc96309f409623dc23ea4eedef64b63b60"
|
|
110
|
+
return state.address;
|
|
121
111
|
};
|
|
122
112
|
}
|
|
123
|
-
const isInitialApi = (api) => {
|
|
124
|
-
return (!!api &&
|
|
125
|
-
typeof api.connect === "function" &&
|
|
126
|
-
typeof api.apiVersion === "string");
|
|
127
|
-
};
|
|
128
|
-
const isCompatibleApiVersion = (apiVersion) => {
|
|
129
|
-
return semver.satisfies(apiVersion, COMPATIBLE_CONNECTOR_API_VERSION, { includePrerelease: true });
|
|
130
|
-
};
|
|
131
|
-
const connectWithNetwork = async (api, networkId) => {
|
|
132
|
-
const connect = api.connect.bind(api);
|
|
133
|
-
return await connect(networkId);
|
|
134
|
-
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../../../../src/wallets/src/midnight/wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,KAAK,YAAY,EAAmB,MAAM,oBAAoB,CAAC;AAGxE,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAUzE;AAED,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,GAC3C,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../../../../src/wallets/src/midnight/wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,KAAK,YAAY,EAAmB,MAAM,oBAAoB,CAAC;AAGxE,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAUzE;AAED,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,GAC3C,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAa7D"}
|
|
@@ -11,9 +11,7 @@ export async function checkMidnightWalletStatus() {
|
|
|
11
11
|
return { success: true, result: "OK" };
|
|
12
12
|
}
|
|
13
13
|
export async function midnightLoginWrapper(loginInfo) {
|
|
14
|
-
const
|
|
15
|
-
connector.setNetworkId(loginInfo.networkId ?? "undeployed");
|
|
16
|
-
const loginResult = await connectInjected("midnightLoginWrapper", loginInfo, connector);
|
|
14
|
+
const loginResult = await connectInjected("midnightLoginWrapper", loginInfo, MidnightConnector.instance());
|
|
17
15
|
if (loginResult.success === false) {
|
|
18
16
|
return loginResult;
|
|
19
17
|
}
|
|
@@ -41,9 +41,7 @@ export type LoginInfoMap = {
|
|
|
41
41
|
preferBatchedMode: boolean;
|
|
42
42
|
seed: string;
|
|
43
43
|
};
|
|
44
|
-
[WalletMode.Midnight]: BaseLoginInfo<MidnightApi
|
|
45
|
-
networkId?: string;
|
|
46
|
-
};
|
|
44
|
+
[WalletMode.Midnight]: BaseLoginInfo<MidnightApi>;
|
|
47
45
|
};
|
|
48
46
|
type ToUnion<T> = {
|
|
49
47
|
[K in keyof T]: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-modes.d.ts","sourceRoot":"","sources":["../../../src/wallets/src/wallet-modes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,EACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAEL,KAAK,mBAAmB,EACxB,UAAU,EACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,MAAM,aAAa,CAAC,GAAG,IAAI;IAC/B,UAAU,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC;CACvC,CAAC;AACF,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG;QAChD,yFAAyF;QACzF,iBAAiB,EAAE,OAAO,CAAC;QAC3B;;;;;;WAMG;QACH,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,KAAK,CAAC,EAAE,KAAK,CAAC;KACf,CAAC;IACF,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;QACtB,UAAU,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACxC,iBAAiB,EAAE,OAAO,CAAC;KAC5B,CAAC;IACF,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;QACpB,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACzC,iBAAiB,EAAE,OAAO,CAAC;QAC3B,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"wallet-modes.d.ts","sourceRoot":"","sources":["../../../src/wallets/src/wallet-modes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,EACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAEL,KAAK,mBAAmB,EACxB,UAAU,EACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,MAAM,aAAa,CAAC,GAAG,IAAI;IAC/B,UAAU,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC;CACvC,CAAC;AACF,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG;QAChD,yFAAyF;QACzF,iBAAiB,EAAE,OAAO,CAAC;QAC3B;;;;;;WAMG;QACH,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,KAAK,CAAC,EAAE,KAAK,CAAC;KACf,CAAC;IACF,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;QACtB,UAAU,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACxC,iBAAiB,EAAE,OAAO,CAAC;KAC5B,CAAC;IACF,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;QACpB,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACzC,iBAAiB,EAAE,OAAO,CAAC;QAC3B,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;CACnD,CAAC;AAEF,KAAK,OAAO,CAAC,CAAC,IAAI;KACf,CAAC,IAAI,MAAM,CAAC,GAAG;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACnC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAS9C,wBAAsB,eAAe,CAAC,GAAG,EACvC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,EAC7B,SAAS,EAAE,kBAAkB,CAAC,GAAG,CAAC,GACjC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAuBjC;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,CAuB5D"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@paimaexample/wallets",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.4.0",
|
|
4
4
|
"description": "Your package.",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -25,7 +25,6 @@
|
|
|
25
25
|
"@coderspirit/nominal": "^4.1.1",
|
|
26
26
|
"@foxglove/crc": "^1.0.1",
|
|
27
27
|
"@metamask/providers": "^22.1.0",
|
|
28
|
-
"@midnight-ntwrk/dapp-connector-api": "^4.0.0-beta.2",
|
|
29
28
|
"@perawallet/connect": "^1.4.2",
|
|
30
29
|
"@polkadot/extension-dapp": "^0.58.10",
|
|
31
30
|
"@polkadot/extension-inject": "^0.58.10",
|
|
@@ -49,7 +48,6 @@
|
|
|
49
48
|
"mina-signer": "^3.0.7",
|
|
50
49
|
"mqtt": "^5.14.0",
|
|
51
50
|
"mqtt-pattern": "^2.1.0",
|
|
52
|
-
"semver": "^7.7.3",
|
|
53
51
|
"viem": "2.37.3",
|
|
54
52
|
"web3": "^4.16.0",
|
|
55
53
|
"web3-utils": "^4.3.3"
|
|
@@ -1,14 +1,11 @@
|
|
|
1
1
|
import { type MidnightAddress } from "../../../utils/src/mod.js";
|
|
2
|
-
import type { ConnectedAPI } from "@midnight-ntwrk/dapp-connector-api";
|
|
3
2
|
import { type IInjectedConnector, type ActiveConnection, type IProvider, type AddressAndType, type UserSignature, type IConnector, type ConnectionOption } from "../IProvider.js";
|
|
4
|
-
export type MidnightApi =
|
|
3
|
+
export type MidnightApi = any;
|
|
5
4
|
export declare class MidnightConnector implements IConnector<MidnightApi>, IInjectedConnector<MidnightApi> {
|
|
6
5
|
private provider;
|
|
7
6
|
private static INSTANCE;
|
|
8
|
-
private static networkId;
|
|
9
7
|
static getWalletOptions(): ConnectionOption<MidnightApi>[];
|
|
10
8
|
static instance(): MidnightConnector;
|
|
11
|
-
setNetworkId: (networkId: string) => void;
|
|
12
9
|
getOrThrowProvider: () => MidnightProvider;
|
|
13
10
|
getProvider: () => undefined | MidnightProvider;
|
|
14
11
|
isConnected(): boolean;
|
|
@@ -22,7 +19,7 @@ export declare class MidnightProvider implements IProvider<MidnightApi> {
|
|
|
22
19
|
constructor(conn: ActiveConnection<MidnightApi>, address: MidnightAddress);
|
|
23
20
|
static init: (conn: ActiveConnection<MidnightApi>) => Promise<MidnightProvider>;
|
|
24
21
|
getConnection(): ActiveConnection<MidnightApi>;
|
|
25
|
-
signMessage: (message: string
|
|
22
|
+
signMessage: (message: string) => Promise<UserSignature>;
|
|
26
23
|
getAddress(): AddressAndType;
|
|
27
24
|
static fetchAddress: (conn: ActiveConnection<MidnightApi>) => Promise<string>;
|
|
28
25
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"midnight.d.ts","sourceRoot":"","sources":["../../../../src/wallets/src/midnight/midnight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,
|
|
1
|
+
{"version":3,"file":"midnight.d.ts","sourceRoot":"","sources":["../../../../src/wallets/src/midnight/midnight.ts"],"names":[],"mappings":"AAAA,OAAO,EAAe,KAAK,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,EACL,KAAK,kBAAkB,EACvB,KAAK,gBAAgB,EACrB,KAAK,SAAS,EACd,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,UAAU,EACf,KAAK,gBAAgB,EAEtB,MAAM,iBAAiB,CAAC;AAIzB,MAAM,MAAM,WAAW,GAAG,GAAG,CAAC;AAG9B,qBAAa,iBAAkB,YAAW,UAAU,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC;IAChG,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA4C;IAEnE,MAAM,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,WAAW,CAAC,EAAE;IAoB1D,MAAM,CAAC,QAAQ,IAAI,iBAAiB;IAQpC,kBAAkB,QAAO,gBAAgB,CAKvC;IAEF,WAAW,QAAO,SAAS,GAAG,gBAAgB,CAE5C;IAEF,WAAW,IAAI,OAAO;IAItB,aAAa,QAAa,OAAO,CAAC,gBAAgB,CAAC,CAUjD;IAEF,YAAY,GAAU,MAAM,MAAM,KAAG,OAAO,CAAC,gBAAgB,CAAC,CAW7D;IAED,eAAe,GAAU,MAAM,gBAAgB,CAAC,WAAW,CAAC,KAAG,OAAO,CAAC,gBAAgB,CAAC,CAMvF;CAEF;AAGD,qBAAa,gBAAiB,YAAW,SAAS,CAAC,WAAW,CAAC;IAE3D,OAAO,CAAC,QAAQ,CAAC,IAAI;IACrB,QAAQ,CAAC,OAAO,EAAE,eAAe;gBADhB,IAAI,EAAE,gBAAgB,CAAC,WAAW,CAAC,EAC3C,OAAO,EAAE,eAAe;IAGnC,MAAM,CAAC,IAAI,GACT,MAAM,gBAAgB,CAAC,WAAW,CAAC,KAClC,OAAO,CAAC,gBAAgB,CAAC,CAO1B;IAEF,aAAa,IAAI,gBAAgB,CAAC,WAAW,CAAC;IAI9C,WAAW,GAAU,SAAS,MAAM,KAAG,OAAO,CAAC,aAAa,CAAC,CAG3D;IAEF,UAAU,IAAI,cAAc;IAO5B,MAAM,CAAC,YAAY,GAAU,MAAM,gBAAgB,CAAC,WAAW,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC,CAShF;CACH"}
|
|
@@ -1,38 +1,28 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
-
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
-
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
-
};
|
|
5
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
3
|
exports.MidnightProvider = exports.MidnightConnector = void 0;
|
|
7
4
|
const mod_js_1 = require("../../../utils/src/mod.js");
|
|
8
|
-
const semver_1 = __importDefault(require("semver"));
|
|
9
5
|
const IProvider_js_1 = require("../IProvider.js");
|
|
10
6
|
const windows_js_1 = require("../windows.js");
|
|
11
|
-
const COMPATIBLE_CONNECTOR_API_VERSION = ">=1.0.0";
|
|
12
|
-
const DEFAULT_NETWORK_ID = "undeployed";
|
|
13
7
|
// TODO Implement this class
|
|
14
8
|
class MidnightConnector {
|
|
15
9
|
provider;
|
|
16
10
|
static INSTANCE = undefined;
|
|
17
|
-
static networkId = DEFAULT_NETWORK_ID;
|
|
18
11
|
static getWalletOptions() {
|
|
19
|
-
const midnightApi = (0, windows_js_1.getWindow)()
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
},
|
|
34
|
-
api: () => connectWithNetwork(api, MidnightConnector.networkId),
|
|
35
|
-
});
|
|
12
|
+
const midnightApi = (0, windows_js_1.getWindow)()?.midnight;
|
|
13
|
+
if (midnightApi == null)
|
|
14
|
+
return [];
|
|
15
|
+
const options = Object.entries(midnightApi).reduce((options, [key, info]) => {
|
|
16
|
+
if (info.name != null && info.enable != null) {
|
|
17
|
+
options.push({
|
|
18
|
+
metadata: {
|
|
19
|
+
name: key,
|
|
20
|
+
displayName: info.name,
|
|
21
|
+
icon: 'icon' in info ? info.icon : undefined,
|
|
22
|
+
},
|
|
23
|
+
api: info.enable,
|
|
24
|
+
});
|
|
25
|
+
}
|
|
36
26
|
return options;
|
|
37
27
|
}, []);
|
|
38
28
|
return options;
|
|
@@ -44,9 +34,6 @@ class MidnightConnector {
|
|
|
44
34
|
}
|
|
45
35
|
return MidnightConnector.INSTANCE;
|
|
46
36
|
}
|
|
47
|
-
setNetworkId = (networkId) => {
|
|
48
|
-
MidnightConnector.networkId = networkId || DEFAULT_NETWORK_ID;
|
|
49
|
-
};
|
|
50
37
|
getOrThrowProvider = () => {
|
|
51
38
|
if (this.provider == null) {
|
|
52
39
|
throw new Error(`MidnightConnector provider isn't initialized yet`);
|
|
@@ -106,12 +93,9 @@ class MidnightProvider {
|
|
|
106
93
|
getConnection() {
|
|
107
94
|
return this.conn;
|
|
108
95
|
}
|
|
109
|
-
signMessage = async (message
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
keyType,
|
|
113
|
-
}));
|
|
114
|
-
return signature.signature;
|
|
96
|
+
signMessage = async (message) => {
|
|
97
|
+
console.log('NYI LACE: MidnightProvider.signMessage', message);
|
|
98
|
+
return message; // this.conn.api.signMessage(message);
|
|
115
99
|
};
|
|
116
100
|
getAddress() {
|
|
117
101
|
return {
|
|
@@ -120,23 +104,14 @@ class MidnightProvider {
|
|
|
120
104
|
};
|
|
121
105
|
}
|
|
122
106
|
static fetchAddress = async (conn) => {
|
|
123
|
-
const
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
107
|
+
const state = await conn.api.state();
|
|
108
|
+
// address : "mn_shield-addr_undeployed1k7dst6qphntqmypwa4mhyltk794wx4lta07kherlc9y6clu5swssxqr9xe4z7txy8rscldhec7nmm47ujccf7syky0wz86jwahhkfd3mvq9wu8qx"
|
|
109
|
+
// addressLegacy : "b79b05e801bcd60d902eed77727d76f16ae357ebebfd6be47fc149ac7f9483a1|030065366a2f2cc438e18fb6f9c7a7bdd7dc96309f409623dc23ea4eedef64b63b60"
|
|
110
|
+
// coinPublicKey : "mn_shield-cpk_undeployed1k7dst6qphntqmypwa4mhyltk794wx4lta07kherlc9y6clu5swsspxas0m"
|
|
111
|
+
// coinPublicKeyLegacy : "b79b05e801bcd60d902eed77727d76f16ae357ebebfd6be47fc149ac7f9483a1"
|
|
112
|
+
// encryptionPublicKey : "mn_shield-epk_undeployed1qvqx2dn29ukvgw8p37m0n3a8hhtae93snaqfvg7uy04yam00vjmrkcqtdla9r"
|
|
113
|
+
// encryptionPublicKeyLegacy : "030065366a2f2cc438e18fb6f9c7a7bdd7dc96309f409623dc23ea4eedef64b63b60"
|
|
114
|
+
return state.address;
|
|
128
115
|
};
|
|
129
116
|
}
|
|
130
117
|
exports.MidnightProvider = MidnightProvider;
|
|
131
|
-
const isInitialApi = (api) => {
|
|
132
|
-
return (!!api &&
|
|
133
|
-
typeof api.connect === "function" &&
|
|
134
|
-
typeof api.apiVersion === "string");
|
|
135
|
-
};
|
|
136
|
-
const isCompatibleApiVersion = (apiVersion) => {
|
|
137
|
-
return semver_1.default.satisfies(apiVersion, COMPATIBLE_CONNECTOR_API_VERSION, { includePrerelease: true });
|
|
138
|
-
};
|
|
139
|
-
const connectWithNetwork = async (api, networkId) => {
|
|
140
|
-
const connect = api.connect.bind(api);
|
|
141
|
-
return await connect(networkId);
|
|
142
|
-
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../../../../src/wallets/src/midnight/wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,KAAK,YAAY,EAAmB,MAAM,oBAAoB,CAAC;AAGxE,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAUzE;AAED,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,GAC3C,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"wrapper.d.ts","sourceRoot":"","sources":["../../../../src/wallets/src/midnight/wrapper.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,2BAA2B,CAAC;AACxD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC1D,OAAO,EAAE,KAAK,YAAY,EAAmB,MAAM,oBAAoB,CAAC;AAGxE,wBAAsB,yBAAyB,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAUzE;AAED,wBAAsB,oBAAoB,CACxC,SAAS,EAAE,YAAY,CAAC,UAAU,CAAC,QAAQ,CAAC,GAC3C,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAa7D"}
|
|
@@ -15,9 +15,7 @@ async function checkMidnightWalletStatus() {
|
|
|
15
15
|
return { success: true, result: "OK" };
|
|
16
16
|
}
|
|
17
17
|
async function midnightLoginWrapper(loginInfo) {
|
|
18
|
-
const
|
|
19
|
-
connector.setNetworkId(loginInfo.networkId ?? "undeployed");
|
|
20
|
-
const loginResult = await (0, wallet_modes_js_1.connectInjected)("midnightLoginWrapper", loginInfo, connector);
|
|
18
|
+
const loginResult = await (0, wallet_modes_js_1.connectInjected)("midnightLoginWrapper", loginInfo, midnight_js_1.MidnightConnector.instance());
|
|
21
19
|
if (loginResult.success === false) {
|
|
22
20
|
return loginResult;
|
|
23
21
|
}
|
|
@@ -41,9 +41,7 @@ export type LoginInfoMap = {
|
|
|
41
41
|
preferBatchedMode: boolean;
|
|
42
42
|
seed: string;
|
|
43
43
|
};
|
|
44
|
-
[WalletMode.Midnight]: BaseLoginInfo<MidnightApi
|
|
45
|
-
networkId?: string;
|
|
46
|
-
};
|
|
44
|
+
[WalletMode.Midnight]: BaseLoginInfo<MidnightApi>;
|
|
47
45
|
};
|
|
48
46
|
type ToUnion<T> = {
|
|
49
47
|
[K in keyof T]: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"wallet-modes.d.ts","sourceRoot":"","sources":["../../../src/wallets/src/wallet-modes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,EACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAEL,KAAK,mBAAmB,EACxB,UAAU,EACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,MAAM,aAAa,CAAC,GAAG,IAAI;IAC/B,UAAU,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC;CACvC,CAAC;AACF,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG;QAChD,yFAAyF;QACzF,iBAAiB,EAAE,OAAO,CAAC;QAC3B;;;;;;WAMG;QACH,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,KAAK,CAAC,EAAE,KAAK,CAAC;KACf,CAAC;IACF,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;QACtB,UAAU,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACxC,iBAAiB,EAAE,OAAO,CAAC;KAC5B,CAAC;IACF,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;QACpB,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACzC,iBAAiB,EAAE,OAAO,CAAC;QAC3B,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"wallet-modes.d.ts","sourceRoot":"","sources":["../../../src/wallets/src/wallet-modes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EACV,gBAAgB,EAChB,kBAAkB,EAClB,SAAS,EACV,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAEL,KAAK,mBAAmB,EACxB,UAAU,EACX,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAGzC,MAAM,MAAM,aAAa,CAAC,GAAG,IAAI;IAC/B,UAAU,CAAC,EAAE,mBAAmB,CAAC,GAAG,CAAC,CAAC;CACvC,CAAC;AACF,MAAM,MAAM,YAAY,GAAG;IACzB,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,aAAa,CAAC,MAAM,CAAC,GAAG;QAChD,yFAAyF;QACzF,iBAAiB,EAAE,OAAO,CAAC;QAC3B;;;;;;WAMG;QACH,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,KAAK,CAAC,EAAE,KAAK,CAAC;KACf,CAAC;IACF,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE;QACtB,UAAU,EAAE,gBAAgB,CAAC,SAAS,CAAC,CAAC;QACxC,iBAAiB,EAAE,OAAO,CAAC;KAC5B,CAAC;IACF,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;QACpB,UAAU,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;QACzC,iBAAiB,EAAE,OAAO,CAAC;QAC3B,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC,WAAW,CAAC,CAAC;CACnD,CAAC;AAEF,KAAK,OAAO,CAAC,CAAC,IAAI;KACf,CAAC,IAAI,MAAM,CAAC,GAAG;QAAE,IAAI,EAAE,CAAC,CAAA;KAAE,GAAG,CAAC,CAAC,CAAC,CAAC;CACnC,CAAC,MAAM,CAAC,CAAC,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,CAAC;AAS9C,wBAAsB,eAAe,CAAC,GAAG,EACvC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,aAAa,CAAC,GAAG,CAAC,EAC7B,SAAS,EAAE,kBAAkB,CAAC,GAAG,CAAC,GACjC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAuBjC;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,UAAU,GAAG,WAAW,CAuB5D"}
|