@massalabs/wallet-provider 3.0.1-dev.20241121204354 → 3.0.1-dev.20241128090820

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.
@@ -37,9 +37,25 @@ export declare class MassaStationWallet implements Wallet {
37
37
  listenNetworkChanges(callback: (network: Network) => void): {
38
38
  unsubscribe: () => void;
39
39
  } | undefined;
40
+ /**
41
+ * Simulates connecting to the station.
42
+ * This method always returns `true` because the station is inherently connected.
43
+ */
40
44
  connect(): Promise<boolean>;
45
+ /**
46
+ * Simulates disconnecting from the station.
47
+ * This method always returns `true` because the station cannot be disconnected.
48
+ */
41
49
  disconnect(): Promise<boolean>;
50
+ /**
51
+ * Indicates if the station is connected.
52
+ * Always returns `true` because the station is always connected when running.
53
+ */
42
54
  connected(): boolean;
55
+ /**
56
+ * Indicates if the station is enabled.
57
+ * Always returns `true` because the station is always enabled by default.
58
+ */
43
59
  enabled(): boolean;
44
60
  }
45
61
  //# sourceMappingURL=MassaStationWallet.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MassaStationWallet.d.ts","sourceRoot":"","sources":["../../../src/massaStation/MassaStationWallet.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvC;;GAEG;AACH,eAAO,MAAM,iBAAiB,2BAA2B,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,0BAA0B,QAAoE,CAAC;AAO5G;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,MAAM;IAC/C,OAAO,CAAC,UAAU,CAA2B;IAE7C,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,cAAc,CAAU;IAEzB,IAAI,IAAI,UAAU;WAIZ,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAIlC,QAAQ,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAe1C,aAAa,CACxB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;IAWH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB7C,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAI7C;;;;OAIG;IACU,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAcpE,oBAAoB,IAAI;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,SAAS;IAM/D,oBAAoB,CACzB,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GACnC;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,SAAS;IA8B7B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAM3B,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAMpC,SAAS,IAAI,OAAO;IAMpB,OAAO,IAAI,OAAO;CAK1B"}
1
+ {"version":3,"file":"MassaStationWallet.d.ts","sourceRoot":"","sources":["../../../src/massaStation/MassaStationWallet.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAG5D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAEhD,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAGvC;;GAEG;AACH,eAAO,MAAM,iBAAiB,2BAA2B,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,0BAA0B,QAAoE,CAAC;AAO5G;;;;GAIG;AACH,qBAAa,kBAAmB,YAAW,MAAM;IAC/C,OAAO,CAAC,UAAU,CAA2B;IAE7C,OAAO,CAAC,cAAc,CAAsB;IAC5C,OAAO,CAAC,cAAc,CAAU;IAEzB,IAAI,IAAI,UAAU;WAIZ,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAIlC,QAAQ,IAAI,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAe1C,aAAa,CACxB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;IAUH,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAyB7C,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAI7C;;;;OAIG;IACU,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAcpE,oBAAoB,IAAI;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,SAAS;IAM/D,oBAAoB,CACzB,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,GACnC;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,SAAS;IA8B1C;;;OAGG;IACU,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAIxC;;;OAGG;IACU,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAI3C;;;OAGG;IACI,SAAS,IAAI,OAAO;IAI3B;;;OAGG;IACI,OAAO,IAAI,OAAO;CAG1B"}
@@ -50,7 +50,6 @@ export class MassaStationWallet {
50
50
  publicKey,
51
51
  privateKey,
52
52
  });
53
- console.log('importAccount res ', res);
54
53
  if (res.isError) {
55
54
  throw res.error;
56
55
  }
@@ -109,17 +108,33 @@ export class MassaStationWallet {
109
108
  },
110
109
  };
111
110
  }
111
+ /**
112
+ * Simulates connecting to the station.
113
+ * This method always returns `true` because the station is inherently connected.
114
+ */
112
115
  async connect() {
113
- throw new Error('connect functionality is not yet implemented for the current provider.');
116
+ return true;
114
117
  }
