@paimaexample/wallets 0.4.0 → 0.6.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.
@@ -1,11 +1,14 @@
1
1
  import { type MidnightAddress } from "../../../utils/src/mod.js";
2
+ import type { ConnectedAPI } from "@midnight-ntwrk/dapp-connector-api";
2
3
  import { type IInjectedConnector, type ActiveConnection, type IProvider, type AddressAndType, type UserSignature, type IConnector, type ConnectionOption } from "../IProvider.js";
3
- export type MidnightApi = any;
4
+ export type MidnightApi = ConnectedAPI;
4
5
  export declare class MidnightConnector implements IConnector<MidnightApi>, IInjectedConnector<MidnightApi> {
5
6
  private provider;
6
7
  private static INSTANCE;
8
+ private static networkId;
7
9
  static getWalletOptions(): ConnectionOption<MidnightApi>[];
8
10
  static instance(): MidnightConnector;
11
+ setNetworkId: (networkId: string) => void;
9
12
  getOrThrowProvider: () => MidnightProvider;
10
13
  getProvider: () => undefined | MidnightProvider;
11
14
  isConnected(): boolean;
@@ -19,7 +22,7 @@ export declare class MidnightProvider implements IProvider<MidnightApi> {
19
22
  constructor(conn: ActiveConnection<MidnightApi>, address: MidnightAddress);
20
23
  static init: (conn: ActiveConnection<MidnightApi>) => Promise<MidnightProvider>;
21
24
  getConnection(): ActiveConnection<MidnightApi>;
22
- signMessage: (message: string) => Promise<UserSignature>;
25
+ signMessage: (message: string, keyType?: "unshielded") => Promise<UserSignature>;
23
26
  getAddress(): AddressAndType;
24
27
  static fetchAddress: (conn: ActiveConnection<MidnightApi>) => Promise<string>;
25
28
  }
@@ -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,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
+ {"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,KAAK,EACV,YAAY,EAGb,MAAM,oCAAoC,CAAC;AAE5C,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;AAGzB,MAAM,MAAM,WAAW,GAAG,YAAY,CAAC;AAMvC,qBAAa,iBACX,YAAW,UAAU,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC;IACnE,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA4C;IACnE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAsB;IAE9C,MAAM,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,WAAW,CAAC,EAAE;IA+B1D,MAAM,CAAC,QAAQ,IAAI,iBAAiB;IAQpC,YAAY,GAAI,WAAW,MAAM,KAAG,IAAI,CAEtC;IAEF,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,GACT,SAAS,MAAM,EACf,UAAS,YAA2B,KACnC,OAAO,CAAC,aAAa,CAAC,CAMvB;IAEF,UAAU,IAAI,cAAc;IAO5B,MAAM,CAAC,YAAY,GAAU,MAAM,gBAAgB,CAAC,WAAW,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC,CAMhF;CACH"}
@@ -1,27 +1,42 @@
1
1
  import { AddressType } from "../../../utils/src/mod.js";
2
+ import semver from "semver";
2
3
  import { optionToActive, } from "../IProvider.js";
3
4
  import { getWindow } from "../windows.js";
5
+ const COMPATIBLE_CONNECTOR_API_VERSION = ">=1.0.0";
6
+ const DEFAULT_NETWORK_ID = "undeployed";
4
7
  // TODO Implement this class
5
8
  export class MidnightConnector {
6
9
  provider;
7
10
  static INSTANCE = undefined;
11
+ static networkId = DEFAULT_NETWORK_ID;
8
12
  static getWalletOptions() {
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
- });
13
+ const midnightApi = getWindow()
14
+ ?.midnight ?? {};
15
+ console.log("MidnightConnector.getWalletOptions: window.midnight content:", midnightApi);
16
+ const options = Object.entries(midnightApi).reduce((options, [key, api]) => {
17
+ console.log(`MidnightConnector.getWalletOptions: Checking wallet "${key}"`, api);
18
+ if (!isInitialApi(api)) {
19
+ console.log(`MidnightConnector.getWalletOptions: Wallet "${key}" is NOT a valid InitialAPI (missing connect or apiVersion)`);
20
+ return options;
22
21
  }
22
+ if (!isCompatibleApiVersion(api.apiVersion)) {
23
+ console.log(`MidnightConnector.getWalletOptions: Wallet "${key}" has incompatible version ${api.apiVersion} (required: ${COMPATIBLE_CONNECTOR_API_VERSION})`);
24
+ return options;
25
+ }
26
+ const name = api.rdns?.trim() || key;
27
+ const displayName = api.name?.trim() || name;
28
+ console.log(`MidnightConnector.getWalletOptions: Wallet "${key}" is COMPATIBLE. Name: ${name}, DisplayName: ${displayName}`);
29
+ options.push({
30
+ metadata: {
31
+ name,
32
+ displayName,
33
+ icon: api.icon,
34
+ },
35
+ api: () => connectWithNetwork(api, MidnightConnector.networkId),
36
+ });
23
37
  return options;
24
38
  }, []);
39
+ console.log(`MidnightConnector.getWalletOptions: Found ${options.length} compatible wallets`);
25
40
  return options;
26
41
  }