118
+ /**
119
+ * Simulates disconnecting from the station.
120
+ * This method always returns `true` because the station cannot be disconnected.
121
+ */
115
122
  async disconnect() {
116
- throw new Error('disconnect functionality is not yet implemented for the current provider.');
123
+ return true;
117
124
  }
125
+ /**
126
+ * Indicates if the station is connected.
127
+ * Always returns `true` because the station is always connected when running.
128
+ */
118
129
  connected() {
119
- throw new Error('connected functionality is not yet implemented for the current provider.');
130
+ return true;
120
131
  }
132
+ /**
133
+ * Indicates if the station is enabled.
134
+ * Always returns `true` because the station is always enabled by default.
135
+ */
121
136
  enabled() {
122
- throw new Error('enabled functionality is not yet implemented for the current provider.');
137
+ return true;
123
138
  }
124
139
  }
125
140
  //# sourceMappingURL=MassaStationWallet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MassaStationWallet.js","sourceRoot":"","sources":["../../../src/massaStation/MassaStationWallet.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n deleteRequest,\n getRequest,\n postRequest,\n putRequest,\n} from './RequestHandler';\nimport { MassaStationAccount } from './MassaStationAccount';\nimport { MassaStationAccountStatus, MSAccount, MSAccountsResp } from './types';\nimport { EventEmitter } from 'eventemitter3';\nimport { Wallet } from '../wallet/interface';\nimport { Network } from '@massalabs/massa-web3';\nimport { networkInfos } from './utils/network';\nimport { WalletName } from '../wallet';\nimport { isMassaWalletEnabled } from './MassaStationDiscovery';\n\n/**\n * MassaStation url\n */\nexport const MASSA_STATION_URL = 'https://station.massa/';\n\n/**\n * The MassaStation accounts url\n */\nexport const MASSA_STATION_ACCOUNTS_URL = `${MASSA_STATION_URL}plugin/massa-labs/massa-wallet/api/accounts`;\n\n/**\n * Events emitted by MassaStation\n */\nconst MASSA_STATION_NETWORK_CHANGED = 'MASSA_STATION_NETWORK_CHANGED';\n\n/**\n * This class provides an implementation for communicating with the MassaStation wallet.\n * @remarks\n * This class is used as a proxy to the MassaStation server for exchanging message over https calls.\n */\nexport class MassaStationWallet implements Wallet {\n private walletName = WalletName.MassaStation;\n\n private eventsListener = new EventEmitter();\n private currentNetwork: Network;\n\n public name(): WalletName {\n return this.walletName;\n }\n\n static async checkInstalled(): Promise<boolean> {\n return isMassaWalletEnabled();\n }\n\n public async accounts(): Promise<MassaStationAccount[]> {\n const res = await getRequest<MSAccountsResp>(MASSA_STATION_ACCOUNTS_URL);\n\n if (res.isError) {\n throw res.error;\n }\n return res.result\n .filter((account) => {\n return account.status === MassaStationAccountStatus.OK;\n })\n .map((account) => {\n return new MassaStationAccount(account.address, account.nickname);\n });\n }\n\n public async importAccount(\n publicKey: string,\n privateKey: string,\n ): Promise<void> {\n const res = await putRequest(MASSA_STATION_ACCOUNTS_URL, {\n publicKey,\n privateKey,\n });\n console.log('importAccount res ', res);\n if (res.isError) {\n throw res.error;\n }\n }\n\n public async deleteAccount(address: string): Promise<void> {\n // get all accounts and find the account to delete\n const allAccounts = await getRequest<MSAccountsResp>(\n MASSA_STATION_ACCOUNTS_URL,\n );\n\n if (allAccounts.isError) throw allAccounts.error;\n\n const accountToDelete = allAccounts.result.find(\n (account) => account.address === address,\n );\n\n if (!accountToDelete) {\n throw new Error('Account not found');\n }\n\n const res = await deleteRequest<unknown>(\n `${MASSA_STATION_ACCOUNTS_URL}/${accountToDelete.nickname}`,\n );\n\n if (res.isError) {\n throw res.error;\n }\n }\n\n public async networkInfos(): Promise<Network> {\n return networkInfos();\n }\n\n /**\n * This method sends an http call to the MassaStation server to create a new random account.\n *\n * @returns a Promise that resolves to the details of the newly generated account.\n */\n public async generateNewAccount(name: string): Promise<MassaStationAccount> {\n const response = await postRequest<MSAccount>(\n MASSA_STATION_ACCOUNTS_URL + '/' + name,\n {},\n );\n\n if (response.isError) throw response.error;\n\n return new MassaStationAccount(\n response.result.address,\n response.result.nickname,\n );\n }\n\n public listenAccountChanges(): { unsubscribe: () => void } | undefined {\n throw new Error(\n 'listenAccountChanges is not yet implemented for the current provider.',\n );\n }\n\n public listenNetworkChanges(\n callback: (network: Network) => void,\n ): { unsubscribe: () => void } | undefined {\n this.eventsListener.on(MASSA_STATION_NETWORK_CHANGED, (evt) =>\n callback(evt),\n );\n\n // check periodically if network changed\n const intervalId = setInterval(async () => {\n const network = await this.networkInfos();\n if (!this.currentNetwork) {\n this.currentNetwork = network;\n return;\n }\n if (this.currentNetwork.name !== network.name) {\n this.currentNetwork = network;\n this.eventsListener.emit(MASSA_STATION_NETWORK_CHANGED, network);\n }\n }, 500);\n\n return {\n unsubscribe: () => {\n clearInterval(intervalId);\n this.eventsListener.removeListener(\n MASSA_STATION_NETWORK_CHANGED,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n () => {},\n );\n },\n };\n }\n\n public async connect(): Promise<boolean> {\n throw new Error(\n 'connect functionality is not yet implemented for the current provider.',\n );\n }\n\n public async disconnect(): Promise<boolean> {\n throw new Error(\n 'disconnect functionality is not yet implemented for the current provider.',\n );\n }\n\n public connected(): boolean {\n throw new Error(\n 'connected functionality is not yet implemented for the current provider.',\n );\n }\n\n public enabled(): boolean {\n throw new Error(\n 'enabled functionality is not yet implemented for the current provider.',\n );\n }\n}\n"]}
1
+ {"version":3,"file":"MassaStationWallet.js","sourceRoot":"","sources":["../../../src/massaStation/MassaStationWallet.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n deleteRequest,\n getRequest,\n postRequest,\n putRequest,\n} from './RequestHandler';\nimport { MassaStationAccount } from './MassaStationAccount';\nimport { MassaStationAccountStatus, MSAccount, MSAccountsResp } from './types';\nimport { EventEmitter } from 'eventemitter3';\nimport { Wallet } from '../wallet/interface';\nimport { Network } from '@massalabs/massa-web3';\nimport { networkInfos } from './utils/network';\nimport { WalletName } from '../wallet';\nimport { isMassaWalletEnabled } from './MassaStationDiscovery';\n\n/**\n * MassaStation url\n */\nexport const MASSA_STATION_URL = 'https://station.massa/';\n\n/**\n * The MassaStation accounts url\n */\nexport const MASSA_STATION_ACCOUNTS_URL = `${MASSA_STATION_URL}plugin/massa-labs/massa-wallet/api/accounts`;\n\n/**\n * Events emitted by MassaStation\n */\nconst MASSA_STATION_NETWORK_CHANGED = 'MASSA_STATION_NETWORK_CHANGED';\n\n/**\n * This class provides an implementation for communicating with the MassaStation wallet.\n * @remarks\n * This class is used as a proxy to the MassaStation server for exchanging message over https calls.\n */\nexport class MassaStationWallet implements Wallet {\n private walletName = WalletName.MassaStation;\n\n private eventsListener = new EventEmitter();\n private currentNetwork: Network;\n\n public name(): WalletName {\n return this.walletName;\n }\n\n static async checkInstalled(): Promise<boolean> {\n return isMassaWalletEnabled();\n }\n\n public async accounts(): Promise<MassaStationAccount[]> {\n const res = await getRequest<MSAccountsResp>(MASSA_STATION_ACCOUNTS_URL);\n\n if (res.isError) {\n throw res.error;\n }\n return res.result\n .filter((account) => {\n return account.status === MassaStationAccountStatus.OK;\n })\n .map((account) => {\n return new MassaStationAccount(account.address, account.nickname);\n });\n }\n\n public async importAccount(\n publicKey: string,\n privateKey: string,\n ): Promise<void> {\n const res = await putRequest(MASSA_STATION_ACCOUNTS_URL, {\n publicKey,\n privateKey,\n });\n if (res.isError) {\n throw res.error;\n }\n }\n\n public async deleteAccount(address: string): Promise<void> {\n // get all accounts and find the account to delete\n const allAccounts = await getRequest<MSAccountsResp>(\n MASSA_STATION_ACCOUNTS_URL,\n );\n\n if (allAccounts.isError) throw allAccounts.error;\n\n const accountToDelete = allAccounts.result.find(\n (account) => account.address === address,\n );\n\n if (!accountToDelete) {\n throw new Error('Account not found');\n }\n\n const res = await deleteRequest<unknown>(\n `${MASSA_STATION_ACCOUNTS_URL}/${accountToDelete.nickname}`,\n );\n\n if (res.isError) {\n throw res.error;\n }\n }\n\n public async networkInfos(): Promise<Network> {\n return networkInfos();\n }\n\n /**\n * This method sends an http call to the MassaStation server to create a new random account.\n *\n * @returns a Promise that resolves to the details of the newly generated account.\n */\n public async generateNewAccount(name: string): Promise<MassaStationAccount> {\n const response = await postRequest<MSAccount>(\n MASSA_STATION_ACCOUNTS_URL + '/' + name,\n {},\n );\n\n if (response.isError) throw response.error;\n\n return new MassaStationAccount(\n response.result.address,\n response.result.nickname,\n );\n }\n\n public listenAccountChanges(): { unsubscribe: () => void } | undefined {\n throw new Error(\n 'listenAccountChanges is not yet implemented for the current provider.',\n );\n }\n\n public listenNetworkChanges(\n callback: (network: Network) => void,\n ): { unsubscribe: () => void } | undefined {\n this.eventsListener.on(MASSA_STATION_NETWORK_CHANGED, (evt) =>\n callback(evt),\n );\n\n // check periodically if network changed\n const intervalId = setInterval(async () => {\n const network = await this.networkInfos();\n if (!this.currentNetwork) {\n this.currentNetwork = network;\n return;\n }\n if (this.currentNetwork.name !== network.name) {\n this.currentNetwork = network;\n this.eventsListener.emit(MASSA_STATION_NETWORK_CHANGED, network);\n }\n }, 500);\n\n return {\n unsubscribe: () => {\n clearInterval(intervalId);\n this.eventsListener.removeListener(\n MASSA_STATION_NETWORK_CHANGED,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n () => {},\n );\n },\n };\n }\n\n /**\n * Simulates connecting to the station.\n * This method always returns `true` because the station is inherently connected.\n */\n public async connect(): Promise<boolean> {\n return true;\n }\n\n /**\n * Simulates disconnecting from the station.\n * This method always returns `true` because the station cannot be disconnected.\n */\n public async disconnect(): Promise<boolean> {\n return true;\n }\n\n /**\n * Indicates if the station is connected.\n * Always returns `true` because the station is always connected when running.\n */\n public connected(): boolean {\n return true;\n }\n\n /**\n * Indicates if the station is enabled.\n * Always returns `true` because the station is always enabled by default.\n */\n public enabled(): boolean {\n return true;\n }\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@massalabs/wallet-provider",
3
- "version": "3.0.1-dev.20241121204354",
3
+ "version": "3.0.1-dev.20241128090820",
4
4
  "description": "massa's wallet provider",
5
5
  "main": "dist/esm/index.js",
6
6
  "module": "dist/esm/index.js",