27
42
  static instance() {
@@ -31,6 +46,9 @@ export class MidnightConnector {
31
46
  }
32
47
  return MidnightConnector.INSTANCE;
33
48
  }
49
+ setNetworkId = (networkId) => {
50
+ MidnightConnector.networkId = networkId || DEFAULT_NETWORK_ID;
51
+ };
34
52
  getOrThrowProvider = () => {
35
53
  if (this.provider == null) {
36
54
  throw new Error(`MidnightConnector provider isn't initialized yet`);
@@ -89,9 +107,12 @@ export class MidnightProvider {
89
107
  getConnection() {
90
108
  return this.conn;
91
109
  }
92
- signMessage = async (message) => {
93
- console.log('NYI LACE: MidnightProvider.signMessage', message);
94
- return message; // this.conn.api.signMessage(message);
110
+ signMessage = async (message, keyType = "unshielded") => {
111
+ const signature = (await this.conn.api.signData(message, {
112
+ encoding: "text",
113
+ keyType,
114
+ }));
115
+ return signature.signature;
95
116
  };
96
117
  getAddress() {
97
118
  return {
@@ -100,13 +121,22 @@ export class MidnightProvider {
100
121
  };
101
122
  }
102
123
  static fetchAddress = async (conn) => {
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;
124
+ const addresses = await conn.api.getShieldedAddresses();
125
+ if (!addresses?.shieldedAddress) {
126
+ throw new Error("Midnight wallet did not return a shielded address");
127
+ }
128
+ return addresses.shieldedAddress;
111
129
  };
112
130
  }
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.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,CAa7D"}
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,CAe7D"}
@@ -11,7 +11,9 @@ export async function checkMidnightWalletStatus() {
11
11
  return { success: true, result: "OK" };
12
12
  }
13
13
  export async function midnightLoginWrapper(loginInfo) {
14
- const loginResult = await connectInjected("midnightLoginWrapper", loginInfo, MidnightConnector.instance());
14
+ const connector = MidnightConnector.instance();
15
+ connector.setNetworkId(loginInfo.networkId ?? "undeployed");
16
+ const loginResult = await connectInjected("midnightLoginWrapper", loginInfo, connector);
15
17
  if (loginResult.success === false) {
16
18
  return loginResult;
17
19
  }
@@ -41,7 +41,9 @@ export type LoginInfoMap = {
41
41
  preferBatchedMode: boolean;
42
42
  seed: string;
43
43
  };
44
- [WalletMode.Midnight]: BaseLoginInfo<MidnightApi>;
44
+ [WalletMode.Midnight]: BaseLoginInfo<MidnightApi> & {
45
+ networkId?: string;
46
+ };
45
47
  };
46
48
  type ToUnion<T> = {
47
49
  [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,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"}
1
+ {"version":3,"file":"wallet-modes.d.ts","sourceRoot":"","sources":["../../../src/wallets/src/wallet-modes.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@paimaexample/wallets",
3
- "version": "0.4.0",
3
+ "version": "0.6.0",
4
4
  "description": "Your package.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -25,6 +25,7 @@
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",
28
29
  "@perawallet/connect": "^1.4.2",
29
30
  "@polkadot/extension-dapp": "^0.58.10",
30
31
  "@polkadot/extension-inject": "^0.58.10",
@@ -48,6 +49,7 @@
48
49
  "mina-signer": "^3.0.7",
49
50
  "mqtt": "^5.14.0",
50
51
  "mqtt-pattern": "^2.1.0",
52
+ "semver": "^7.7.3",
51
53
  "viem": "2.37.3",
52
54
  "web3": "^4.16.0",
53
55
  "web3-utils": "^4.3.3"
@@ -1,11 +1,14 @@
1
1
  import { type MidnightAddress } from "../../../utils/src/mod.js";
2
+ import type { ConnectedAPI } from "@midnight-ntwrk/dapp-connector-api";
2
3
  import { type IInjectedConnector, type ActiveConnection, type IProvider, type AddressAndType, type UserSignature, type IConnector, type ConnectionOption } from "../IProvider.js";
3
- export type MidnightApi = any;
4
+ export type MidnightApi = ConnectedAPI;
4
5
  export declare class MidnightConnector implements IConnector<MidnightApi>, IInjectedConnector<MidnightApi> {
5
6
  private provider;
6
7
  private static INSTANCE;
8
+ private static networkId;
7
9
  static getWalletOptions(): ConnectionOption<MidnightApi>[];
8
10
  static instance(): MidnightConnector;
11
+ setNetworkId: (networkId: string) => void;
9
12
  getOrThrowProvider: () => MidnightProvider;
10
13
  getProvider: () => undefined | MidnightProvider;
11
14
  isConnected(): boolean;
@@ -19,7 +22,7 @@ export declare class MidnightProvider implements IProvider<MidnightApi> {
19
22
  constructor(conn: ActiveConnection<MidnightApi>, address: MidnightAddress);
20
23
  static init: (conn: ActiveConnection<MidnightApi>) => Promise<MidnightProvider>;
21
24
  getConnection(): ActiveConnection<MidnightApi>;
22
- signMessage: (message: string) => Promise<UserSignature>;
25
+ signMessage: (message: string, keyType?: "unshielded") => Promise<UserSignature>;
23
26
  getAddress(): AddressAndType;
24
27
  static fetchAddress: (conn: ActiveConnection<MidnightApi>) => Promise<string>;
25
28
  }
@@ -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,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
+ {"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,KAAK,EACV,YAAY,EAGb,MAAM,oCAAoC,CAAC;AAE5C,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;AAGzB,MAAM,MAAM,WAAW,GAAG,YAAY,CAAC;AAMvC,qBAAa,iBACX,YAAW,UAAU,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC,WAAW,CAAC;IACnE,OAAO,CAAC,QAAQ,CAA+B;IAC/C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAA4C;IACnE,OAAO,CAAC,MAAM,CAAC,SAAS,CAAsB;IAE9C,MAAM,CAAC,gBAAgB,IAAI,gBAAgB,CAAC,WAAW,CAAC,EAAE;IA+B1D,MAAM,CAAC,QAAQ,IAAI,iBAAiB;IAQpC,YAAY,GAAI,WAAW,MAAM,KAAG,IAAI,CAEtC;IAEF,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,GACT,SAAS,MAAM,EACf,UAAS,YAA2B,KACnC,OAAO,CAAC,aAAa,CAAC,CAMvB;IAEF,UAAU,IAAI,cAAc;IAO5B,MAAM,CAAC,YAAY,GAAU,MAAM,gBAAgB,CAAC,WAAW,CAAC,KAAG,OAAO,CAAC,MAAM,CAAC,CAMhF;CACH"}
@@ -1,30 +1,48 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
3
6
  exports.MidnightProvider = exports.MidnightConnector = void 0;
4
7
  const mod_js_1 = require("../../../utils/src/mod.js");
8
+ const semver_1 = __importDefault(require("semver"));
5
9
  const IProvider_js_1 = require("../IProvider.js");
6
10
  const windows_js_1 = require("../windows.js");
11
+ const COMPATIBLE_CONNECTOR_API_VERSION = ">=1.0.0";
12
+ const DEFAULT_NETWORK_ID = "undeployed";
7
13
  // TODO Implement this class
8
14
  class MidnightConnector {
9
15
  provider;
10
16
  static INSTANCE = undefined;
17
+ static networkId = DEFAULT_NETWORK_ID;
11
18
  static getWalletOptions() {
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
- });
19
+ const midnightApi = (0, windows_js_1.getWindow)()
20
+ ?.midnight ?? {};
21
+ console.log("MidnightConnector.getWalletOptions: window.midnight content:", midnightApi);
22
+ const options = Object.entries(midnightApi).reduce((options, [key, api]) => {
23
+ console.log(`MidnightConnector.getWalletOptions: Checking wallet "${key}"`, api);
24
+ if (!isInitialApi(api)) {
25
+ console.log(`MidnightConnector.getWalletOptions: Wallet "${key}" is NOT a valid InitialAPI (missing connect or apiVersion)`);
26
+ return options;
25
27
  }
28
+ if (!isCompatibleApiVersion(api.apiVersion)) {
29
+ console.log(`MidnightConnector.getWalletOptions: Wallet "${key}" has incompatible version ${api.apiVersion} (required: ${COMPATIBLE_CONNECTOR_API_VERSION})`);
30
+ return options;
31
+ }
32
+ const name = api.rdns?.trim() || key;
33
+ const displayName = api.name?.trim() || name;
34
+ console.log(`MidnightConnector.getWalletOptions: Wallet "${key}" is COMPATIBLE. Name: ${name}, DisplayName: ${displayName}`);
35
+ options.push({
36
+ metadata: {
37
+ name,
38
+ displayName,
39
+ icon: api.icon,
40
+ },
41
+ api: () => connectWithNetwork(api, MidnightConnector.networkId),
42
+ });
26
43
  return options;
27
44
  }, []);
45
+ console.log(`MidnightConnector.getWalletOptions: Found ${options.length} compatible wallets`);
28
46
  return options;
29
47
  }
30
48
  static instance() {
@@ -34,6 +52,9 @@ class MidnightConnector {
34
52
  }
35
53
  return MidnightConnector.INSTANCE;
36
54
  }
55
+ setNetworkId = (networkId) => {
56
+ MidnightConnector.networkId = networkId || DEFAULT_NETWORK_ID;
57
+ };
37
58
  getOrThrowProvider = () => {
38
59
  if (this.provider == null) {
39
60
  throw new Error(`MidnightConnector provider isn't initialized yet`);
@@ -93,9 +114,12 @@ class MidnightProvider {
93
114
  getConnection() {
94
115
  return this.conn;
95
116
  }
96
- signMessage = async (message) => {
97
- console.log('NYI LACE: MidnightProvider.signMessage', message);
98
- return message; // this.conn.api.signMessage(message);
117
+ signMessage = async (message, keyType = "unshielded") => {
118
+ const signature = (await this.conn.api.signData(message, {
119
+ encoding: "text",
120
+ keyType,
121
+ }));
122
+ return signature.signature;
99
123
  };
100
124
  getAddress() {
101
125
  return {
@@ -104,14 +128,23 @@ class MidnightProvider {
104
128
  };
105
129
  }
106
130
  static fetchAddress = async (conn) => {
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;
131
+ const addresses = await conn.api.getShieldedAddresses();
132
+ if (!addresses?.shieldedAddress) {
133
+ throw new Error("Midnight wallet did not return a shielded address");
134
+ }
135
+ return addresses.shieldedAddress;
115
136
  };
116
137
  }
117
138
  exports.MidnightProvider = MidnightProvider;
139
+ const isInitialApi = (api) => {
140
+ return (!!api &&
141
+ typeof api.connect === "function" &&
142
+ typeof api.apiVersion === "string");
143
+ };
144
+ const isCompatibleApiVersion = (apiVersion) => {
145
+ return semver_1.default.satisfies(apiVersion, COMPATIBLE_CONNECTOR_API_VERSION, { includePrerelease: true });
146
+ };
147
+ const connectWithNetwork = async (api, networkId) => {
148
+ const connect = api.connect.bind(api);
149
+ return await connect(networkId);
150
+ };
@@ -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,CAa7D"}
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,CAe7D"}
@@ -15,7 +15,9 @@ async function checkMidnightWalletStatus() {
15
15
  return { success: true, result: "OK" };
16
16
  }
17
17
  async function midnightLoginWrapper(loginInfo) {
18
- const loginResult = await (0, wallet_modes_js_1.connectInjected)("midnightLoginWrapper", loginInfo, midnight_js_1.MidnightConnector.instance());
18
+ const connector = midnight_js_1.MidnightConnector.instance();
19
+ connector.setNetworkId(loginInfo.networkId ?? "undeployed");
20
+ const loginResult = await (0, wallet_modes_js_1.connectInjected)("midnightLoginWrapper", loginInfo, connector);
19
21
  if (loginResult.success === false) {
20
22
  return loginResult;
21
23
  }
@@ -41,7 +41,9 @@ export type LoginInfoMap = {
41
41
  preferBatchedMode: boolean;
42
42
  seed: string;
43
43
  };
44
- [WalletMode.Midnight]: BaseLoginInfo<MidnightApi>;
44
+ [WalletMode.Midnight]: BaseLoginInfo<MidnightApi> & {
45
+ networkId?: string;
46
+ };
45
47
  };
46
48
  type ToUnion<T> = {
47
49
  [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,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"}
1
+ {"version":3,"file":"wallet-modes.d.ts","sourceRoot":"","sources":["../../../src/wallets/src/wallet-modes.ts"],"names":[],"mappings":"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"}