@massalabs/wallet-provider 1.5.2-dev.20240112130554 → 1.5.2-dev.20240123101407

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.
Files changed (37) hide show
  1. package/dist/cmd/bearbyWallet/BearbyAccount.d.ts.map +1 -1
  2. package/dist/cmd/bearbyWallet/BearbyAccount.js +5 -5
  3. package/dist/cmd/bearbyWallet/BearbyAccount.js.map +1 -1
  4. package/dist/cmd/bearbyWallet/BearbyProvider.d.ts +28 -0
  5. package/dist/cmd/bearbyWallet/BearbyProvider.d.ts.map +1 -1
  6. package/dist/cmd/bearbyWallet/BearbyProvider.js +36 -0
  7. package/dist/cmd/bearbyWallet/BearbyProvider.js.map +1 -1
  8. package/dist/cmd/massaStation/MassaStationProvider.d.ts +4 -0
  9. package/dist/cmd/massaStation/MassaStationProvider.d.ts.map +1 -1
  10. package/dist/cmd/massaStation/MassaStationProvider.js +13 -2
  11. package/dist/cmd/massaStation/MassaStationProvider.js.map +1 -1
  12. package/dist/cmd/provider/IProvider.d.ts +4 -0
  13. package/dist/cmd/provider/IProvider.d.ts.map +1 -1
  14. package/dist/cmd/provider/IProvider.js.map +1 -1
  15. package/dist/cmd/provider/Provider.d.ts +4 -0
  16. package/dist/cmd/provider/Provider.d.ts.map +1 -1
  17. package/dist/cmd/provider/Provider.js +14 -4
  18. package/dist/cmd/provider/Provider.js.map +1 -1
  19. package/dist/esm/bearbyWallet/BearbyAccount.d.ts.map +1 -1
  20. package/dist/esm/bearbyWallet/BearbyAccount.js +5 -5
  21. package/dist/esm/bearbyWallet/BearbyAccount.js.map +1 -1
  22. package/dist/esm/bearbyWallet/BearbyProvider.d.ts +28 -0
  23. package/dist/esm/bearbyWallet/BearbyProvider.d.ts.map +1 -1
  24. package/dist/esm/bearbyWallet/BearbyProvider.js +36 -0
  25. package/dist/esm/bearbyWallet/BearbyProvider.js.map +1 -1
  26. package/dist/esm/massaStation/MassaStationProvider.d.ts +4 -0
  27. package/dist/esm/massaStation/MassaStationProvider.d.ts.map +1 -1
  28. package/dist/esm/massaStation/MassaStationProvider.js +13 -2
  29. package/dist/esm/massaStation/MassaStationProvider.js.map +1 -1
  30. package/dist/esm/provider/IProvider.d.ts +4 -0
  31. package/dist/esm/provider/IProvider.d.ts.map +1 -1
  32. package/dist/esm/provider/IProvider.js.map +1 -1
  33. package/dist/esm/provider/Provider.d.ts +4 -0
  34. package/dist/esm/provider/Provider.d.ts.map +1 -1
  35. package/dist/esm/provider/Provider.js +14 -4
  36. package/dist/esm/provider/Provider.js.map +1 -1
  37. package/package.json +3 -3
@@ -1 +1 @@
1
- {"version":3,"file":"BearbyAccount.d.ts","sourceRoot":"","sources":["../../../src/bearbyWallet/BearbyAccount.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,IAAI,EAEJ,8BAA8B,EAC/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,IAAI,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAO/C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAM5D;;GAEG;AACH,eAAO,MAAM,eAAe,sCAAsC,CAAC;AAEnE,oBAAY,cAAc;IACxB,OAAO,IAAA;IACP,OAAO,IAAA;IACP,QAAQ,IAAA;IACR,SAAS,IAAA;IACT,MAAM,IAAA;CACP;AAED;;GAEG;AACH,oBAAY,eAAe;IACzB,WAAW,IAAI;IACf,OAAO,IAAI;IACX,QAAQ,IAAI;IACZ,SAAS,IAAI;IACb,MAAM,IAAI;CACX;AAQD,qBAAa,aAAc,YAAW,QAAQ;IAC5C,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAmB;gBAEhB,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM;IAMpE,OAAO,IAAI,MAAM;IAIjB,IAAI,IAAI,MAAM;IAId,YAAY,IAAI,MAAM;IAIhB,OAAO;IASP,OAAO,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAyB3C,IAAI,CACf,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GACjC,OAAO,CAAC,kBAAkB,CAAC;IAkBjB,QAAQ,CACnB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,mBAAmB,CAAC;IAUlB,SAAS,CACpB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,mBAAmB,CAAC;IASlB,eAAe,CAC1B,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,EACxB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,mBAAmB,CAAC;IAalB,MAAM,CACjB,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,IAAI,GAAG,UAAU,EAC5B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,sBAAsB,UAAQ,GAC7B,OAAO,CAAC,mBAAmB,GAAG,8BAA8B,CAAC;IAgChE;;;;;;;;;;;OAWG;IACU,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAKjD;;;;;;;;;OASG;cACa,kBAAkB,CAAC,CAAC,EAClC,QAAQ,EAAE,uBAAuB,EACjC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,CAAC,CAAC;IAYb;;;;;;;;;;;;OAYG;YACW,oBAAoB;IAwCrB,mBAAmB,CAC9B,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,UAAU,GAAG,IAAI,EAC5B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,8BAA8B,CAAC;CAmE3C"}
1
+ {"version":3,"file":"BearbyAccount.d.ts","sourceRoot":"","sources":["../../../src/bearbyWallet/BearbyAccount.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,IAAI,EAEJ,8BAA8B,EAC/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,IAAI,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAO/C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAM5D;;GAEG;AACH,eAAO,MAAM,eAAe,sCAAsC,CAAC;AAEnE,oBAAY,cAAc;IACxB,OAAO,IAAA;IACP,OAAO,IAAA;IACP,QAAQ,IAAA;IACR,SAAS,IAAA;IACT,MAAM,IAAA;CACP;AAED;;GAEG;AACH,oBAAY,eAAe;IACzB,WAAW,IAAI;IACf,OAAO,IAAI;IACX,QAAQ,IAAI;IACZ,SAAS,IAAI;IACb,MAAM,IAAI;CACX;AAQD,qBAAa,aAAc,YAAW,QAAQ;IAC5C,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAmB;gBAEhB,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM;IAMpE,OAAO,IAAI,MAAM;IAIjB,IAAI,IAAI,MAAM;IAId,YAAY,IAAI,MAAM;IAKhB,OAAO;IASP,OAAO,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAyB3C,IAAI,CACf,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GACjC,OAAO,CAAC,kBAAkB,CAAC;IAkBjB,QAAQ,CACnB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,mBAAmB,CAAC;IAUlB,SAAS,CACpB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,mBAAmB,CAAC;IASlB,eAAe,CAC1B,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,EACxB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,mBAAmB,CAAC;IAalB,MAAM,CACjB,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,IAAI,GAAG,UAAU,EAC5B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,sBAAsB,UAAQ,GAC7B,OAAO,CAAC,mBAAmB,GAAG,8BAA8B,CAAC;IAgChE;;;;;;;;;;;OAWG;IACU,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAKjD;;;;;;;;;OASG;cACa,kBAAkB,CAAC,CAAC,EAClC,QAAQ,EAAE,uBAAuB,EACjC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,CAAC,CAAC;IAYb;;;;;;;;;;;;OAYG;YACW,oBAAoB;IAwCrB,mBAAmB,CAC9B,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,UAAU,GAAG,IAAI,EAC5B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,8BAA8B,CAAC;CAmE3C"}
@@ -1,7 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.BearbyAccount = exports.OperationTypeId = exports.OperationsType = exports.PUBLIC_NODE_RPC = void 0;
4
- const web3_utils_1 = require("@massalabs/web3-utils");
5
4
  const bearby_js_1 = require("@hicaru/bearby.js");
6
5
  const RequestHandler_1 = require("../massaStation/RequestHandler");
7
6
  const jsonRpcMethods_1 = require("./jsonRpcMethods");
@@ -53,6 +52,7 @@ class BearbyAccount {
53
52
  providerName() {
54
53
  return this._providerName;
55
54
  }
55
+ // TODO: Should be removed from account interface as it more a provider method
56
56
  async connect() {
57
57
  try {
58
58
  await bearby_js_1.web3.wallet.connect();
@@ -124,12 +124,12 @@ class BearbyAccount {
124
124
  if (nonPersistentExecution) {
125
125
  return this.nonPersistentCallSC(contractAddress, functionName, parameter, amount, fee, maxGas);
126
126
  }
127
- let unsafeParameters = Uint8Array.from([]);
128
- if (parameter instanceof web3_utils_1.Args) {
129
- unsafeParameters = Uint8Array.from(parameter.serialize());
127
+ let unsafeParameters;
128
+ if (parameter instanceof Uint8Array) {
129
+ unsafeParameters = parameter;
130
130
  }
131
131
  else {
132
- unsafeParameters = parameter;
132
+ unsafeParameters = Uint8Array.from(parameter.serialize());
133
133
  }
134
134
  const operationId = await bearby_js_1.web3.contract.call({
135
135
  maxGas: Number(maxGas),
@@ -1 +1 @@
1
- {"version":3,"file":"BearbyAccount.js","sourceRoot":"","sources":["../../../src/bearbyWallet/BearbyAccount.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Args,\n IContractReadOperationData,\n IContractReadOperationResponse,\n} from '@massalabs/web3-utils';\nimport { ITransactionDetails } from '..';\nimport { IAccountBalanceResponse, IAccountDetails } from '../account';\nimport { IAccount } from '../account/IAccount';\nimport { web3 } from '@hicaru/bearby.js';\nimport {\n postRequest,\n JsonRpcResponseData,\n} from '../massaStation/RequestHandler';\nimport { BalanceResponse } from './BalanceResponse';\nimport { NodeStatus } from './NodeStatus';\nimport { JSON_RPC_REQUEST_METHOD } from './jsonRpcMethods';\nimport axios, { AxiosRequestHeaders, AxiosResponse } from 'axios';\nimport { IAccountSignOutput } from '../account/AccountSign';\n/**\n * The maximum allowed gas for a read operation\n */\nconst MAX_READ_BLOCK_GAS = BigInt(4_294_967_295);\n\n/**\n * The RPC we are using to query the node\n */\nexport const PUBLIC_NODE_RPC = 'https://buildnet.massa.net/api/v2';\n\nexport enum OperationsType {\n Payment,\n RollBuy,\n RollSell,\n ExecuteSC,\n CallSC,\n}\n\n/**\n * Associates an operation type with a number.\n */\nexport enum OperationTypeId {\n Transaction = 0,\n RollBuy = 1,\n RollSell = 2,\n ExecuteSC = 3,\n CallSC = 4,\n}\n\nconst requestHeaders = {\n Accept:\n 'application/json,text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Content-Type': 'application/json',\n} as AxiosRequestHeaders;\n\nexport class BearbyAccount implements IAccount {\n private _providerName: string;\n private _address: string;\n private _name: string;\n private _nodeUrl = PUBLIC_NODE_RPC;\n\n public constructor({ address, name }: IAccountDetails, providerName: string) {\n this._address = address;\n this._name = name ?? 'Bearby_account';\n this._providerName = providerName;\n }\n\n public address(): string {\n return this._address;\n }\n\n public name(): string {\n return this._name;\n }\n\n public providerName(): string {\n return this._providerName;\n }\n\n public async connect() {\n try {\n await web3.wallet.connect();\n } catch (ex) {\n console.log('Bearby connection error: ', ex);\n }\n }\n\n // needs testing\n public async balance(): Promise<IAccountBalanceResponse> {\n await this.connect();\n // Not available on bearby. we have to manually call the api\n const body = {\n jsonrpc: '2.0',\n method: 'get_addresses',\n params: [[this._address]],\n id: 0,\n };\n\n const addressInfos = await postRequest<BalanceResponse>(\n PUBLIC_NODE_RPC,\n body,\n );\n\n if (addressInfos.isError || addressInfos.error) {\n throw addressInfos.error.message;\n }\n return {\n finalBalance: addressInfos.result.result[0].final_balance,\n candidateBalance: addressInfos.result.result[0].candidate_balance,\n } as IAccountBalanceResponse;\n }\n\n // need testing\n public async sign(\n data: Buffer | Uint8Array | string,\n ): Promise<IAccountSignOutput> {\n await this.connect();\n\n let strData: string;\n if (data instanceof Uint8Array) {\n strData = new TextDecoder().decode(data);\n }\n if (data instanceof Buffer) {\n strData = data.toString();\n }\n const signature = await web3.wallet.signMessage(strData);\n return {\n publicKey: signature.publicKey,\n base58Encoded: signature.signature,\n };\n }\n\n // need testing\n public async buyRolls(\n amount: bigint,\n fee: bigint,\n ): Promise<ITransactionDetails> {\n await this.connect();\n const operationId = await web3.massa.buyRolls(amount.toString());\n\n return {\n operationId,\n } as ITransactionDetails;\n }\n\n // need testing\n public async sellRolls(\n amount: bigint,\n fee: bigint,\n ): Promise<ITransactionDetails> {\n await this.connect();\n const operationId = await web3.massa.sellRolls(amount.toString());\n\n return {\n operationId,\n } as ITransactionDetails;\n }\n\n public async sendTransaction(\n amount: bigint,\n recipientAddress: string,\n fee: bigint,\n ): Promise<ITransactionDetails> {\n await this.connect();\n\n const operationId = await web3.massa.payment(\n amount.toString(),\n recipientAddress,\n );\n\n return {\n operationId,\n } as ITransactionDetails;\n }\n\n public async callSC(\n contractAddress: string,\n functionName: string,\n parameter: Args | Uint8Array,\n amount: bigint,\n fee: bigint,\n maxGas: bigint,\n nonPersistentExecution = false,\n ): Promise<ITransactionDetails | IContractReadOperationResponse> {\n await this.connect();\n if (nonPersistentExecution) {\n return this.nonPersistentCallSC(\n contractAddress,\n functionName,\n parameter,\n amount,\n fee,\n maxGas,\n );\n }\n\n let unsafeParameters = Uint8Array.from([]);\n if (parameter instanceof Args) {\n unsafeParameters = Uint8Array.from(parameter.serialize());\n } else {\n unsafeParameters = parameter;\n }\n\n const operationId = await web3.contract.call({\n maxGas: Number(maxGas),\n coins: Number(amount),\n fee: Number(fee),\n targetAddress: contractAddress,\n functionName: functionName,\n unsafeParameters,\n });\n\n return { operationId };\n }\n\n /**\n * Retrieves the node's status.\n *\n * @remarks\n * The returned information includes:\n * - Whether the node is reachable\n * - The number of connected peers\n * - The node's version\n * - The node's configuration parameters\n *\n * @returns A promise that resolves to the node's status information.\n */\n public async getNodeStatus(): Promise<NodeStatus> {\n const jsonRpcRequestMethod = JSON_RPC_REQUEST_METHOD.GET_STATUS;\n return await this.sendJsonRPCRequest<NodeStatus>(jsonRpcRequestMethod, []);\n }\n\n /**\n * Sends a post JSON rpc request to the node.\n *\n * @param resource - The rpc method to call.\n * @param params - The parameters to pass to the rpc method.\n *\n * @throws An error if the rpc method returns an error.\n *\n * @returns A promise that resolves as the result of the rpc method.\n */\n protected async sendJsonRPCRequest<T>(\n resource: JSON_RPC_REQUEST_METHOD,\n params: object,\n ): Promise<T> {\n let resp: JsonRpcResponseData<T> = null;\n resp = await this.promisifyJsonRpcCall(resource, params);\n\n // in case of rpc error, rethrow the error.\n if (resp.isError || resp.error) {\n throw resp.error;\n }\n\n return resp.result;\n }\n\n /**\n * Converts a json rpc call to a promise that resolves as a JsonRpcResponseData\n *\n * @privateRemarks\n * If there is an error while sending the request, the function catches the error, the isError\n * property is set to true, the result property set to null, and the error property set to a\n * new Error object with a message indicating that there was an error.\n *\n * @param resource - The rpc method to call.\n * @param params - The parameters to pass to the rpc method.\n *\n * @returns A promise that resolves as a JsonRpcResponseData.\n */\n private async promisifyJsonRpcCall<T>(\n resource: JSON_RPC_REQUEST_METHOD,\n params: object,\n ): Promise<JsonRpcResponseData<T>> {\n let resp: AxiosResponse<JsonRpcResponseData<T>> = null;\n\n const body = {\n jsonrpc: '2.0',\n method: resource,\n params: params,\n id: 0,\n };\n\n try {\n resp = await axios.post(this._nodeUrl, body, { headers: requestHeaders });\n } catch (ex) {\n return {\n isError: true,\n result: null,\n error: new Error('JSON.parse error: ' + String(ex)),\n } as JsonRpcResponseData<T>;\n }\n\n const responseData: JsonRpcResponseData<T> = resp.data;\n\n if (responseData.error) {\n return {\n isError: true,\n result: null,\n error: new Error(responseData.error.message),\n } as JsonRpcResponseData<T>;\n }\n\n return {\n isError: false,\n result: responseData.result as T,\n error: null,\n } as JsonRpcResponseData<T>;\n }\n\n public async nonPersistentCallSC(\n contractAddress: string,\n functionName: string,\n parameter: Uint8Array | Args,\n amount: bigint,\n fee: bigint,\n maxGas: bigint,\n ): Promise<IContractReadOperationResponse> {\n // not clean but bearby doesn't allow us to get its node urls\n const node = PUBLIC_NODE_RPC;\n // Gas amount check\n if (maxGas > MAX_READ_BLOCK_GAS) {\n throw new Error(\n `\n The gas submitted ${maxGas.toString()} exceeds the max. allowed block gas of \n ${MAX_READ_BLOCK_GAS.toString()}\n `,\n );\n }\n\n // convert parameter to an array of numbers\n let argumentArray = [];\n if (parameter instanceof Uint8Array) {\n argumentArray = Array.from(parameter);\n } else {\n argumentArray = Array.from(parameter.serialize());\n }\n // setup the request body\n const data = {\n max_gas: Number(maxGas),\n target_address: contractAddress,\n target_function: functionName,\n parameter: argumentArray,\n caller_address: this._address,\n coins: Number(amount),\n fee: Number(fee),\n };\n const body = [\n {\n jsonrpc: '2.0',\n method: 'execute_read_only_call',\n params: [[data]],\n id: 0,\n },\n ];\n // returns operation ids\n let jsonRpcCallResult: Array<IContractReadOperationData> = [];\n try {\n let resp = await postRequest<Array<IContractReadOperationData>>(\n node,\n body,\n );\n if (resp.isError || resp.error) {\n throw resp.error.message;\n }\n jsonRpcCallResult = resp.result;\n } catch (ex) {\n throw new Error(\n `MassaStation account: error while interacting with smart contract: ${ex}`,\n );\n }\n if (jsonRpcCallResult.length <= 0) {\n throw new Error(\n `Read operation bad response. No results array in json rpc response. Inspect smart contract`,\n );\n }\n if (jsonRpcCallResult[0].result.Error) {\n throw new Error(jsonRpcCallResult[0].result.Error);\n }\n return {\n returnValue: new Uint8Array(jsonRpcCallResult[0].result[0].result.Ok),\n info: jsonRpcCallResult[0],\n };\n }\n}\n"]}
1
+ {"version":3,"file":"BearbyAccount.js","sourceRoot":"","sources":["../../../src/bearbyWallet/BearbyAccount.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Args,\n IContractReadOperationData,\n IContractReadOperationResponse,\n} from '@massalabs/web3-utils';\nimport { ITransactionDetails } from '..';\nimport { IAccountBalanceResponse, IAccountDetails } from '../account';\nimport { IAccount } from '../account/IAccount';\nimport { web3 } from '@hicaru/bearby.js';\nimport {\n postRequest,\n JsonRpcResponseData,\n} from '../massaStation/RequestHandler';\nimport { BalanceResponse } from './BalanceResponse';\nimport { NodeStatus } from './NodeStatus';\nimport { JSON_RPC_REQUEST_METHOD } from './jsonRpcMethods';\nimport axios, { AxiosRequestHeaders, AxiosResponse } from 'axios';\nimport { IAccountSignOutput } from '../account/AccountSign';\n/**\n * The maximum allowed gas for a read operation\n */\nconst MAX_READ_BLOCK_GAS = BigInt(4_294_967_295);\n\n/**\n * The RPC we are using to query the node\n */\nexport const PUBLIC_NODE_RPC = 'https://buildnet.massa.net/api/v2';\n\nexport enum OperationsType {\n Payment,\n RollBuy,\n RollSell,\n ExecuteSC,\n CallSC,\n}\n\n/**\n * Associates an operation type with a number.\n */\nexport enum OperationTypeId {\n Transaction = 0,\n RollBuy = 1,\n RollSell = 2,\n ExecuteSC = 3,\n CallSC = 4,\n}\n\nconst requestHeaders = {\n Accept:\n 'application/json,text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Content-Type': 'application/json',\n} as AxiosRequestHeaders;\n\nexport class BearbyAccount implements IAccount {\n private _providerName: string;\n private _address: string;\n private _name: string;\n private _nodeUrl = PUBLIC_NODE_RPC;\n\n public constructor({ address, name }: IAccountDetails, providerName: string) {\n this._address = address;\n this._name = name ?? 'Bearby_account';\n this._providerName = providerName;\n }\n\n public address(): string {\n return this._address;\n }\n\n public name(): string {\n return this._name;\n }\n\n public providerName(): string {\n return this._providerName;\n }\n\n // TODO: Should be removed from account interface as it more a provider method\n public async connect() {\n try {\n await web3.wallet.connect();\n } catch (ex) {\n console.log('Bearby connection error: ', ex);\n }\n }\n\n // needs testing\n public async balance(): Promise<IAccountBalanceResponse> {\n await this.connect();\n // Not available on bearby. we have to manually call the api\n const body = {\n jsonrpc: '2.0',\n method: 'get_addresses',\n params: [[this._address]],\n id: 0,\n };\n\n const addressInfos = await postRequest<BalanceResponse>(\n PUBLIC_NODE_RPC,\n body,\n );\n\n if (addressInfos.isError || addressInfos.error) {\n throw addressInfos.error.message;\n }\n return {\n finalBalance: addressInfos.result.result[0].final_balance,\n candidateBalance: addressInfos.result.result[0].candidate_balance,\n } as IAccountBalanceResponse;\n }\n\n // need testing\n public async sign(\n data: Buffer | Uint8Array | string,\n ): Promise<IAccountSignOutput> {\n await this.connect();\n\n let strData: string;\n if (data instanceof Uint8Array) {\n strData = new TextDecoder().decode(data);\n }\n if (data instanceof Buffer) {\n strData = data.toString();\n }\n const signature = await web3.wallet.signMessage(strData);\n return {\n publicKey: signature.publicKey,\n base58Encoded: signature.signature,\n };\n }\n\n // need testing\n public async buyRolls(\n amount: bigint,\n fee: bigint,\n ): Promise<ITransactionDetails> {\n await this.connect();\n const operationId = await web3.massa.buyRolls(amount.toString());\n\n return {\n operationId,\n } as ITransactionDetails;\n }\n\n // need testing\n public async sellRolls(\n amount: bigint,\n fee: bigint,\n ): Promise<ITransactionDetails> {\n await this.connect();\n const operationId = await web3.massa.sellRolls(amount.toString());\n\n return {\n operationId,\n } as ITransactionDetails;\n }\n\n public async sendTransaction(\n amount: bigint,\n recipientAddress: string,\n fee: bigint,\n ): Promise<ITransactionDetails> {\n await this.connect();\n\n const operationId = await web3.massa.payment(\n amount.toString(),\n recipientAddress,\n );\n\n return {\n operationId,\n } as ITransactionDetails;\n }\n\n public async callSC(\n contractAddress: string,\n functionName: string,\n parameter: Args | Uint8Array,\n amount: bigint,\n fee: bigint,\n maxGas: bigint,\n nonPersistentExecution = false,\n ): Promise<ITransactionDetails | IContractReadOperationResponse> {\n await this.connect();\n if (nonPersistentExecution) {\n return this.nonPersistentCallSC(\n contractAddress,\n functionName,\n parameter,\n amount,\n fee,\n maxGas,\n );\n }\n\n let unsafeParameters: Uint8Array;\n if (parameter instanceof Uint8Array) {\n unsafeParameters = parameter;\n } else {\n unsafeParameters = Uint8Array.from(parameter.serialize());\n }\n\n const operationId = await web3.contract.call({\n maxGas: Number(maxGas),\n coins: Number(amount),\n fee: Number(fee),\n targetAddress: contractAddress,\n functionName: functionName,\n unsafeParameters,\n });\n\n return { operationId };\n }\n\n /**\n * Retrieves the node's status.\n *\n * @remarks\n * The returned information includes:\n * - Whether the node is reachable\n * - The number of connected peers\n * - The node's version\n * - The node's configuration parameters\n *\n * @returns A promise that resolves to the node's status information.\n */\n public async getNodeStatus(): Promise<NodeStatus> {\n const jsonRpcRequestMethod = JSON_RPC_REQUEST_METHOD.GET_STATUS;\n return await this.sendJsonRPCRequest<NodeStatus>(jsonRpcRequestMethod, []);\n }\n\n /**\n * Sends a post JSON rpc request to the node.\n *\n * @param resource - The rpc method to call.\n * @param params - The parameters to pass to the rpc method.\n *\n * @throws An error if the rpc method returns an error.\n *\n * @returns A promise that resolves as the result of the rpc method.\n */\n protected async sendJsonRPCRequest<T>(\n resource: JSON_RPC_REQUEST_METHOD,\n params: object,\n ): Promise<T> {\n let resp: JsonRpcResponseData<T> = null;\n resp = await this.promisifyJsonRpcCall(resource, params);\n\n // in case of rpc error, rethrow the error.\n if (resp.isError || resp.error) {\n throw resp.error;\n }\n\n return resp.result;\n }\n\n /**\n * Converts a json rpc call to a promise that resolves as a JsonRpcResponseData\n *\n * @privateRemarks\n * If there is an error while sending the request, the function catches the error, the isError\n * property is set to true, the result property set to null, and the error property set to a\n * new Error object with a message indicating that there was an error.\n *\n * @param resource - The rpc method to call.\n * @param params - The parameters to pass to the rpc method.\n *\n * @returns A promise that resolves as a JsonRpcResponseData.\n */\n private async promisifyJsonRpcCall<T>(\n resource: JSON_RPC_REQUEST_METHOD,\n params: object,\n ): Promise<JsonRpcResponseData<T>> {\n let resp: AxiosResponse<JsonRpcResponseData<T>> = null;\n\n const body = {\n jsonrpc: '2.0',\n method: resource,\n params: params,\n id: 0,\n };\n\n try {\n resp = await axios.post(this._nodeUrl, body, { headers: requestHeaders });\n } catch (ex) {\n return {\n isError: true,\n result: null,\n error: new Error('JSON.parse error: ' + String(ex)),\n } as JsonRpcResponseData<T>;\n }\n\n const responseData: JsonRpcResponseData<T> = resp.data;\n\n if (responseData.error) {\n return {\n isError: true,\n result: null,\n error: new Error(responseData.error.message),\n } as JsonRpcResponseData<T>;\n }\n\n return {\n isError: false,\n result: responseData.result as T,\n error: null,\n } as JsonRpcResponseData<T>;\n }\n\n public async nonPersistentCallSC(\n contractAddress: string,\n functionName: string,\n parameter: Uint8Array | Args,\n amount: bigint,\n fee: bigint,\n maxGas: bigint,\n ): Promise<IContractReadOperationResponse> {\n // not clean but bearby doesn't allow us to get its node urls\n const node = PUBLIC_NODE_RPC;\n // Gas amount check\n if (maxGas > MAX_READ_BLOCK_GAS) {\n throw new Error(\n `\n The gas submitted ${maxGas.toString()} exceeds the max. allowed block gas of \n ${MAX_READ_BLOCK_GAS.toString()}\n `,\n );\n }\n\n // convert parameter to an array of numbers\n let argumentArray = [];\n if (parameter instanceof Uint8Array) {\n argumentArray = Array.from(parameter);\n } else {\n argumentArray = Array.from(parameter.serialize());\n }\n // setup the request body\n const data = {\n max_gas: Number(maxGas),\n target_address: contractAddress,\n target_function: functionName,\n parameter: argumentArray,\n caller_address: this._address,\n coins: Number(amount),\n fee: Number(fee),\n };\n const body = [\n {\n jsonrpc: '2.0',\n method: 'execute_read_only_call',\n params: [[data]],\n id: 0,\n },\n ];\n // returns operation ids\n let jsonRpcCallResult: Array<IContractReadOperationData> = [];\n try {\n let resp = await postRequest<Array<IContractReadOperationData>>(\n node,\n body,\n );\n if (resp.isError || resp.error) {\n throw resp.error.message;\n }\n jsonRpcCallResult = resp.result;\n } catch (ex) {\n throw new Error(\n `MassaStation account: error while interacting with smart contract: ${ex}`,\n );\n }\n if (jsonRpcCallResult.length <= 0) {\n throw new Error(\n `Read operation bad response. No results array in json rpc response. Inspect smart contract`,\n );\n }\n if (jsonRpcCallResult[0].result.Error) {\n throw new Error(jsonRpcCallResult[0].result.Error);\n }\n return {\n returnValue: new Uint8Array(jsonRpcCallResult[0].result[0].result.Ok),\n info: jsonRpcCallResult[0],\n };\n }\n}\n"]}
@@ -64,5 +64,33 @@ export declare class BearbyProvider implements IProvider {
64
64
  listenNetworkChanges(callback: (network: string) => void): {
65
65
  unsubscribe: () => void;
66
66
  };
67
+ /**
68
+ * Connects to the wallet.
69
+ *
70
+ * @remarks
71
+ * This method will attempt to establish a connection with the wallet.
72
+ * If the connection fails, it will log the error message.
73
+ */
74
+ connect(): Promise<boolean>;
75
+ /**
76
+ * Disconnects from the wallet.
77
+ *
78
+ * @remarks
79
+ * This method will attempt to disconnect from the wallet.
80
+ * If the disconnection fails, it will log the error message.
81
+ */
82
+ disconnect(): Promise<boolean>;
83
+ /**
84
+ * Checks if the wallet is connected.
85
+ *
86
+ * @returns a boolean indicating whether the wallet is connected.
87
+ */
88
+ connected(): boolean;
89
+ /**
90
+ * Checks if the wallet is enabled.
91
+ *
92
+ * @returns a boolean indicating whether the wallet is enabled.
93
+ */
94
+ enabled(): boolean;
67
95
  }
68
96
  //# sourceMappingURL=BearbyProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BearbyProvider.d.ts","sourceRoot":"","sources":["../../../src/bearbyWallet/BearbyProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,SAAS,EACV,MAAM,aAAa,CAAC;AAGrB,qBAAa,cAAe,YAAW,SAAS;IAC9C,OAAO,CAAC,YAAY,CAAS;IAE7B;;;;;OAKG;gBACgB,YAAY,EAAE,MAAM;IAIhC,IAAI,IAAI,MAAM;IAIR,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAa/B,aAAa,CACxB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,sBAAsB,CAAC;IAIrB,aAAa,CACxB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC;IAIvB,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIjC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAM7B,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAIvE;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,oBAAoB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG;QAC/D,WAAW,EAAE,MAAM,IAAI,CAAC;KACzB;IAID;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,oBAAoB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG;QAChE,WAAW,EAAE,MAAM,IAAI,CAAC;KACzB;CAGF"}
1
+ {"version":3,"file":"BearbyProvider.d.ts","sourceRoot":"","sources":["../../../src/bearbyWallet/BearbyProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,SAAS,EACV,MAAM,aAAa,CAAC;AAGrB,qBAAa,cAAe,YAAW,SAAS;IAC9C,OAAO,CAAC,YAAY,CAAS;IAE7B;;;;;OAKG;gBACgB,YAAY,EAAE,MAAM;IAIhC,IAAI,IAAI,MAAM;IAIR,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAa/B,aAAa,CACxB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,sBAAsB,CAAC;IAIrB,aAAa,CACxB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC;IAIvB,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIjC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAM7B,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAIvE;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,oBAAoB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG;QAC/D,WAAW,EAAE,MAAM,IAAI,CAAC;KACzB;IAID;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,oBAAoB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG;QAChE,WAAW,EAAE,MAAM,IAAI,CAAC;KACzB;IAID;;;;;;OAMG;IACU,OAAO;IAIpB;;;;;;OAMG;IACU,UAAU;IAIvB;;;;OAIG;IACI,SAAS,IAAI,OAAO;IAI3B;;;;OAIG;IACI,OAAO,IAAI,OAAO;CAG1B"}
@@ -91,6 +91,42 @@ class BearbyProvider {
91
91
  listenNetworkChanges(callback) {
92
92
  return bearby_js_1.web3.wallet.network.subscribe((network) => callback(network));
93
93
  }
94
+ /**
95
+ * Connects to the wallet.
96
+ *
97
+ * @remarks
98
+ * This method will attempt to establish a connection with the wallet.
99
+ * If the connection fails, it will log the error message.
100
+ */
101
+ async connect() {
102
+ return bearby_js_1.web3.wallet.connect();
103
+ }
104
+ /**
105
+ * Disconnects from the wallet.
106
+ *
107
+ * @remarks
108
+ * This method will attempt to disconnect from the wallet.
109
+ * If the disconnection fails, it will log the error message.
110
+ */
111
+ async disconnect() {
112
+ return bearby_js_1.web3.wallet.disconnect();
113
+ }
114
+ /**
115
+ * Checks if the wallet is connected.
116
+ *
117
+ * @returns a boolean indicating whether the wallet is connected.
118
+ */
119
+ connected() {
120
+ return bearby_js_1.web3.wallet.connected;
121
+ }
122
+ /**
123
+ * Checks if the wallet is enabled.
124
+ *
125
+ * @returns a boolean indicating whether the wallet is enabled.
126
+ */
127
+ enabled() {
128
+ return bearby_js_1.web3.wallet.enabled;
129
+ }
94
130
  }
95
131
  exports.BearbyProvider = BearbyProvider;
96
132
  //# sourceMappingURL=BearbyProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BearbyProvider.js","sourceRoot":"","sources":["../../../src/bearbyWallet/BearbyProvider.ts"],"names":[],"mappings":";;;AAAA,iDAAyC;AAOzC,mDAAgD;AAEhD,MAAa,cAAc;IAGzB;;;;;OAKG;IACH,YAAmB,YAAoB;QACrC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,QAAQ;QACnB,8BAA8B;QAC9B,IAAI,CAAC,gBAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YAC1B,MAAM,gBAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;SAC7B;QAED,MAAM,OAAO,GAAG;YACd,OAAO,EAAE,MAAM,gBAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM;YACzC,IAAI,EAAE,QAAQ;SACf,CAAC;QACF,OAAO,CAAC,IAAI,6BAAa,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACzD,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,SAAiB,EACjB,UAAkB;QAElB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,OAAe;QAEf,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAEM,KAAK,CAAC,YAAY;QACvB,OAAO,CAAC,mCAAmC,CAAC,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,MAAM,OAAO,GAAG,MAAM,gBAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAE1C,OAAO,OAAO,CAAC,GAAG,CAAC;IACrB,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,IAAY;QAC1C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,oBAAoB,CAAC,QAAkC;QAG5D,OAAO,gBAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,oBAAoB,CAAC,QAAmC;QAG7D,OAAO,gBAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACvE,CAAC;CACF;AA9GD,wCA8GC","sourcesContent":["import { web3 } from '@hicaru/bearby.js';\nimport { IAccount, IAccountDetails } from '../account';\nimport {\n IAccountDeletionResponse,\n IAccountImportResponse,\n IProvider,\n} from '../provider';\nimport { BearbyAccount } from './BearbyAccount';\n\nexport class BearbyProvider implements IProvider {\n private providerName: string;\n\n /**\n * Provider constructor\n *\n * @param providerName - The name of the provider.\n * @returns An instance of the Provider class.\n */\n public constructor(providerName: string) {\n this.providerName = providerName;\n }\n\n public name(): string {\n return this.providerName;\n }\n\n public async accounts(): Promise<IAccount[]> {\n // check if bearby is unlocked\n if (!web3.wallet.connected) {\n await web3.wallet.connect();\n }\n\n const account = {\n address: await web3.wallet.account.base58,\n name: 'BEARBY',\n };\n return [new BearbyAccount(account, this.providerName)];\n }\n\n public async importAccount(\n publicKey: string,\n privateKey: string,\n ): Promise<IAccountImportResponse> {\n throw new Error('Method not implemented.');\n }\n\n public async deleteAccount(\n address: string,\n ): Promise<IAccountDeletionResponse> {\n throw new Error('Method not implemented.');\n }\n\n public async getNodesUrls(): Promise<string[]> {\n return ['https://buildnet.massa.net/api/v2'];\n }\n\n public async getNetwork(): Promise<string> {\n const network = await web3.wallet.network;\n\n return network.net;\n }\n\n public async generateNewAccount(name: string): Promise<IAccountDetails> {\n throw new Error('Method not implemented.');\n }\n\n /**\n * Subscribes to account changes.\n *\n * @param callback - Callback to be called when the account changes.\n *\n * @returns A promise that resolves to a function that can be called to unsubscribe.\n *\n * @remarks\n * Don't forget to unsubscribe to avoid memory leaks.\n *\n * @example\n * ```typescript\n * // Subscribe\n * const observer = await provider.listenAccountChanges((base58) => {\n * console.log(base58);\n * });\n *\n * // Unsubscribe\n * observer.unsubscribe();\n * ```\n */\n public listenAccountChanges(callback: (base58: string) => void): {\n unsubscribe: () => void;\n } {\n return web3.wallet.account.subscribe((base58) => callback(base58));\n }\n\n /**\n * Subscribes to network changes.\n *\n * @param callback - Callback to be called when the network changes.\n *\n * @returns A promise that resolves to a function that can be called to unsubscribe.\n *\n * @remarks\n * Don't forget to unsubscribe to avoid memory leaks.\n *\n * @example\n * ```typescript\n * // Subscribe\n * const observer = await provider.listenNetworkChanges((network) => {\n * console.log(network);\n * });\n *\n * // Unsubscribe\n * observer.unsubscribe();\n * ```\n */\n public listenNetworkChanges(callback: (network: string) => void): {\n unsubscribe: () => void;\n } {\n return web3.wallet.network.subscribe((network) => callback(network));\n }\n}\n"]}
1
+ {"version":3,"file":"BearbyProvider.js","sourceRoot":"","sources":["../../../src/bearbyWallet/BearbyProvider.ts"],"names":[],"mappings":";;;AAAA,iDAAyC;AAOzC,mDAAgD;AAEhD,MAAa,cAAc;IAGzB;;;;;OAKG;IACH,YAAmB,YAAoB;QACrC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,QAAQ;QACnB,8BAA8B;QAC9B,IAAI,CAAC,gBAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YAC1B,MAAM,gBAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;SAC7B;QAED,MAAM,OAAO,GAAG;YACd,OAAO,EAAE,MAAM,gBAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM;YACzC,IAAI,EAAE,QAAQ;SACf,CAAC;QACF,OAAO,CAAC,IAAI,6BAAa,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACzD,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,SAAiB,EACjB,UAAkB;QAElB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,OAAe;QAEf,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAEM,KAAK,CAAC,YAAY;QACvB,OAAO,CAAC,mCAAmC,CAAC,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,MAAM,OAAO,GAAG,MAAM,gBAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAE1C,OAAO,OAAO,CAAC,GAAG,CAAC;IACrB,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,IAAY;QAC1C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,oBAAoB,CAAC,QAAkC;QAG5D,OAAO,gBAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,oBAAoB,CAAC,QAAmC;QAG7D,OAAO,gBAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,OAAO;QAClB,OAAO,gBAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,UAAU;QACrB,OAAO,gBAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACI,SAAS;QACd,OAAO,gBAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACI,OAAO;QACZ,OAAO,gBAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;CACF;AAtJD,wCAsJC","sourcesContent":["import { web3 } from '@hicaru/bearby.js';\nimport { IAccount, IAccountDetails } from '../account';\nimport {\n IAccountDeletionResponse,\n IAccountImportResponse,\n IProvider,\n} from '../provider';\nimport { BearbyAccount } from './BearbyAccount';\n\nexport class BearbyProvider implements IProvider {\n private providerName: string;\n\n /**\n * Provider constructor\n *\n * @param providerName - The name of the provider.\n * @returns An instance of the Provider class.\n */\n public constructor(providerName: string) {\n this.providerName = providerName;\n }\n\n public name(): string {\n return this.providerName;\n }\n\n public async accounts(): Promise<IAccount[]> {\n // check if bearby is unlocked\n if (!web3.wallet.connected) {\n await web3.wallet.connect();\n }\n\n const account = {\n address: await web3.wallet.account.base58,\n name: 'BEARBY',\n };\n return [new BearbyAccount(account, this.providerName)];\n }\n\n public async importAccount(\n publicKey: string,\n privateKey: string,\n ): Promise<IAccountImportResponse> {\n throw new Error('Method not implemented.');\n }\n\n public async deleteAccount(\n address: string,\n ): Promise<IAccountDeletionResponse> {\n throw new Error('Method not implemented.');\n }\n\n public async getNodesUrls(): Promise<string[]> {\n return ['https://buildnet.massa.net/api/v2'];\n }\n\n public async getNetwork(): Promise<string> {\n const network = await web3.wallet.network;\n\n return network.net;\n }\n\n public async generateNewAccount(name: string): Promise<IAccountDetails> {\n throw new Error('Method not implemented.');\n }\n\n /**\n * Subscribes to account changes.\n *\n * @param callback - Callback to be called when the account changes.\n *\n * @returns A promise that resolves to a function that can be called to unsubscribe.\n *\n * @remarks\n * Don't forget to unsubscribe to avoid memory leaks.\n *\n * @example\n * ```typescript\n * // Subscribe\n * const observer = await provider.listenAccountChanges((base58) => {\n * console.log(base58);\n * });\n *\n * // Unsubscribe\n * observer.unsubscribe();\n * ```\n */\n public listenAccountChanges(callback: (base58: string) => void): {\n unsubscribe: () => void;\n } {\n return web3.wallet.account.subscribe((base58) => callback(base58));\n }\n\n /**\n * Subscribes to network changes.\n *\n * @param callback - Callback to be called when the network changes.\n *\n * @returns A promise that resolves to a function that can be called to unsubscribe.\n *\n * @remarks\n * Don't forget to unsubscribe to avoid memory leaks.\n *\n * @example\n * ```typescript\n * // Subscribe\n * const observer = await provider.listenNetworkChanges((network) => {\n * console.log(network);\n * });\n *\n * // Unsubscribe\n * observer.unsubscribe();\n * ```\n */\n public listenNetworkChanges(callback: (network: string) => void): {\n unsubscribe: () => void;\n } {\n return web3.wallet.network.subscribe((network) => callback(network));\n }\n\n /**\n * Connects to the wallet.\n *\n * @remarks\n * This method will attempt to establish a connection with the wallet.\n * If the connection fails, it will log the error message.\n */\n public async connect() {\n return web3.wallet.connect();\n }\n\n /**\n * Disconnects from the wallet.\n *\n * @remarks\n * This method will attempt to disconnect from the wallet.\n * If the disconnection fails, it will log the error message.\n */\n public async disconnect() {\n return web3.wallet.disconnect();\n }\n\n /**\n * Checks if the wallet is connected.\n *\n * @returns a boolean indicating whether the wallet is connected.\n */\n public connected(): boolean {\n return web3.wallet.connected;\n }\n\n /**\n * Checks if the wallet is enabled.\n *\n * @returns a boolean indicating whether the wallet is enabled.\n */\n public enabled(): boolean {\n return web3.wallet.enabled;\n }\n}\n"]}
@@ -112,6 +112,10 @@ export declare class MassaStationProvider implements IProvider {
112
112
  listenNetworkChanges(callback: (network: string) => void): {
113
113
  unsubscribe: () => void;
114
114
  } | undefined;
115
+ connect(): Promise<boolean>;
116
+ disconnect(): Promise<boolean>;
117
+ connected(): boolean;
118
+ enabled(): boolean;
115
119
  }
116
120
  export {};
117
121
  //# sourceMappingURL=MassaStationProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MassaStationProvider.d.ts","sourceRoot":"","sources":["../../../src/massaStation/MassaStationProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,sBAAsB,EAGvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAY,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAS5D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAsB,MAAM,SAAS,CAAC;AAGzD;;GAEG;AACH,eAAO,MAAM,iBAAiB,2BAA2B,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,0BAA0B,QAAoE,CAAC;AAE5G;;GAEG;AACH,eAAO,MAAM,iCAAiC,QAA0C,CAAC;AAEzF;;GAEG;AACH,eAAO,MAAM,2BAA2B,iBAAiB,CAAC;AAO1D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,MAAM,EAAE,yBAAyB,CAAC;CACnC;AAED,aAAK,yBAAyB;IAC5B,EAAE,OAAO;IACT,SAAS,cAAc;CACxB;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,YAAW,SAAS;IAYjC,OAAO,CAAC,KAAK;IAXhC,OAAO,CAAC,YAAY,CAA+B;IAEnD,OAAO,CAAC,0BAA0B,CAAsB;IACxD,OAAO,CAAC,cAAc,CAAW;IAEjC;;;;;OAKG;gBACwB,KAAK,EAAE,UAAU;IAE5C;;;OAGG;IACI,IAAI,IAAI,MAAM;IAIrB;;;;;OAKG;IACU,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAiC5C;;;;;;;;OAQG;IACU,aAAa,CACxB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,sBAAsB,CAAC;IA2BlC;;;;;OAKG;IACU,aAAa,CACxB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC;IAgDpC;;;;;;OAMG;IACU,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAkB9C;;;;;;OAMG;IACU,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAyB1C;;;;OAIG;IACU,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAyBhE,oBAAoB,CACzB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,SAAS;IAOnC,oBAAoB,CACzB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,SAAS;CA4B3C"}
1
+ {"version":3,"file":"MassaStationProvider.d.ts","sourceRoot":"","sources":["../../../src/massaStation/MassaStationProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,sBAAsB,EAGvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAY,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAS5D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAsB,MAAM,SAAS,CAAC;AAGzD;;GAEG;AACH,eAAO,MAAM,iBAAiB,2BAA2B,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,0BAA0B,QAAoE,CAAC;AAE5G;;GAEG;AACH,eAAO,MAAM,iCAAiC,QAA0C,CAAC;AAEzF;;GAEG;AACH,eAAO,MAAM,2BAA2B,iBAAiB,CAAC;AAO1D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,MAAM,EAAE,yBAAyB,CAAC;CACnC;AAED,aAAK,yBAAyB;IAC5B,EAAE,OAAO;IACT,SAAS,cAAc;CACxB;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,YAAW,SAAS;IAYjC,OAAO,CAAC,KAAK;IAXhC,OAAO,CAAC,YAAY,CAA+B;IAEnD,OAAO,CAAC,0BAA0B,CAAsB;IACxD,OAAO,CAAC,cAAc,CAAW;IAEjC;;;;;OAKG;gBACwB,KAAK,EAAE,UAAU;IAE5C;;;OAGG;IACI,IAAI,IAAI,MAAM;IAIrB;;;;;OAKG;IACU,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAiC5C;;;;;;;;OAQG;IACU,aAAa,CACxB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,sBAAsB,CAAC;IA2BlC;;;;;OAKG;IACU,aAAa,CACxB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC;IAgDpC;;;;;;OAMG;IACU,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAkB9C;;;;;;OAMG;IACU,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAyB1C;;;;OAIG;IACU,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAyBhE,oBAAoB,CACzB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,SAAS;IAMnC,oBAAoB,CACzB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,SAAS;IA6B7B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAM3B,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAMpC,SAAS,IAAI,OAAO;IAMpB,OAAO,IAAI,OAAO;CAK1B"}
@@ -235,8 +235,7 @@ class MassaStationProvider {
235
235
  }
236
236
  }
237
237
  listenAccountChanges(callback) {
238
- console.log('The listen Account Change functionality is not yet implemented for the current provider.');
239
- return undefined;
238
+ throw new Error('listenAccountChanges is not yet implemented for the current provider.');
240
239
  }
241
240
  listenNetworkChanges(callback) {
242
241
  this.massaStationEventsListener.on(MASSA_STATION_NETWORK_CHANGED, (evt) => callback(evt));
@@ -257,6 +256,18 @@ class MassaStationProvider {
257
256
  },
258
257
  };
259
258
  }
259
+ async connect() {
260
+ throw new Error('connect functionality is not yet implemented for the current provider.');
261
+ }
262
+ async disconnect() {
263
+ throw new Error('disconnect functionality is not yet implemented for the current provider.');
264
+ }
265
+ connected() {
266
+ throw new Error('connected functionality is not yet implemented for the current provider.');
267
+ }
268
+ enabled() {
269
+ throw new Error('enabled functionality is not yet implemented for the current provider.');
270
+ }
260
271
  }
261
272
  exports.MassaStationProvider = MassaStationProvider;
262
273
  //# sourceMappingURL=MassaStationProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MassaStationProvider.js","sourceRoot":"","sources":["../../../src/massaStation/MassaStationProvider.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n EAccountDeletionResponse,\n IAccountDeletionResponse,\n} from '../provider/AccountDeletion';\nimport {\n IAccountImportResponse,\n EAccountImportResponse,\n IAccountImportRequest,\n} from '../provider/AccountImport';\nimport { INetwork, IProvider } from '../provider/IProvider';\nimport {\n JsonRpcResponseData,\n deleteRequest,\n getRequest,\n postRequest,\n putRequest,\n} from './RequestHandler';\nimport { MassaStationAccount } from './MassaStationAccount';\nimport { IAccount } from '../account/IAccount';\nimport { IAccountDetails } from '../account';\nimport { PluginInfo, getNetworkInfoBody } from './types';\nimport EventEmitter from 'events';\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 * MassaStation's url for importing accounts\n */\nexport const MASSA_STATION_IMPORT_ACCOUNTS_URL = `${MASSA_STATION_ACCOUNTS_URL}/import/`;\n\n/**\n * MassaStation's wallet provider name\n */\nexport const MASSA_STATION_PROVIDER_NAME = 'MASSASTATION';\n\n/**\n * Events emitted by MassaStation\n */\nconst MASSA_STATION_NETWORK_CHANGED = 'MASSA_STATION_NETWORK_CHANGED';\n\n/**\n * This interface represents the payload returned by making a call to MassaStation's accounts url.\n */\nexport interface IMassaStationWallet {\n address: string;\n nickname: string;\n keyPair: {\n nonce: string;\n privateKey: string;\n publicKey: string;\n salt: string;\n };\n status: MassaStationAccountStatus;\n}\n\nenum MassaStationAccountStatus {\n OK = 'ok',\n CORRUPTED = 'corrupted',\n}\n\n/**\n * This class provides an implementation for communicating with the MassaStation wallet provider.\n * @remarks\n * This class is used as a proxy to the MassaStation server for exchanging message over https calls.\n */\nexport class MassaStationProvider implements IProvider {\n private providerName = MASSA_STATION_PROVIDER_NAME;\n\n private massaStationEventsListener = new EventEmitter();\n private currentNetwork: INetwork;\n\n /**\n * Provider constructor\n *\n * @param providerName - The name of the provider.\n * @returns An instance of the Provider class.\n */\n public constructor(private infos: PluginInfo) {}\n\n /**\n * This method returns the name of the provider.\n * @returns The name of the provider.\n */\n public name(): string {\n return this.providerName;\n }\n\n /**\n * This method sends a message to the MassaStation server to get the list of accounts for the provider.\n * It returns a Promise that resolves to an array of Account instances.\n *\n * @returns A promise that resolves to an array of Account instances.\n */\n public async accounts(): Promise<IAccount[]> {\n let massaStationAccountsResponse: JsonRpcResponseData<\n Array<IMassaStationWallet>\n > = null;\n try {\n massaStationAccountsResponse = await getRequest<\n Array<IMassaStationWallet>\n >(MASSA_STATION_ACCOUNTS_URL);\n } catch (ex) {\n console.error(`MassaStation accounts retrieval error`);\n throw ex;\n }\n if (\n massaStationAccountsResponse.isError ||\n massaStationAccountsResponse.error\n ) {\n throw massaStationAccountsResponse.error.message;\n }\n return massaStationAccountsResponse.result\n .filter((massaStationAccount) => {\n return massaStationAccount.status === MassaStationAccountStatus.OK;\n })\n .map((massaStationAccount) => {\n return new MassaStationAccount(\n {\n address: massaStationAccount.address,\n name: massaStationAccount.nickname,\n },\n this.providerName,\n );\n });\n }\n\n /**\n * This method makes an http call to the MassaStation server to import an account with\n * the given publicKey and privateKey.\n *\n * @param publicKey - The public key of the account.\n * @param privateKey - The private key of the account.\n *\n * @returns a Promise that resolves to an instance of IAccountImportResponse.\n */\n public async importAccount(\n publicKey: string,\n privateKey: string,\n ): Promise<IAccountImportResponse> {\n const accountImportRequest: IAccountImportRequest = {\n publicKey,\n privateKey,\n };\n let massaStationAccountsResponse: JsonRpcResponseData<unknown> = null;\n try {\n massaStationAccountsResponse = await putRequest<unknown>(\n MASSA_STATION_ACCOUNTS_URL,\n accountImportRequest,\n );\n } catch (ex) {\n console.log(`MassaStation accounts retrieval error: ${ex}`);\n throw ex;\n }\n if (\n massaStationAccountsResponse.isError ||\n massaStationAccountsResponse.error\n ) {\n throw massaStationAccountsResponse.error.message;\n }\n return {\n response: EAccountImportResponse.OK,\n message: 'Account imported successfully',\n } as IAccountImportResponse;\n }\n\n /**\n * This method sends an http call to the MassaStation server to delete the account associated with the given address.\n *\n * @param address - The address of the account.\n * @returns a Promise that resolves to an instance of IAccountDeletionResponse.\n */\n public async deleteAccount(\n address: string,\n ): Promise<IAccountDeletionResponse> {\n // get all accounts\n let allAccounts: JsonRpcResponseData<Array<IMassaStationWallet>> = null;\n try {\n allAccounts = await getRequest<Array<IMassaStationWallet>>(\n MASSA_STATION_ACCOUNTS_URL,\n );\n } catch (ex) {\n console.log(`MassaStation accounts retrieval error: ${ex}`);\n throw ex;\n }\n if (allAccounts.isError || allAccounts.error) {\n throw allAccounts.error.message;\n }\n // find the account with the desired address\n const accountToDelete = allAccounts.result.find(\n (account) => account.address.toLowerCase() === address.toLowerCase(),\n );\n\n // delete the account in question\n let massaStationAccountsResponse: JsonRpcResponseData<unknown> = null;\n try {\n massaStationAccountsResponse = await deleteRequest<unknown>(\n `${MASSA_STATION_ACCOUNTS_URL}/${accountToDelete.nickname}`,\n );\n } catch (ex) {\n console.log(`MassaStation accounts deletion error`, ex);\n return {\n response: EAccountDeletionResponse.ERROR,\n } as IAccountDeletionResponse;\n }\n if (\n massaStationAccountsResponse.isError ||\n massaStationAccountsResponse.error\n ) {\n console.log(\n `MassaStation accounts deletion error`,\n massaStationAccountsResponse.error.message,\n );\n return {\n response: EAccountDeletionResponse.ERROR,\n } as IAccountDeletionResponse;\n }\n return {\n response: EAccountDeletionResponse.OK,\n } as IAccountDeletionResponse;\n }\n\n /**\n * This method sends an http call to the MassaStation server to obtain node urls.\n *\n * @throws an error if the call fails.\n *\n * @returns a Promise that resolves to a list of node urls.\n */\n public async getNodesUrls(): Promise<string[]> {\n let nodesResponse: JsonRpcResponseData<unknown> = null;\n try {\n nodesResponse = await getRequest<unknown>(\n `${MASSA_STATION_URL}massa/node`,\n );\n if (nodesResponse.isError || nodesResponse.error) {\n throw nodesResponse.error.message;\n }\n // transform nodesResponse.result to a json and then get the \"url\" property\n const nodes = nodesResponse.result as { url: string };\n return Array(nodes.url);\n } catch (ex) {\n console.error(`MassaStation nodes retrieval error`, ex);\n throw ex;\n }\n }\n\n /**\n * Returns the name of the network MassaStation is connected to.\n *\n * @throws an error if the call fails.\n *\n * @returns a Promise that resolves to a network.\n */\n public async getNetwork(): Promise<string> {\n try {\n const nodesResponse = await getRequest<getNetworkInfoBody>(\n `${MASSA_STATION_URL}massa/node`,\n );\n if (nodesResponse.isError || nodesResponse.error) {\n throw nodesResponse.error.message;\n }\n\n if (this.currentNetwork?.name !== nodesResponse.result.network) {\n this.currentNetwork = {\n name: nodesResponse.result.network,\n url: nodesResponse.result.url,\n chainId: BigInt(nodesResponse.result.chainId),\n };\n }\n const nodes = nodesResponse.result as { network: string };\n\n return nodes.network;\n } catch (ex) {\n console.error(`MassaStation nodes retrieval error`, ex);\n throw ex;\n }\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<IAccountDetails> {\n let massaStationAccountsResponse: JsonRpcResponseData<IMassaStationWallet> =\n null;\n console.log(MASSA_STATION_ACCOUNTS_URL + '/' + name);\n try {\n massaStationAccountsResponse = await postRequest<IMassaStationWallet>(\n MASSA_STATION_ACCOUNTS_URL + '/' + name,\n {},\n );\n if (\n massaStationAccountsResponse.isError ||\n massaStationAccountsResponse.error\n ) {\n throw massaStationAccountsResponse.error.message;\n }\n return {\n address: massaStationAccountsResponse.result.address,\n name: massaStationAccountsResponse.result.nickname,\n } as IAccountDetails;\n } catch (ex) {\n console.error(`Error while generating account: ${ex}`);\n throw ex;\n }\n }\n\n public listenAccountChanges(\n callback: (address: string) => void,\n ): { unsubscribe: () => void } | undefined {\n console.log(\n 'The listen Account Change functionality is not yet implemented for the current provider.',\n );\n return undefined;\n }\n\n public listenNetworkChanges(\n callback: (network: string) => void,\n ): { unsubscribe: () => void } | undefined {\n this.massaStationEventsListener.on(MASSA_STATION_NETWORK_CHANGED, (evt) =>\n callback(evt),\n );\n\n // check periodically if network changed\n const intervalId = setInterval(async () => {\n const currentNetwork = this.currentNetwork?.name;\n const network = await this.getNetwork();\n if (currentNetwork !== network) {\n this.massaStationEventsListener.emit(\n MASSA_STATION_NETWORK_CHANGED,\n network,\n );\n }\n }, 500);\n\n return {\n unsubscribe: () => {\n clearInterval(intervalId);\n this.massaStationEventsListener.removeListener(\n MASSA_STATION_NETWORK_CHANGED,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n () => {},\n );\n },\n };\n }\n}\n"]}
1
+ {"version":3,"file":"MassaStationProvider.js","sourceRoot":"","sources":["../../../src/massaStation/MassaStationProvider.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n EAccountDeletionResponse,\n IAccountDeletionResponse,\n} from '../provider/AccountDeletion';\nimport {\n IAccountImportResponse,\n EAccountImportResponse,\n IAccountImportRequest,\n} from '../provider/AccountImport';\nimport { INetwork, IProvider } from '../provider/IProvider';\nimport {\n JsonRpcResponseData,\n deleteRequest,\n getRequest,\n postRequest,\n putRequest,\n} from './RequestHandler';\nimport { MassaStationAccount } from './MassaStationAccount';\nimport { IAccount } from '../account/IAccount';\nimport { IAccountDetails } from '../account';\nimport { PluginInfo, getNetworkInfoBody } from './types';\nimport EventEmitter from 'events';\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 * MassaStation's url for importing accounts\n */\nexport const MASSA_STATION_IMPORT_ACCOUNTS_URL = `${MASSA_STATION_ACCOUNTS_URL}/import/`;\n\n/**\n * MassaStation's wallet provider name\n */\nexport const MASSA_STATION_PROVIDER_NAME = 'MASSASTATION';\n\n/**\n * Events emitted by MassaStation\n */\nconst MASSA_STATION_NETWORK_CHANGED = 'MASSA_STATION_NETWORK_CHANGED';\n\n/**\n * This interface represents the payload returned by making a call to MassaStation's accounts url.\n */\nexport interface IMassaStationWallet {\n address: string;\n nickname: string;\n keyPair: {\n nonce: string;\n privateKey: string;\n publicKey: string;\n salt: string;\n };\n status: MassaStationAccountStatus;\n}\n\nenum MassaStationAccountStatus {\n OK = 'ok',\n CORRUPTED = 'corrupted',\n}\n\n/**\n * This class provides an implementation for communicating with the MassaStation wallet provider.\n * @remarks\n * This class is used as a proxy to the MassaStation server for exchanging message over https calls.\n */\nexport class MassaStationProvider implements IProvider {\n private providerName = MASSA_STATION_PROVIDER_NAME;\n\n private massaStationEventsListener = new EventEmitter();\n private currentNetwork: INetwork;\n\n /**\n * Provider constructor\n *\n * @param providerName - The name of the provider.\n * @returns An instance of the Provider class.\n */\n public constructor(private infos: PluginInfo) {}\n\n /**\n * This method returns the name of the provider.\n * @returns The name of the provider.\n */\n public name(): string {\n return this.providerName;\n }\n\n /**\n * This method sends a message to the MassaStation server to get the list of accounts for the provider.\n * It returns a Promise that resolves to an array of Account instances.\n *\n * @returns A promise that resolves to an array of Account instances.\n */\n public async accounts(): Promise<IAccount[]> {\n let massaStationAccountsResponse: JsonRpcResponseData<\n Array<IMassaStationWallet>\n > = null;\n try {\n massaStationAccountsResponse = await getRequest<\n Array<IMassaStationWallet>\n >(MASSA_STATION_ACCOUNTS_URL);\n } catch (ex) {\n console.error(`MassaStation accounts retrieval error`);\n throw ex;\n }\n if (\n massaStationAccountsResponse.isError ||\n massaStationAccountsResponse.error\n ) {\n throw massaStationAccountsResponse.error.message;\n }\n return massaStationAccountsResponse.result\n .filter((massaStationAccount) => {\n return massaStationAccount.status === MassaStationAccountStatus.OK;\n })\n .map((massaStationAccount) => {\n return new MassaStationAccount(\n {\n address: massaStationAccount.address,\n name: massaStationAccount.nickname,\n },\n this.providerName,\n );\n });\n }\n\n /**\n * This method makes an http call to the MassaStation server to import an account with\n * the given publicKey and privateKey.\n *\n * @param publicKey - The public key of the account.\n * @param privateKey - The private key of the account.\n *\n * @returns a Promise that resolves to an instance of IAccountImportResponse.\n */\n public async importAccount(\n publicKey: string,\n privateKey: string,\n ): Promise<IAccountImportResponse> {\n const accountImportRequest: IAccountImportRequest = {\n publicKey,\n privateKey,\n };\n let massaStationAccountsResponse: JsonRpcResponseData<unknown> = null;\n try {\n massaStationAccountsResponse = await putRequest<unknown>(\n MASSA_STATION_ACCOUNTS_URL,\n accountImportRequest,\n );\n } catch (ex) {\n console.log(`MassaStation accounts retrieval error: ${ex}`);\n throw ex;\n }\n if (\n massaStationAccountsResponse.isError ||\n massaStationAccountsResponse.error\n ) {\n throw massaStationAccountsResponse.error.message;\n }\n return {\n response: EAccountImportResponse.OK,\n message: 'Account imported successfully',\n } as IAccountImportResponse;\n }\n\n /**\n * This method sends an http call to the MassaStation server to delete the account associated with the given address.\n *\n * @param address - The address of the account.\n * @returns a Promise that resolves to an instance of IAccountDeletionResponse.\n */\n public async deleteAccount(\n address: string,\n ): Promise<IAccountDeletionResponse> {\n // get all accounts\n let allAccounts: JsonRpcResponseData<Array<IMassaStationWallet>> = null;\n try {\n allAccounts = await getRequest<Array<IMassaStationWallet>>(\n MASSA_STATION_ACCOUNTS_URL,\n );\n } catch (ex) {\n console.log(`MassaStation accounts retrieval error: ${ex}`);\n throw ex;\n }\n if (allAccounts.isError || allAccounts.error) {\n throw allAccounts.error.message;\n }\n // find the account with the desired address\n const accountToDelete = allAccounts.result.find(\n (account) => account.address.toLowerCase() === address.toLowerCase(),\n );\n\n // delete the account in question\n let massaStationAccountsResponse: JsonRpcResponseData<unknown> = null;\n try {\n massaStationAccountsResponse = await deleteRequest<unknown>(\n `${MASSA_STATION_ACCOUNTS_URL}/${accountToDelete.nickname}`,\n );\n } catch (ex) {\n console.log(`MassaStation accounts deletion error`, ex);\n return {\n response: EAccountDeletionResponse.ERROR,\n } as IAccountDeletionResponse;\n }\n if (\n massaStationAccountsResponse.isError ||\n massaStationAccountsResponse.error\n ) {\n console.log(\n `MassaStation accounts deletion error`,\n massaStationAccountsResponse.error.message,\n );\n return {\n response: EAccountDeletionResponse.ERROR,\n } as IAccountDeletionResponse;\n }\n return {\n response: EAccountDeletionResponse.OK,\n } as IAccountDeletionResponse;\n }\n\n /**\n * This method sends an http call to the MassaStation server to obtain node urls.\n *\n * @throws an error if the call fails.\n *\n * @returns a Promise that resolves to a list of node urls.\n */\n public async getNodesUrls(): Promise<string[]> {\n let nodesResponse: JsonRpcResponseData<unknown> = null;\n try {\n nodesResponse = await getRequest<unknown>(\n `${MASSA_STATION_URL}massa/node`,\n );\n if (nodesResponse.isError || nodesResponse.error) {\n throw nodesResponse.error.message;\n }\n // transform nodesResponse.result to a json and then get the \"url\" property\n const nodes = nodesResponse.result as { url: string };\n return Array(nodes.url);\n } catch (ex) {\n console.error(`MassaStation nodes retrieval error`, ex);\n throw ex;\n }\n }\n\n /**\n * Returns the name of the network MassaStation is connected to.\n *\n * @throws an error if the call fails.\n *\n * @returns a Promise that resolves to a network.\n */\n public async getNetwork(): Promise<string> {\n try {\n const nodesResponse = await getRequest<getNetworkInfoBody>(\n `${MASSA_STATION_URL}massa/node`,\n );\n if (nodesResponse.isError || nodesResponse.error) {\n throw nodesResponse.error.message;\n }\n\n if (this.currentNetwork?.name !== nodesResponse.result.network) {\n this.currentNetwork = {\n name: nodesResponse.result.network,\n url: nodesResponse.result.url,\n chainId: BigInt(nodesResponse.result.chainId),\n };\n }\n const nodes = nodesResponse.result as { network: string };\n\n return nodes.network;\n } catch (ex) {\n console.error(`MassaStation nodes retrieval error`, ex);\n throw ex;\n }\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<IAccountDetails> {\n let massaStationAccountsResponse: JsonRpcResponseData<IMassaStationWallet> =\n null;\n console.log(MASSA_STATION_ACCOUNTS_URL + '/' + name);\n try {\n massaStationAccountsResponse = await postRequest<IMassaStationWallet>(\n MASSA_STATION_ACCOUNTS_URL + '/' + name,\n {},\n );\n if (\n massaStationAccountsResponse.isError ||\n massaStationAccountsResponse.error\n ) {\n throw massaStationAccountsResponse.error.message;\n }\n return {\n address: massaStationAccountsResponse.result.address,\n name: massaStationAccountsResponse.result.nickname,\n } as IAccountDetails;\n } catch (ex) {\n console.error(`Error while generating account: ${ex}`);\n throw ex;\n }\n }\n\n public listenAccountChanges(\n callback: (address: string) => void,\n ): { 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: string) => void,\n ): { unsubscribe: () => void } | undefined {\n this.massaStationEventsListener.on(MASSA_STATION_NETWORK_CHANGED, (evt) =>\n callback(evt),\n );\n\n // check periodically if network changed\n const intervalId = setInterval(async () => {\n const currentNetwork = this.currentNetwork?.name;\n const network = await this.getNetwork();\n if (currentNetwork !== network) {\n this.massaStationEventsListener.emit(\n MASSA_STATION_NETWORK_CHANGED,\n network,\n );\n }\n }, 500);\n\n return {\n unsubscribe: () => {\n clearInterval(intervalId);\n this.massaStationEventsListener.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"]}
@@ -19,6 +19,10 @@ export interface IProvider {
19
19
  getNodesUrls(): Promise<string[]>;
20
20
  getNetwork(): Promise<string>;
21
21
  generateNewAccount(name: string): Promise<IAccountDetails>;
22
+ connect(): Promise<boolean>;
23
+ disconnect(): Promise<boolean>;
24
+ connected(): boolean;
25
+ enabled(): boolean;
22
26
  listenAccountChanges(callback: (base58: string) => void): {
23
27
  unsubscribe: () => void;
24
28
  } | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"IProvider.d.ts","sourceRoot":"","sources":["../../../src/provider/IProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE7D,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,IAAI,MAAM,CAAC;IACf,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChC,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACnC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAClE,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAClC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC3D,oBAAoB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GACnD;QACE,WAAW,EAAE,MAAM,IAAI,CAAC;KACzB,GACD,SAAS,CAAC;IAEd,oBAAoB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACpD;QACE,WAAW,EAAE,MAAM,IAAI,CAAC;KACzB,GACD,SAAS,CAAC;CACf"}
1
+ {"version":3,"file":"IProvider.d.ts","sourceRoot":"","sources":["../../../src/provider/IProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE7D,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,IAAI,MAAM,CAAC;IACf,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChC,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACnC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAClE,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAClC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC3D,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,SAAS,IAAI,OAAO,CAAC;IACrB,OAAO,IAAI,OAAO,CAAC;IACnB,oBAAoB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GACnD;QACE,WAAW,EAAE,MAAM,IAAI,CAAC;KACzB,GACD,SAAS,CAAC;IAEd,oBAAoB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACpD;QACE,WAAW,EAAE,MAAM,IAAI,CAAC;KACzB,GACD,SAAS,CAAC;CACf"}
@@ -1 +1 @@
1
- {"version":3,"file":"IProvider.js","sourceRoot":"","sources":["../../../src/provider/IProvider.ts"],"names":[],"mappings":"","sourcesContent":["import { IAccountDeletionResponse } from './AccountDeletion';\nimport { IAccountImportResponse } from './AccountImport';\nimport { IAccount } from '../account/IAccount';\nimport { IAccountDetails } from '../account';\n\nexport type INetworkName = 'mainnet' | 'buildnet' | 'labnet';\n\nexport type INetwork = {\n name: INetworkName;\n url: string;\n chainId: bigint;\n};\n\n/**\n * This interface represents a general provider definition with its methods\n */\nexport interface IProvider {\n name(): string;\n accounts(): Promise<IAccount[]>;\n importAccount(\n publicKey: string,\n privateKey: string,\n ): Promise<IAccountImportResponse>;\n deleteAccount(address: string): Promise<IAccountDeletionResponse>;\n getNodesUrls(): Promise<string[]>;\n getNetwork(): Promise<string>;\n generateNewAccount(name: string): Promise<IAccountDetails>;\n listenAccountChanges(callback: (base58: string) => void):\n | {\n unsubscribe: () => void;\n }\n | undefined;\n\n listenNetworkChanges(callback: (network: string) => void):\n | {\n unsubscribe: () => void;\n }\n | undefined;\n}\n"]}
1
+ {"version":3,"file":"IProvider.js","sourceRoot":"","sources":["../../../src/provider/IProvider.ts"],"names":[],"mappings":"","sourcesContent":["import { IAccountDeletionResponse } from './AccountDeletion';\nimport { IAccountImportResponse } from './AccountImport';\nimport { IAccount } from '../account/IAccount';\nimport { IAccountDetails } from '../account';\n\nexport type INetworkName = 'mainnet' | 'buildnet' | 'labnet';\n\nexport type INetwork = {\n name: INetworkName;\n url: string;\n chainId: bigint;\n};\n\n/**\n * This interface represents a general provider definition with its methods\n */\nexport interface IProvider {\n name(): string;\n accounts(): Promise<IAccount[]>;\n importAccount(\n publicKey: string,\n privateKey: string,\n ): Promise<IAccountImportResponse>;\n deleteAccount(address: string): Promise<IAccountDeletionResponse>;\n getNodesUrls(): Promise<string[]>;\n getNetwork(): Promise<string>;\n generateNewAccount(name: string): Promise<IAccountDetails>;\n connect(): Promise<boolean>;\n disconnect(): Promise<boolean>;\n connected(): boolean;\n enabled(): boolean;\n listenAccountChanges(callback: (base58: string) => void):\n | {\n unsubscribe: () => void;\n }\n | undefined;\n\n listenNetworkChanges(callback: (network: string) => void):\n | {\n unsubscribe: () => void;\n }\n | undefined;\n}\n"]}
@@ -76,5 +76,9 @@ export declare class Provider implements IProvider {
76
76
  listenNetworkChanges(callback: (network: string) => void): {
77
77
  unsubscribe: () => void;
78
78
  } | undefined;
79
+ connect(): Promise<boolean>;
80
+ disconnect(): Promise<boolean>;
81
+ connected(): boolean;
82
+ enabled(): boolean;
79
83
  }
80
84
  //# sourceMappingURL=Provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../src/provider/Provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAyB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAIhF,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAG/C;;;;GAIG;AACH,qBAAa,QAAS,YAAW,SAAS;IACxC,OAAO,CAAC,YAAY,CAAS;IAE7B;;;;;OAKG;gBACgB,YAAY,EAAE,MAAM;IAIvC;;;OAGG;IACI,IAAI,IAAI,MAAM;IAIrB;;;;;OAKG;IACU,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IA0B5C;;;;;;;;;;;OAWG;IACU,aAAa,CACxB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,sBAAsB,CAAC;IAkBlC;;;;;OAKG;IACU,aAAa,CACxB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC;IAepC;;;;;;OAMG;IACU,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAc9C;;;;OAIG;IACU,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAmB1C;;;;;OAKG;IACU,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAejE,oBAAoB,CACzB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,SAAS;IAOnC,oBAAoB,CACzB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,SAAS;CAM3C"}
1
+ {"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../src/provider/Provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAyB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAIhF,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAG/C;;;;GAIG;AACH,qBAAa,QAAS,YAAW,SAAS;IACxC,OAAO,CAAC,YAAY,CAAS;IAE7B;;;;;OAKG;gBACgB,YAAY,EAAE,MAAM;IAIvC;;;OAGG;IACI,IAAI,IAAI,MAAM;IAIrB;;;;;OAKG;IACU,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IA0B5C;;;;;;;;;;;OAWG;IACU,aAAa,CACxB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,sBAAsB,CAAC;IAkBlC;;;;;OAKG;IACU,aAAa,CACxB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC;IAepC;;;;;;OAMG;IACU,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAc9C;;;;OAIG;IACU,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAmB1C;;;;;OAKG;IACU,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAejE,oBAAoB,CACzB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,SAAS;IAMnC,oBAAoB,CACzB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,SAAS;IAM7B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAM3B,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAMpC,SAAS,IAAI,OAAO;IAMpB,OAAO,IAAI,OAAO;CAK1B"}
@@ -139,12 +139,22 @@ class Provider {
139
139
  });
140
140
  }
141
141
  listenAccountChanges(callback) {
142
- console.error('The listen Account Change functionality is not yet implemented for the current provider.');
143
- return undefined;
142
+ throw new Error('listenAccountChanges is not yet implemented for the current provider.');
144
143
  }
145
144
  listenNetworkChanges(callback) {
146
- console.error('The listen Network Change functionality is not yet implemented for the current provider.');
147
- return undefined;
145
+ throw new Error('listenNetworkChanges is not yet implemented for the current provider.');
146
+ }
147
+ async connect() {
148
+ throw new Error('connect functionality is not yet implemented for the current provider.');
149
+ }
150
+ async disconnect() {
151
+ throw new Error('disconnect functionality is not yet implemented for the current provider.');
152
+ }
153
+ connected() {
154
+ throw new Error('connected functionality is not yet implemented for the current provider.');
155
+ }
156
+ enabled() {
157
+ throw new Error('enabled functionality is not yet implemented for the current provider.');
148
158
  }
149
159
  }
150
160
  exports.Provider = Provider;
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../src/provider/Provider.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n IAccountDeletionRequest,\n IAccountDeletionResponse,\n} from './AccountDeletion';\nimport { IAccountImportRequest, IAccountImportResponse } from './AccountImport';\nimport { connector } from '../connector/Connector';\nimport { Account } from '../account/Account';\nimport { AvailableCommands } from '..';\nimport { IAccountDetails } from '../account/IAccountDetails';\nimport { IProvider } from './IProvider';\nimport { IAccount } from '../account/IAccount';\nimport { IAccountGenerationRequest } from './AccoutGeneration';\n\n/**\n * The Provider class provides a simple and intuitive interface for interacting with a specific\n * wallet service.\n *\n */\nexport class Provider implements IProvider {\n private providerName: string;\n\n /**\n * Provider constructor\n *\n * @param providerName - The name of the provider.\n * @returns An instance of the Provider class.\n */\n public constructor(providerName: string) {\n this.providerName = providerName;\n }\n\n /**\n * This method returns the name of the provider.\n * @returns The name of the provider.\n */\n public name(): string {\n return this.providerName;\n }\n\n /**\n * This method sends a message to the content script to get the list of accounts for the provider.\n * It returns a Promise that resolves to an array of Account instances.\n *\n * @returns A promise that resolves to an array of Account instances.\n */\n public async accounts(): Promise<IAccount[]> {\n const providersPromise = new Promise<IAccountDetails[]>(\n (resolve, reject) => {\n connector.sendMessageToContentScript(\n this.providerName,\n AvailableCommands.ProviderListAccounts,\n {},\n (result, err) => {\n if (err) return reject(err);\n return resolve(result as IAccountDetails[]);\n },\n );\n },\n );\n\n const providerAccounts: IAccountDetails[] = await providersPromise;\n\n let accounts: Account[] = [];\n for (const providerAccount of providerAccounts) {\n const accInstance = new Account(providerAccount, this.providerName);\n accounts.push(accInstance);\n }\n\n return accounts;\n }\n\n /**\n * This method sends a message to the content script to import an account with the given publicKey and privateKey.\n *\n * @remarks\n * - The IAccountImportResponse object contains the address of the imported account.\n * - The address is generated from the public key.\n *\n * @param publicKey - The public key of the account.\n * @param privateKey - The private key of the account.\n * @returns a Promise that resolves to an instance of IAccountImportResponse.\n *\n */\n public async importAccount(\n publicKey: string,\n privateKey: string,\n ): Promise<IAccountImportResponse> {\n const accountImportRequest = {\n publicKey,\n privateKey,\n } as IAccountImportRequest;\n return new Promise<IAccountImportResponse>((resolve, reject) => {\n connector.sendMessageToContentScript(\n this.providerName,\n AvailableCommands.ProviderImportAccount,\n accountImportRequest,\n (result, err) => {\n if (err) return reject(err);\n return resolve(result as IAccountImportResponse);\n },\n );\n });\n }\n\n /**\n * This method sends a message to the content script to delete the account associated with the given address.\n *\n * @param address - The address of the account.\n * @returns a Promise that resolves to an instance of IAccountDeletionResponse.\n */\n public async deleteAccount(\n address: string,\n ): Promise<IAccountDeletionResponse> {\n const accountDeletionRequest = { address } as IAccountDeletionRequest;\n return new Promise<IAccountDeletionResponse>((resolve, reject) => {\n connector.sendMessageToContentScript(\n this.providerName,\n AvailableCommands.ProviderDeleteAccount,\n accountDeletionRequest,\n (result, err) => {\n if (err) return reject(err);\n return resolve(result as IAccountDeletionResponse);\n },\n );\n });\n }\n\n /**\n * This method sends a message to the content script to get the list of nodes urls\n * used to connect the front end to the Massa network.\n *\n * @returns a Promise that resolves to an array of nodes urls (string).\n *\n */\n public async getNodesUrls(): Promise<string[]> {\n return new Promise<string[]>((resolve, reject) => {\n connector.sendMessageToContentScript(\n this.providerName,\n AvailableCommands.ProviderGetNodesUrls,\n {},\n (result, err) => {\n if (err) return reject(err);\n return resolve(result as string[]);\n },\n );\n });\n }\n\n /**\n * Returns the name of the network the provider is connected to.\n *\n * @returns a Promise that resolves to the network name (string).\n */\n public async getNetwork(): Promise<string> {\n return new Promise<string>((resolve, reject) => {\n connector.sendMessageToContentScript(\n this.providerName,\n AvailableCommands.ProviderGetNetwork,\n {},\n (result, err) => {\n if (err) return reject(err);\n else if (typeof result !== 'string') {\n return reject(\n new Error(`Expected a string but got ${typeof result} instead`),\n );\n }\n return resolve(result);\n },\n );\n });\n }\n\n /**\n * This method generates a new account by a given name and adds it to the wallet.\n *\n * @param name - The account name\n * @returns a Promise that resolves to an instance of IAccountDetails.\n */\n public async generateNewAccount(name?: string): Promise<IAccountDetails> {\n const accountGenerationRequest = { name } as IAccountGenerationRequest;\n return new Promise<IAccountDetails>((resolve, reject) => {\n connector.sendMessageToContentScript(\n this.providerName,\n AvailableCommands.ProviderGenerateNewAccount,\n accountGenerationRequest,\n (result, err) => {\n if (err) return reject(err);\n return resolve(result as IAccountDetails);\n },\n );\n });\n }\n\n public listenAccountChanges(\n callback: (address: string) => void,\n ): { unsubscribe: () => void } | undefined {\n console.error(\n 'The listen Account Change functionality is not yet implemented for the current provider.',\n );\n return undefined;\n }\n\n public listenNetworkChanges(\n callback: (network: string) => void,\n ): { unsubscribe: () => void } | undefined {\n console.error(\n 'The listen Network Change functionality is not yet implemented for the current provider.',\n );\n return undefined;\n }\n}\n"]}
1
+ {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../src/provider/Provider.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n IAccountDeletionRequest,\n IAccountDeletionResponse,\n} from './AccountDeletion';\nimport { IAccountImportRequest, IAccountImportResponse } from './AccountImport';\nimport { connector } from '../connector/Connector';\nimport { Account } from '../account/Account';\nimport { AvailableCommands } from '..';\nimport { IAccountDetails } from '../account/IAccountDetails';\nimport { IProvider } from './IProvider';\nimport { IAccount } from '../account/IAccount';\nimport { IAccountGenerationRequest } from './AccoutGeneration';\n\n/**\n * The Provider class provides a simple and intuitive interface for interacting with a specific\n * wallet service.\n *\n */\nexport class Provider implements IProvider {\n private providerName: string;\n\n /**\n * Provider constructor\n *\n * @param providerName - The name of the provider.\n * @returns An instance of the Provider class.\n */\n public constructor(providerName: string) {\n this.providerName = providerName;\n }\n\n /**\n * This method returns the name of the provider.\n * @returns The name of the provider.\n */\n public name(): string {\n return this.providerName;\n }\n\n /**\n * This method sends a message to the content script to get the list of accounts for the provider.\n * It returns a Promise that resolves to an array of Account instances.\n *\n * @returns A promise that resolves to an array of Account instances.\n */\n public async accounts(): Promise<IAccount[]> {\n const providersPromise = new Promise<IAccountDetails[]>(\n (resolve, reject) => {\n connector.sendMessageToContentScript(\n this.providerName,\n AvailableCommands.ProviderListAccounts,\n {},\n (result, err) => {\n if (err) return reject(err);\n return resolve(result as IAccountDetails[]);\n },\n );\n },\n );\n\n const providerAccounts: IAccountDetails[] = await providersPromise;\n\n let accounts: Account[] = [];\n for (const providerAccount of providerAccounts) {\n const accInstance = new Account(providerAccount, this.providerName);\n accounts.push(accInstance);\n }\n\n return accounts;\n }\n\n /**\n * This method sends a message to the content script to import an account with the given publicKey and privateKey.\n *\n * @remarks\n * - The IAccountImportResponse object contains the address of the imported account.\n * - The address is generated from the public key.\n *\n * @param publicKey - The public key of the account.\n * @param privateKey - The private key of the account.\n * @returns a Promise that resolves to an instance of IAccountImportResponse.\n *\n */\n public async importAccount(\n publicKey: string,\n privateKey: string,\n ): Promise<IAccountImportResponse> {\n const accountImportRequest = {\n publicKey,\n privateKey,\n } as IAccountImportRequest;\n return new Promise<IAccountImportResponse>((resolve, reject) => {\n connector.sendMessageToContentScript(\n this.providerName,\n AvailableCommands.ProviderImportAccount,\n accountImportRequest,\n (result, err) => {\n if (err) return reject(err);\n return resolve(result as IAccountImportResponse);\n },\n );\n });\n }\n\n /**\n * This method sends a message to the content script to delete the account associated with the given address.\n *\n * @param address - The address of the account.\n * @returns a Promise that resolves to an instance of IAccountDeletionResponse.\n */\n public async deleteAccount(\n address: string,\n ): Promise<IAccountDeletionResponse> {\n const accountDeletionRequest = { address } as IAccountDeletionRequest;\n return new Promise<IAccountDeletionResponse>((resolve, reject) => {\n connector.sendMessageToContentScript(\n this.providerName,\n AvailableCommands.ProviderDeleteAccount,\n accountDeletionRequest,\n (result, err) => {\n if (err) return reject(err);\n return resolve(result as IAccountDeletionResponse);\n },\n );\n });\n }\n\n /**\n * This method sends a message to the content script to get the list of nodes urls\n * used to connect the front end to the Massa network.\n *\n * @returns a Promise that resolves to an array of nodes urls (string).\n *\n */\n public async getNodesUrls(): Promise<string[]> {\n return new Promise<string[]>((resolve, reject) => {\n connector.sendMessageToContentScript(\n this.providerName,\n AvailableCommands.ProviderGetNodesUrls,\n {},\n (result, err) => {\n if (err) return reject(err);\n return resolve(result as string[]);\n },\n );\n });\n }\n\n /**\n * Returns the name of the network the provider is connected to.\n *\n * @returns a Promise that resolves to the network name (string).\n */\n public async getNetwork(): Promise<string> {\n return new Promise<string>((resolve, reject) => {\n connector.sendMessageToContentScript(\n this.providerName,\n AvailableCommands.ProviderGetNetwork,\n {},\n (result, err) => {\n if (err) return reject(err);\n else if (typeof result !== 'string') {\n return reject(\n new Error(`Expected a string but got ${typeof result} instead`),\n );\n }\n return resolve(result);\n },\n );\n });\n }\n\n /**\n * This method generates a new account by a given name and adds it to the wallet.\n *\n * @param name - The account name\n * @returns a Promise that resolves to an instance of IAccountDetails.\n */\n public async generateNewAccount(name?: string): Promise<IAccountDetails> {\n const accountGenerationRequest = { name } as IAccountGenerationRequest;\n return new Promise<IAccountDetails>((resolve, reject) => {\n connector.sendMessageToContentScript(\n this.providerName,\n AvailableCommands.ProviderGenerateNewAccount,\n accountGenerationRequest,\n (result, err) => {\n if (err) return reject(err);\n return resolve(result as IAccountDetails);\n },\n );\n });\n }\n\n public listenAccountChanges(\n callback: (address: string) => void,\n ): { 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: string) => void,\n ): { unsubscribe: () => void } | undefined {\n throw new Error(\n 'listenNetworkChanges is not yet implemented for the current provider.',\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 +1 @@
1
- {"version":3,"file":"BearbyAccount.d.ts","sourceRoot":"","sources":["../../../src/bearbyWallet/BearbyAccount.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,IAAI,EAEJ,8BAA8B,EAC/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,IAAI,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAO/C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAM5D;;GAEG;AACH,eAAO,MAAM,eAAe,sCAAsC,CAAC;AAEnE,oBAAY,cAAc;IACxB,OAAO,IAAA;IACP,OAAO,IAAA;IACP,QAAQ,IAAA;IACR,SAAS,IAAA;IACT,MAAM,IAAA;CACP;AAED;;GAEG;AACH,oBAAY,eAAe;IACzB,WAAW,IAAI;IACf,OAAO,IAAI;IACX,QAAQ,IAAI;IACZ,SAAS,IAAI;IACb,MAAM,IAAI;CACX;AAQD,qBAAa,aAAc,YAAW,QAAQ;IAC5C,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAmB;gBAEhB,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM;IAMpE,OAAO,IAAI,MAAM;IAIjB,IAAI,IAAI,MAAM;IAId,YAAY,IAAI,MAAM;IAIhB,OAAO;IASP,OAAO,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAyB3C,IAAI,CACf,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GACjC,OAAO,CAAC,kBAAkB,CAAC;IAkBjB,QAAQ,CACnB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,mBAAmB,CAAC;IAUlB,SAAS,CACpB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,mBAAmB,CAAC;IASlB,eAAe,CAC1B,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,EACxB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,mBAAmB,CAAC;IAalB,MAAM,CACjB,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,IAAI,GAAG,UAAU,EAC5B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,sBAAsB,UAAQ,GAC7B,OAAO,CAAC,mBAAmB,GAAG,8BAA8B,CAAC;IAgChE;;;;;;;;;;;OAWG;IACU,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAKjD;;;;;;;;;OASG;cACa,kBAAkB,CAAC,CAAC,EAClC,QAAQ,EAAE,uBAAuB,EACjC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,CAAC,CAAC;IAYb;;;;;;;;;;;;OAYG;YACW,oBAAoB;IAwCrB,mBAAmB,CAC9B,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,UAAU,GAAG,IAAI,EAC5B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,8BAA8B,CAAC;CAmE3C"}
1
+ {"version":3,"file":"BearbyAccount.d.ts","sourceRoot":"","sources":["../../../src/bearbyWallet/BearbyAccount.ts"],"names":[],"mappings":";AAAA,OAAO,EACL,IAAI,EAEJ,8BAA8B,EAC/B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,mBAAmB,EAAE,MAAM,IAAI,CAAC;AACzC,OAAO,EAAE,uBAAuB,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAO/C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAE3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAM5D;;GAEG;AACH,eAAO,MAAM,eAAe,sCAAsC,CAAC;AAEnE,oBAAY,cAAc;IACxB,OAAO,IAAA;IACP,OAAO,IAAA;IACP,QAAQ,IAAA;IACR,SAAS,IAAA;IACT,MAAM,IAAA;CACP;AAED;;GAEG;AACH,oBAAY,eAAe;IACzB,WAAW,IAAI;IACf,OAAO,IAAI;IACX,QAAQ,IAAI;IACZ,SAAS,IAAI;IACb,MAAM,IAAI;CACX;AAQD,qBAAa,aAAc,YAAW,QAAQ;IAC5C,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,QAAQ,CAAmB;gBAEhB,EAAE,OAAO,EAAE,IAAI,EAAE,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM;IAMpE,OAAO,IAAI,MAAM;IAIjB,IAAI,IAAI,MAAM;IAId,YAAY,IAAI,MAAM;IAKhB,OAAO;IASP,OAAO,IAAI,OAAO,CAAC,uBAAuB,CAAC;IAyB3C,IAAI,CACf,IAAI,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,GACjC,OAAO,CAAC,kBAAkB,CAAC;IAkBjB,QAAQ,CACnB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,mBAAmB,CAAC;IAUlB,SAAS,CACpB,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,mBAAmB,CAAC;IASlB,eAAe,CAC1B,MAAM,EAAE,MAAM,EACd,gBAAgB,EAAE,MAAM,EACxB,GAAG,EAAE,MAAM,GACV,OAAO,CAAC,mBAAmB,CAAC;IAalB,MAAM,CACjB,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,IAAI,GAAG,UAAU,EAC5B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,EACd,sBAAsB,UAAQ,GAC7B,OAAO,CAAC,mBAAmB,GAAG,8BAA8B,CAAC;IAgChE;;;;;;;;;;;OAWG;IACU,aAAa,IAAI,OAAO,CAAC,UAAU,CAAC;IAKjD;;;;;;;;;OASG;cACa,kBAAkB,CAAC,CAAC,EAClC,QAAQ,EAAE,uBAAuB,EACjC,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,CAAC,CAAC;IAYb;;;;;;;;;;;;OAYG;YACW,oBAAoB;IAwCrB,mBAAmB,CAC9B,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,UAAU,GAAG,IAAI,EAC5B,MAAM,EAAE,MAAM,EACd,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,8BAA8B,CAAC;CAmE3C"}
@@ -1,4 +1,3 @@
1
- import { Args, } from '@massalabs/web3-utils';
2
1
  import { web3 } from '@hicaru/bearby.js';
3
2
  import { postRequest, } from '../massaStation/RequestHandler';
4
3
  import { JSON_RPC_REQUEST_METHOD } from './jsonRpcMethods';
@@ -53,6 +52,7 @@ export class BearbyAccount {
53
52
  providerName() {
54
53
  return this._providerName;
55
54
  }
55
+ // TODO: Should be removed from account interface as it more a provider method
56
56
  async connect() {
57
57
  try {
58
58
  await web3.wallet.connect();
@@ -124,12 +124,12 @@ export class BearbyAccount {
124
124
  if (nonPersistentExecution) {
125
125
  return this.nonPersistentCallSC(contractAddress, functionName, parameter, amount, fee, maxGas);
126
126
  }
127
- let unsafeParameters = Uint8Array.from([]);
128
- if (parameter instanceof Args) {
129
- unsafeParameters = Uint8Array.from(parameter.serialize());
127
+ let unsafeParameters;
128
+ if (parameter instanceof Uint8Array) {
129
+ unsafeParameters = parameter;
130
130
  }
131
131
  else {
132
- unsafeParameters = parameter;
132
+ unsafeParameters = Uint8Array.from(parameter.serialize());
133
133
  }
134
134
  const operationId = await web3.contract.call({
135
135
  maxGas: Number(maxGas),
@@ -1 +1 @@
1
- {"version":3,"file":"BearbyAccount.js","sourceRoot":"","sources":["../../../src/bearbyWallet/BearbyAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,IAAI,GAGL,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EACL,WAAW,GAEZ,MAAM,gCAAgC,CAAC;AAGxC,OAAO,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,KAA6C,MAAM,OAAO,CAAC;AAElE;;GAEG;AACH,MAAM,kBAAkB,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAEjD;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,mCAAmC,CAAC;AAEnE,MAAM,CAAN,IAAY,cAMX;AAND,WAAY,cAAc;IACxB,yDAAO,CAAA;IACP,yDAAO,CAAA;IACP,2DAAQ,CAAA;IACR,6DAAS,CAAA;IACT,uDAAM,CAAA;AACR,CAAC,EANW,cAAc,KAAd,cAAc,QAMzB;AAED;;GAEG;AACH,MAAM,CAAN,IAAY,eAMX;AAND,WAAY,eAAe;IACzB,mEAAe,CAAA;IACf,2DAAW,CAAA;IACX,6DAAY,CAAA;IACZ,+DAAa,CAAA;IACb,yDAAU,CAAA;AACZ,CAAC,EANW,eAAe,KAAf,eAAe,QAM1B;AAED,MAAM,cAAc,GAAG;IACrB,MAAM,EACJ,kFAAkF;IACpF,cAAc,EAAE,kBAAkB;CACZ,CAAC;AAEzB,MAAM,OAAO,aAAa;IAChB,aAAa,CAAS;IACtB,QAAQ,CAAS;IACjB,KAAK,CAAS;IACd,QAAQ,GAAG,eAAe,CAAC;IAEnC,YAAmB,EAAE,OAAO,EAAE,IAAI,EAAmB,EAAE,YAAoB;QACzE,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;QACxB,IAAI,CAAC,KAAK,GAAG,IAAI,IAAI,gBAAgB,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;IACpC,CAAC;IAEM,OAAO;QACZ,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAEM,YAAY;QACjB,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;IAEM,KAAK,CAAC,OAAO;QAClB,IAAI;YACF,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;SAC7B;QAAC,OAAO,EAAE,EAAE;YACX,OAAO,CAAC,GAAG,CAAC,2BAA2B,EAAE,EAAE,CAAC,CAAC;SAC9C;IACH,CAAC;IAED,gBAAgB;IACT,KAAK,CAAC,OAAO;QAClB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,4DAA4D;QAC5D,MAAM,IAAI,GAAG;YACX,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,eAAe;YACvB,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACzB,EAAE,EAAE,CAAC;SACN,CAAC;QAEF,MAAM,YAAY,GAAG,MAAM,WAAW,CACpC,eAAe,EACf,IAAI,CACL,CAAC;QAEF,IAAI,YAAY,CAAC,OAAO,IAAI,YAAY,CAAC,KAAK,EAAE;YAC9C,MAAM,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC;SAClC;QACD,OAAO;YACL,YAAY,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,aAAa;YACzD,gBAAgB,EAAE,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,iBAAiB;SACvC,CAAC;IAC/B,CAAC;IAED,eAAe;IACR,KAAK,CAAC,IAAI,CACf,IAAkC;QAElC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAErB,IAAI,OAAe,CAAC;QACpB,IAAI,IAAI,YAAY,UAAU,EAAE;YAC9B,OAAO,GAAG,IAAI,WAAW,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;SAC1C;QACD,IAAI,IAAI,YAAY,MAAM,EAAE;YAC1B,OAAO,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;SAC3B;QACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACzD,OAAO;YACL,SAAS,EAAE,SAAS,CAAC,SAAS;YAC9B,aAAa,EAAE,SAAS,CAAC,SAAS;SACnC,CAAC;IACJ,CAAC;IAED,eAAe;IACR,KAAK,CAAC,QAAQ,CACnB,MAAc,EACd,GAAW;QAEX,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAEjE,OAAO;YACL,WAAW;SACW,CAAC;IAC3B,CAAC;IAED,eAAe;IACR,KAAK,CAAC,SAAS,CACpB,MAAc,EACd,GAAW;QAEX,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,CAAC;QAElE,OAAO;YACL,WAAW;SACW,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,eAAe,CAC1B,MAAc,EACd,gBAAwB,EACxB,GAAW;QAEX,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QAErB,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAC1C,MAAM,CAAC,QAAQ,EAAE,EACjB,gBAAgB,CACjB,CAAC;QAEF,OAAO;YACL,WAAW;SACW,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,MAAM,CACjB,eAAuB,EACvB,YAAoB,EACpB,SAA4B,EAC5B,MAAc,EACd,GAAW,EACX,MAAc,EACd,sBAAsB,GAAG,KAAK;QAE9B,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;QACrB,IAAI,sBAAsB,EAAE;YAC1B,OAAO,IAAI,CAAC,mBAAmB,CAC7B,eAAe,EACf,YAAY,EACZ,SAAS,EACT,MAAM,EACN,GAAG,EACH,MAAM,CACP,CAAC;SACH;QAED,IAAI,gBAAgB,GAAG,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAC3C,IAAI,SAAS,YAAY,IAAI,EAAE;YAC7B,gBAAgB,GAAG,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;SAC3D;aAAM;YACL,gBAAgB,GAAG,SAAS,CAAC;SAC9B;QAED,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;YAC3C,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;YACtB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;YACrB,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC;YAChB,aAAa,EAAE,eAAe;YAC9B,YAAY,EAAE,YAAY;YAC1B,gBAAgB;SACjB,CAAC,CAAC;QAEH,OAAO,EAAE,WAAW,EAAE,CAAC;IACzB,CAAC;IAED;;;;;;;;;;;OAWG;IACI,KAAK,CAAC,aAAa;QACxB,MAAM,oBAAoB,GAAG,uBAAuB,CAAC,UAAU,CAAC;QAChE,OAAO,MAAM,IAAI,CAAC,kBAAkB,CAAa,oBAAoB,EAAE,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED;;;;;;;;;OASG;IACO,KAAK,CAAC,kBAAkB,CAChC,QAAiC,EACjC,MAAc;QAEd,IAAI,IAAI,GAA2B,IAAI,CAAC;QACxC,IAAI,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAEzD,2CAA2C;QAC3C,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE;YAC9B,MAAM,IAAI,CAAC,KAAK,CAAC;SAClB;QAED,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED;;;;;;;;;;;;OAYG;IACK,KAAK,CAAC,oBAAoB,CAChC,QAAiC,EACjC,MAAc;QAEd,IAAI,IAAI,GAA0C,IAAI,CAAC;QAEvD,MAAM,IAAI,GAAG;YACX,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,QAAQ;YAChB,MAAM,EAAE,MAAM;YACd,EAAE,EAAE,CAAC;SACN,CAAC;QAEF,IAAI;YACF,IAAI,GAAG,MAAM,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,cAAc,EAAE,CAAC,CAAC;SAC3E;QAAC,OAAO,EAAE,EAAE;YACX,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,IAAI,KAAK,CAAC,oBAAoB,GAAG,MAAM,CAAC,EAAE,CAAC,CAAC;aAC1B,CAAC;SAC7B;QAED,MAAM,YAAY,GAA2B,IAAI,CAAC,IAAI,CAAC;QAEvD,IAAI,YAAY,CAAC,KAAK,EAAE;YACtB,OAAO;gBACL,OAAO,EAAE,IAAI;gBACb,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC;aACnB,CAAC;SAC7B;QAED,OAAO;YACL,OAAO,EAAE,KAAK;YACd,MAAM,EAAE,YAAY,CAAC,MAAW;YAChC,KAAK,EAAE,IAAI;SACc,CAAC;IAC9B,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAC9B,eAAuB,EACvB,YAAoB,EACpB,SAA4B,EAC5B,MAAc,EACd,GAAW,EACX,MAAc;QAEd,6DAA6D;QAC7D,MAAM,IAAI,GAAG,eAAe,CAAC;QAC7B,mBAAmB;QACnB,IAAI,MAAM,GAAG,kBAAkB,EAAE;YAC/B,MAAM,IAAI,KAAK,CACb;4BACoB,MAAM,CAAC,QAAQ,EAAE;UACnC,kBAAkB,CAAC,QAAQ,EAAE;SAC9B,CACF,CAAC;SACH;QAED,2CAA2C;QAC3C,IAAI,aAAa,GAAG,EAAE,CAAC;QACvB,IAAI,SAAS,YAAY,UAAU,EAAE;YACnC,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACvC;aAAM;YACL,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;SACnD;QACD,yBAAyB;QACzB,MAAM,IAAI,GAAG;YACX,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC;YACvB,cAAc,EAAE,eAAe;YAC/B,eAAe,EAAE,YAAY;YAC7B,SAAS,EAAE,aAAa;YACxB,cAAc,EAAE,IAAI,CAAC,QAAQ;YAC7B,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC;YACrB,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC;SACjB,CAAC;QACF,MAAM,IAAI,GAAG;YACX;gBACE,OAAO,EAAE,KAAK;gBACd,MAAM,EAAE,wBAAwB;gBAChC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC;gBAChB,EAAE,EAAE,CAAC;aACN;SACF,CAAC;QACF,wBAAwB;QACxB,IAAI,iBAAiB,GAAsC,EAAE,CAAC;QAC9D,IAAI;YACF,IAAI,IAAI,GAAG,MAAM,WAAW,CAC1B,IAAI,EACJ,IAAI,CACL,CAAC;YACF,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,EAAE;gBAC9B,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;aAC1B;YACD,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC;SACjC;QAAC,OAAO,EAAE,EAAE;YACX,MAAM,IAAI,KAAK,CACb,sEAAsE,EAAE,EAAE,CAC3E,CAAC;SACH;QACD,IAAI,iBAAiB,CAAC,MAAM,IAAI,CAAC,EAAE;YACjC,MAAM,IAAI,KAAK,CACb,4FAA4F,CAC7F,CAAC;SACH;QACD,IAAI,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,EAAE;YACrC,MAAM,IAAI,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SACpD;QACD,OAAO;YACL,WAAW,EAAE,IAAI,UAAU,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;YACrE,IAAI,EAAE,iBAAiB,CAAC,CAAC,CAAC;SAC3B,CAAC;IACJ,CAAC;CACF","sourcesContent":["import {\n Args,\n IContractReadOperationData,\n IContractReadOperationResponse,\n} from '@massalabs/web3-utils';\nimport { ITransactionDetails } from '..';\nimport { IAccountBalanceResponse, IAccountDetails } from '../account';\nimport { IAccount } from '../account/IAccount';\nimport { web3 } from '@hicaru/bearby.js';\nimport {\n postRequest,\n JsonRpcResponseData,\n} from '../massaStation/RequestHandler';\nimport { BalanceResponse } from './BalanceResponse';\nimport { NodeStatus } from './NodeStatus';\nimport { JSON_RPC_REQUEST_METHOD } from './jsonRpcMethods';\nimport axios, { AxiosRequestHeaders, AxiosResponse } from 'axios';\nimport { IAccountSignOutput } from '../account/AccountSign';\n/**\n * The maximum allowed gas for a read operation\n */\nconst MAX_READ_BLOCK_GAS = BigInt(4_294_967_295);\n\n/**\n * The RPC we are using to query the node\n */\nexport const PUBLIC_NODE_RPC = 'https://buildnet.massa.net/api/v2';\n\nexport enum OperationsType {\n Payment,\n RollBuy,\n RollSell,\n ExecuteSC,\n CallSC,\n}\n\n/**\n * Associates an operation type with a number.\n */\nexport enum OperationTypeId {\n Transaction = 0,\n RollBuy = 1,\n RollSell = 2,\n ExecuteSC = 3,\n CallSC = 4,\n}\n\nconst requestHeaders = {\n Accept:\n 'application/json,text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Content-Type': 'application/json',\n} as AxiosRequestHeaders;\n\nexport class BearbyAccount implements IAccount {\n private _providerName: string;\n private _address: string;\n private _name: string;\n private _nodeUrl = PUBLIC_NODE_RPC;\n\n public constructor({ address, name }: IAccountDetails, providerName: string) {\n this._address = address;\n this._name = name ?? 'Bearby_account';\n this._providerName = providerName;\n }\n\n public address(): string {\n return this._address;\n }\n\n public name(): string {\n return this._name;\n }\n\n public providerName(): string {\n return this._providerName;\n }\n\n public async connect() {\n try {\n await web3.wallet.connect();\n } catch (ex) {\n console.log('Bearby connection error: ', ex);\n }\n }\n\n // needs testing\n public async balance(): Promise<IAccountBalanceResponse> {\n await this.connect();\n // Not available on bearby. we have to manually call the api\n const body = {\n jsonrpc: '2.0',\n method: 'get_addresses',\n params: [[this._address]],\n id: 0,\n };\n\n const addressInfos = await postRequest<BalanceResponse>(\n PUBLIC_NODE_RPC,\n body,\n );\n\n if (addressInfos.isError || addressInfos.error) {\n throw addressInfos.error.message;\n }\n return {\n finalBalance: addressInfos.result.result[0].final_balance,\n candidateBalance: addressInfos.result.result[0].candidate_balance,\n } as IAccountBalanceResponse;\n }\n\n // need testing\n public async sign(\n data: Buffer | Uint8Array | string,\n ): Promise<IAccountSignOutput> {\n await this.connect();\n\n let strData: string;\n if (data instanceof Uint8Array) {\n strData = new TextDecoder().decode(data);\n }\n if (data instanceof Buffer) {\n strData = data.toString();\n }\n const signature = await web3.wallet.signMessage(strData);\n return {\n publicKey: signature.publicKey,\n base58Encoded: signature.signature,\n };\n }\n\n // need testing\n public async buyRolls(\n amount: bigint,\n fee: bigint,\n ): Promise<ITransactionDetails> {\n await this.connect();\n const operationId = await web3.massa.buyRolls(amount.toString());\n\n return {\n operationId,\n } as ITransactionDetails;\n }\n\n // need testing\n public async sellRolls(\n amount: bigint,\n fee: bigint,\n ): Promise<ITransactionDetails> {\n await this.connect();\n const operationId = await web3.massa.sellRolls(amount.toString());\n\n return {\n operationId,\n } as ITransactionDetails;\n }\n\n public async sendTransaction(\n amount: bigint,\n recipientAddress: string,\n fee: bigint,\n ): Promise<ITransactionDetails> {\n await this.connect();\n\n const operationId = await web3.massa.payment(\n amount.toString(),\n recipientAddress,\n );\n\n return {\n operationId,\n } as ITransactionDetails;\n }\n\n public async callSC(\n contractAddress: string,\n functionName: string,\n parameter: Args | Uint8Array,\n amount: bigint,\n fee: bigint,\n maxGas: bigint,\n nonPersistentExecution = false,\n ): Promise<ITransactionDetails | IContractReadOperationResponse> {\n await this.connect();\n if (nonPersistentExecution) {\n return this.nonPersistentCallSC(\n contractAddress,\n functionName,\n parameter,\n amount,\n fee,\n maxGas,\n );\n }\n\n let unsafeParameters = Uint8Array.from([]);\n if (parameter instanceof Args) {\n unsafeParameters = Uint8Array.from(parameter.serialize());\n } else {\n unsafeParameters = parameter;\n }\n\n const operationId = await web3.contract.call({\n maxGas: Number(maxGas),\n coins: Number(amount),\n fee: Number(fee),\n targetAddress: contractAddress,\n functionName: functionName,\n unsafeParameters,\n });\n\n return { operationId };\n }\n\n /**\n * Retrieves the node's status.\n *\n * @remarks\n * The returned information includes:\n * - Whether the node is reachable\n * - The number of connected peers\n * - The node's version\n * - The node's configuration parameters\n *\n * @returns A promise that resolves to the node's status information.\n */\n public async getNodeStatus(): Promise<NodeStatus> {\n const jsonRpcRequestMethod = JSON_RPC_REQUEST_METHOD.GET_STATUS;\n return await this.sendJsonRPCRequest<NodeStatus>(jsonRpcRequestMethod, []);\n }\n\n /**\n * Sends a post JSON rpc request to the node.\n *\n * @param resource - The rpc method to call.\n * @param params - The parameters to pass to the rpc method.\n *\n * @throws An error if the rpc method returns an error.\n *\n * @returns A promise that resolves as the result of the rpc method.\n */\n protected async sendJsonRPCRequest<T>(\n resource: JSON_RPC_REQUEST_METHOD,\n params: object,\n ): Promise<T> {\n let resp: JsonRpcResponseData<T> = null;\n resp = await this.promisifyJsonRpcCall(resource, params);\n\n // in case of rpc error, rethrow the error.\n if (resp.isError || resp.error) {\n throw resp.error;\n }\n\n return resp.result;\n }\n\n /**\n * Converts a json rpc call to a promise that resolves as a JsonRpcResponseData\n *\n * @privateRemarks\n * If there is an error while sending the request, the function catches the error, the isError\n * property is set to true, the result property set to null, and the error property set to a\n * new Error object with a message indicating that there was an error.\n *\n * @param resource - The rpc method to call.\n * @param params - The parameters to pass to the rpc method.\n *\n * @returns A promise that resolves as a JsonRpcResponseData.\n */\n private async promisifyJsonRpcCall<T>(\n resource: JSON_RPC_REQUEST_METHOD,\n params: object,\n ): Promise<JsonRpcResponseData<T>> {\n let resp: AxiosResponse<JsonRpcResponseData<T>> = null;\n\n const body = {\n jsonrpc: '2.0',\n method: resource,\n params: params,\n id: 0,\n };\n\n try {\n resp = await axios.post(this._nodeUrl, body, { headers: requestHeaders });\n } catch (ex) {\n return {\n isError: true,\n result: null,\n error: new Error('JSON.parse error: ' + String(ex)),\n } as JsonRpcResponseData<T>;\n }\n\n const responseData: JsonRpcResponseData<T> = resp.data;\n\n if (responseData.error) {\n return {\n isError: true,\n result: null,\n error: new Error(responseData.error.message),\n } as JsonRpcResponseData<T>;\n }\n\n return {\n isError: false,\n result: responseData.result as T,\n error: null,\n } as JsonRpcResponseData<T>;\n }\n\n public async nonPersistentCallSC(\n contractAddress: string,\n functionName: string,\n parameter: Uint8Array | Args,\n amount: bigint,\n fee: bigint,\n maxGas: bigint,\n ): Promise<IContractReadOperationResponse> {\n // not clean but bearby doesn't allow us to get its node urls\n const node = PUBLIC_NODE_RPC;\n // Gas amount check\n if (maxGas > MAX_READ_BLOCK_GAS) {\n throw new Error(\n `\n The gas submitted ${maxGas.toString()} exceeds the max. allowed block gas of \n ${MAX_READ_BLOCK_GAS.toString()}\n `,\n );\n }\n\n // convert parameter to an array of numbers\n let argumentArray = [];\n if (parameter instanceof Uint8Array) {\n argumentArray = Array.from(parameter);\n } else {\n argumentArray = Array.from(parameter.serialize());\n }\n // setup the request body\n const data = {\n max_gas: Number(maxGas),\n target_address: contractAddress,\n target_function: functionName,\n parameter: argumentArray,\n caller_address: this._address,\n coins: Number(amount),\n fee: Number(fee),\n };\n const body = [\n {\n jsonrpc: '2.0',\n method: 'execute_read_only_call',\n params: [[data]],\n id: 0,\n },\n ];\n // returns operation ids\n let jsonRpcCallResult: Array<IContractReadOperationData> = [];\n try {\n let resp = await postRequest<Array<IContractReadOperationData>>(\n node,\n body,\n );\n if (resp.isError || resp.error) {\n throw resp.error.message;\n }\n jsonRpcCallResult = resp.result;\n } catch (ex) {\n throw new Error(\n `MassaStation account: error while interacting with smart contract: ${ex}`,\n );\n }\n if (jsonRpcCallResult.length <= 0) {\n throw new Error(\n `Read operation bad response. No results array in json rpc response. Inspect smart contract`,\n );\n }\n if (jsonRpcCallResult[0].result.Error) {\n throw new Error(jsonRpcCallResult[0].result.Error);\n }\n return {\n returnValue: new Uint8Array(jsonRpcCallResult[0].result[0].result.Ok),\n info: jsonRpcCallResult[0],\n };\n }\n}\n"]}
1
+ {"version":3,"file":"BearbyAccount.js","sourceRoot":"","sources":["../../../src/bearbyWallet/BearbyAccount.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n Args,\n IContractReadOperationData,\n IContractReadOperationResponse,\n} from '@massalabs/web3-utils';\nimport { ITransactionDetails } from '..';\nimport { IAccountBalanceResponse, IAccountDetails } from '../account';\nimport { IAccount } from '../account/IAccount';\nimport { web3 } from '@hicaru/bearby.js';\nimport {\n postRequest,\n JsonRpcResponseData,\n} from '../massaStation/RequestHandler';\nimport { BalanceResponse } from './BalanceResponse';\nimport { NodeStatus } from './NodeStatus';\nimport { JSON_RPC_REQUEST_METHOD } from './jsonRpcMethods';\nimport axios, { AxiosRequestHeaders, AxiosResponse } from 'axios';\nimport { IAccountSignOutput } from '../account/AccountSign';\n/**\n * The maximum allowed gas for a read operation\n */\nconst MAX_READ_BLOCK_GAS = BigInt(4_294_967_295);\n\n/**\n * The RPC we are using to query the node\n */\nexport const PUBLIC_NODE_RPC = 'https://buildnet.massa.net/api/v2';\n\nexport enum OperationsType {\n Payment,\n RollBuy,\n RollSell,\n ExecuteSC,\n CallSC,\n}\n\n/**\n * Associates an operation type with a number.\n */\nexport enum OperationTypeId {\n Transaction = 0,\n RollBuy = 1,\n RollSell = 2,\n ExecuteSC = 3,\n CallSC = 4,\n}\n\nconst requestHeaders = {\n Accept:\n 'application/json,text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',\n 'Content-Type': 'application/json',\n} as AxiosRequestHeaders;\n\nexport class BearbyAccount implements IAccount {\n private _providerName: string;\n private _address: string;\n private _name: string;\n private _nodeUrl = PUBLIC_NODE_RPC;\n\n public constructor({ address, name }: IAccountDetails, providerName: string) {\n this._address = address;\n this._name = name ?? 'Bearby_account';\n this._providerName = providerName;\n }\n\n public address(): string {\n return this._address;\n }\n\n public name(): string {\n return this._name;\n }\n\n public providerName(): string {\n return this._providerName;\n }\n\n // TODO: Should be removed from account interface as it more a provider method\n public async connect() {\n try {\n await web3.wallet.connect();\n } catch (ex) {\n console.log('Bearby connection error: ', ex);\n }\n }\n\n // needs testing\n public async balance(): Promise<IAccountBalanceResponse> {\n await this.connect();\n // Not available on bearby. we have to manually call the api\n const body = {\n jsonrpc: '2.0',\n method: 'get_addresses',\n params: [[this._address]],\n id: 0,\n };\n\n const addressInfos = await postRequest<BalanceResponse>(\n PUBLIC_NODE_RPC,\n body,\n );\n\n if (addressInfos.isError || addressInfos.error) {\n throw addressInfos.error.message;\n }\n return {\n finalBalance: addressInfos.result.result[0].final_balance,\n candidateBalance: addressInfos.result.result[0].candidate_balance,\n } as IAccountBalanceResponse;\n }\n\n // need testing\n public async sign(\n data: Buffer | Uint8Array | string,\n ): Promise<IAccountSignOutput> {\n await this.connect();\n\n let strData: string;\n if (data instanceof Uint8Array) {\n strData = new TextDecoder().decode(data);\n }\n if (data instanceof Buffer) {\n strData = data.toString();\n }\n const signature = await web3.wallet.signMessage(strData);\n return {\n publicKey: signature.publicKey,\n base58Encoded: signature.signature,\n };\n }\n\n // need testing\n public async buyRolls(\n amount: bigint,\n fee: bigint,\n ): Promise<ITransactionDetails> {\n await this.connect();\n const operationId = await web3.massa.buyRolls(amount.toString());\n\n return {\n operationId,\n } as ITransactionDetails;\n }\n\n // need testing\n public async sellRolls(\n amount: bigint,\n fee: bigint,\n ): Promise<ITransactionDetails> {\n await this.connect();\n const operationId = await web3.massa.sellRolls(amount.toString());\n\n return {\n operationId,\n } as ITransactionDetails;\n }\n\n public async sendTransaction(\n amount: bigint,\n recipientAddress: string,\n fee: bigint,\n ): Promise<ITransactionDetails> {\n await this.connect();\n\n const operationId = await web3.massa.payment(\n amount.toString(),\n recipientAddress,\n );\n\n return {\n operationId,\n } as ITransactionDetails;\n }\n\n public async callSC(\n contractAddress: string,\n functionName: string,\n parameter: Args | Uint8Array,\n amount: bigint,\n fee: bigint,\n maxGas: bigint,\n nonPersistentExecution = false,\n ): Promise<ITransactionDetails | IContractReadOperationResponse> {\n await this.connect();\n if (nonPersistentExecution) {\n return this.nonPersistentCallSC(\n contractAddress,\n functionName,\n parameter,\n amount,\n fee,\n maxGas,\n );\n }\n\n let unsafeParameters: Uint8Array;\n if (parameter instanceof Uint8Array) {\n unsafeParameters = parameter;\n } else {\n unsafeParameters = Uint8Array.from(parameter.serialize());\n }\n\n const operationId = await web3.contract.call({\n maxGas: Number(maxGas),\n coins: Number(amount),\n fee: Number(fee),\n targetAddress: contractAddress,\n functionName: functionName,\n unsafeParameters,\n });\n\n return { operationId };\n }\n\n /**\n * Retrieves the node's status.\n *\n * @remarks\n * The returned information includes:\n * - Whether the node is reachable\n * - The number of connected peers\n * - The node's version\n * - The node's configuration parameters\n *\n * @returns A promise that resolves to the node's status information.\n */\n public async getNodeStatus(): Promise<NodeStatus> {\n const jsonRpcRequestMethod = JSON_RPC_REQUEST_METHOD.GET_STATUS;\n return await this.sendJsonRPCRequest<NodeStatus>(jsonRpcRequestMethod, []);\n }\n\n /**\n * Sends a post JSON rpc request to the node.\n *\n * @param resource - The rpc method to call.\n * @param params - The parameters to pass to the rpc method.\n *\n * @throws An error if the rpc method returns an error.\n *\n * @returns A promise that resolves as the result of the rpc method.\n */\n protected async sendJsonRPCRequest<T>(\n resource: JSON_RPC_REQUEST_METHOD,\n params: object,\n ): Promise<T> {\n let resp: JsonRpcResponseData<T> = null;\n resp = await this.promisifyJsonRpcCall(resource, params);\n\n // in case of rpc error, rethrow the error.\n if (resp.isError || resp.error) {\n throw resp.error;\n }\n\n return resp.result;\n }\n\n /**\n * Converts a json rpc call to a promise that resolves as a JsonRpcResponseData\n *\n * @privateRemarks\n * If there is an error while sending the request, the function catches the error, the isError\n * property is set to true, the result property set to null, and the error property set to a\n * new Error object with a message indicating that there was an error.\n *\n * @param resource - The rpc method to call.\n * @param params - The parameters to pass to the rpc method.\n *\n * @returns A promise that resolves as a JsonRpcResponseData.\n */\n private async promisifyJsonRpcCall<T>(\n resource: JSON_RPC_REQUEST_METHOD,\n params: object,\n ): Promise<JsonRpcResponseData<T>> {\n let resp: AxiosResponse<JsonRpcResponseData<T>> = null;\n\n const body = {\n jsonrpc: '2.0',\n method: resource,\n params: params,\n id: 0,\n };\n\n try {\n resp = await axios.post(this._nodeUrl, body, { headers: requestHeaders });\n } catch (ex) {\n return {\n isError: true,\n result: null,\n error: new Error('JSON.parse error: ' + String(ex)),\n } as JsonRpcResponseData<T>;\n }\n\n const responseData: JsonRpcResponseData<T> = resp.data;\n\n if (responseData.error) {\n return {\n isError: true,\n result: null,\n error: new Error(responseData.error.message),\n } as JsonRpcResponseData<T>;\n }\n\n return {\n isError: false,\n result: responseData.result as T,\n error: null,\n } as JsonRpcResponseData<T>;\n }\n\n public async nonPersistentCallSC(\n contractAddress: string,\n functionName: string,\n parameter: Uint8Array | Args,\n amount: bigint,\n fee: bigint,\n maxGas: bigint,\n ): Promise<IContractReadOperationResponse> {\n // not clean but bearby doesn't allow us to get its node urls\n const node = PUBLIC_NODE_RPC;\n // Gas amount check\n if (maxGas > MAX_READ_BLOCK_GAS) {\n throw new Error(\n `\n The gas submitted ${maxGas.toString()} exceeds the max. allowed block gas of \n ${MAX_READ_BLOCK_GAS.toString()}\n `,\n );\n }\n\n // convert parameter to an array of numbers\n let argumentArray = [];\n if (parameter instanceof Uint8Array) {\n argumentArray = Array.from(parameter);\n } else {\n argumentArray = Array.from(parameter.serialize());\n }\n // setup the request body\n const data = {\n max_gas: Number(maxGas),\n target_address: contractAddress,\n target_function: functionName,\n parameter: argumentArray,\n caller_address: this._address,\n coins: Number(amount),\n fee: Number(fee),\n };\n const body = [\n {\n jsonrpc: '2.0',\n method: 'execute_read_only_call',\n params: [[data]],\n id: 0,\n },\n ];\n // returns operation ids\n let jsonRpcCallResult: Array<IContractReadOperationData> = [];\n try {\n let resp = await postRequest<Array<IContractReadOperationData>>(\n node,\n body,\n );\n if (resp.isError || resp.error) {\n throw resp.error.message;\n }\n jsonRpcCallResult = resp.result;\n } catch (ex) {\n throw new Error(\n `MassaStation account: error while interacting with smart contract: ${ex}`,\n );\n }\n if (jsonRpcCallResult.length <= 0) {\n throw new Error(\n `Read operation bad response. No results array in json rpc response. Inspect smart contract`,\n );\n }\n if (jsonRpcCallResult[0].result.Error) {\n throw new Error(jsonRpcCallResult[0].result.Error);\n }\n return {\n returnValue: new Uint8Array(jsonRpcCallResult[0].result[0].result.Ok),\n info: jsonRpcCallResult[0],\n };\n }\n}\n"]}
@@ -64,5 +64,33 @@ export declare class BearbyProvider implements IProvider {
64
64
  listenNetworkChanges(callback: (network: string) => void): {
65
65
  unsubscribe: () => void;
66
66
  };
67
+ /**
68
+ * Connects to the wallet.
69
+ *
70
+ * @remarks
71
+ * This method will attempt to establish a connection with the wallet.
72
+ * If the connection fails, it will log the error message.
73
+ */
74
+ connect(): Promise<boolean>;
75
+ /**
76
+ * Disconnects from the wallet.
77
+ *
78
+ * @remarks
79
+ * This method will attempt to disconnect from the wallet.
80
+ * If the disconnection fails, it will log the error message.
81
+ */
82
+ disconnect(): Promise<boolean>;
83
+ /**
84
+ * Checks if the wallet is connected.
85
+ *
86
+ * @returns a boolean indicating whether the wallet is connected.
87
+ */
88
+ connected(): boolean;
89
+ /**
90
+ * Checks if the wallet is enabled.
91
+ *
92
+ * @returns a boolean indicating whether the wallet is enabled.
93
+ */
94
+ enabled(): boolean;
67
95
  }
68
96
  //# sourceMappingURL=BearbyProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"BearbyProvider.d.ts","sourceRoot":"","sources":["../../../src/bearbyWallet/BearbyProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,SAAS,EACV,MAAM,aAAa,CAAC;AAGrB,qBAAa,cAAe,YAAW,SAAS;IAC9C,OAAO,CAAC,YAAY,CAAS;IAE7B;;;;;OAKG;gBACgB,YAAY,EAAE,MAAM;IAIhC,IAAI,IAAI,MAAM;IAIR,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAa/B,aAAa,CACxB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,sBAAsB,CAAC;IAIrB,aAAa,CACxB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC;IAIvB,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIjC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAM7B,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAIvE;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,oBAAoB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG;QAC/D,WAAW,EAAE,MAAM,IAAI,CAAC;KACzB;IAID;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,oBAAoB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG;QAChE,WAAW,EAAE,MAAM,IAAI,CAAC;KACzB;CAGF"}
1
+ {"version":3,"file":"BearbyProvider.d.ts","sourceRoot":"","sources":["../../../src/bearbyWallet/BearbyProvider.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACvD,OAAO,EACL,wBAAwB,EACxB,sBAAsB,EACtB,SAAS,EACV,MAAM,aAAa,CAAC;AAGrB,qBAAa,cAAe,YAAW,SAAS;IAC9C,OAAO,CAAC,YAAY,CAAS;IAE7B;;;;;OAKG;gBACgB,YAAY,EAAE,MAAM;IAIhC,IAAI,IAAI,MAAM;IAIR,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAa/B,aAAa,CACxB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,sBAAsB,CAAC;IAIrB,aAAa,CACxB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC;IAIvB,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAIjC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAM7B,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAIvE;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,oBAAoB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG;QAC/D,WAAW,EAAE,MAAM,IAAI,CAAC;KACzB;IAID;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,oBAAoB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAAG;QAChE,WAAW,EAAE,MAAM,IAAI,CAAC;KACzB;IAID;;;;;;OAMG;IACU,OAAO;IAIpB;;;;;;OAMG;IACU,UAAU;IAIvB;;;;OAIG;IACI,SAAS,IAAI,OAAO;IAI3B;;;;OAIG;IACI,OAAO,IAAI,OAAO;CAG1B"}
@@ -89,5 +89,41 @@ export class BearbyProvider {
89
89
  listenNetworkChanges(callback) {
90
90
  return web3.wallet.network.subscribe((network) => callback(network));
91
91
  }
92
+ /**
93
+ * Connects to the wallet.
94
+ *
95
+ * @remarks
96
+ * This method will attempt to establish a connection with the wallet.
97
+ * If the connection fails, it will log the error message.
98
+ */
99
+ async connect() {
100
+ return web3.wallet.connect();
101
+ }
102
+ /**
103
+ * Disconnects from the wallet.
104
+ *
105
+ * @remarks
106
+ * This method will attempt to disconnect from the wallet.
107
+ * If the disconnection fails, it will log the error message.
108
+ */
109
+ async disconnect() {
110
+ return web3.wallet.disconnect();
111
+ }
112
+ /**
113
+ * Checks if the wallet is connected.
114
+ *
115
+ * @returns a boolean indicating whether the wallet is connected.
116
+ */
117
+ connected() {
118
+ return web3.wallet.connected;
119
+ }
120
+ /**
121
+ * Checks if the wallet is enabled.
122
+ *
123
+ * @returns a boolean indicating whether the wallet is enabled.
124
+ */
125
+ enabled() {
126
+ return web3.wallet.enabled;
127
+ }
92
128
  }
93
129
  //# sourceMappingURL=BearbyProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BearbyProvider.js","sourceRoot":"","sources":["../../../src/bearbyWallet/BearbyProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAOzC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,OAAO,cAAc;IACjB,YAAY,CAAS;IAE7B;;;;;OAKG;IACH,YAAmB,YAAoB;QACrC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,QAAQ;QACnB,8BAA8B;QAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YAC1B,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;SAC7B;QAED,MAAM,OAAO,GAAG;YACd,OAAO,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM;YACzC,IAAI,EAAE,QAAQ;SACf,CAAC;QACF,OAAO,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACzD,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,SAAiB,EACjB,UAAkB;QAElB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,OAAe;QAEf,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAEM,KAAK,CAAC,YAAY;QACvB,OAAO,CAAC,mCAAmC,CAAC,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAE1C,OAAO,OAAO,CAAC,GAAG,CAAC;IACrB,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,IAAY;QAC1C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,oBAAoB,CAAC,QAAkC;QAG5D,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,oBAAoB,CAAC,QAAmC;QAG7D,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACvE,CAAC;CACF","sourcesContent":["import { web3 } from '@hicaru/bearby.js';\nimport { IAccount, IAccountDetails } from '../account';\nimport {\n IAccountDeletionResponse,\n IAccountImportResponse,\n IProvider,\n} from '../provider';\nimport { BearbyAccount } from './BearbyAccount';\n\nexport class BearbyProvider implements IProvider {\n private providerName: string;\n\n /**\n * Provider constructor\n *\n * @param providerName - The name of the provider.\n * @returns An instance of the Provider class.\n */\n public constructor(providerName: string) {\n this.providerName = providerName;\n }\n\n public name(): string {\n return this.providerName;\n }\n\n public async accounts(): Promise<IAccount[]> {\n // check if bearby is unlocked\n if (!web3.wallet.connected) {\n await web3.wallet.connect();\n }\n\n const account = {\n address: await web3.wallet.account.base58,\n name: 'BEARBY',\n };\n return [new BearbyAccount(account, this.providerName)];\n }\n\n public async importAccount(\n publicKey: string,\n privateKey: string,\n ): Promise<IAccountImportResponse> {\n throw new Error('Method not implemented.');\n }\n\n public async deleteAccount(\n address: string,\n ): Promise<IAccountDeletionResponse> {\n throw new Error('Method not implemented.');\n }\n\n public async getNodesUrls(): Promise<string[]> {\n return ['https://buildnet.massa.net/api/v2'];\n }\n\n public async getNetwork(): Promise<string> {\n const network = await web3.wallet.network;\n\n return network.net;\n }\n\n public async generateNewAccount(name: string): Promise<IAccountDetails> {\n throw new Error('Method not implemented.');\n }\n\n /**\n * Subscribes to account changes.\n *\n * @param callback - Callback to be called when the account changes.\n *\n * @returns A promise that resolves to a function that can be called to unsubscribe.\n *\n * @remarks\n * Don't forget to unsubscribe to avoid memory leaks.\n *\n * @example\n * ```typescript\n * // Subscribe\n * const observer = await provider.listenAccountChanges((base58) => {\n * console.log(base58);\n * });\n *\n * // Unsubscribe\n * observer.unsubscribe();\n * ```\n */\n public listenAccountChanges(callback: (base58: string) => void): {\n unsubscribe: () => void;\n } {\n return web3.wallet.account.subscribe((base58) => callback(base58));\n }\n\n /**\n * Subscribes to network changes.\n *\n * @param callback - Callback to be called when the network changes.\n *\n * @returns A promise that resolves to a function that can be called to unsubscribe.\n *\n * @remarks\n * Don't forget to unsubscribe to avoid memory leaks.\n *\n * @example\n * ```typescript\n * // Subscribe\n * const observer = await provider.listenNetworkChanges((network) => {\n * console.log(network);\n * });\n *\n * // Unsubscribe\n * observer.unsubscribe();\n * ```\n */\n public listenNetworkChanges(callback: (network: string) => void): {\n unsubscribe: () => void;\n } {\n return web3.wallet.network.subscribe((network) => callback(network));\n }\n}\n"]}
1
+ {"version":3,"file":"BearbyProvider.js","sourceRoot":"","sources":["../../../src/bearbyWallet/BearbyProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AAOzC,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,MAAM,OAAO,cAAc;IACjB,YAAY,CAAS;IAE7B;;;;;OAKG;IACH,YAAmB,YAAoB;QACrC,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IAEM,IAAI;QACT,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAEM,KAAK,CAAC,QAAQ;QACnB,8BAA8B;QAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;YAC1B,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;SAC7B;QAED,MAAM,OAAO,GAAG;YACd,OAAO,EAAE,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM;YACzC,IAAI,EAAE,QAAQ;SACf,CAAC;QACF,OAAO,CAAC,IAAI,aAAa,CAAC,OAAO,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC;IACzD,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,SAAiB,EACjB,UAAkB;QAElB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAEM,KAAK,CAAC,aAAa,CACxB,OAAe;QAEf,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAEM,KAAK,CAAC,YAAY;QACvB,OAAO,CAAC,mCAAmC,CAAC,CAAC;IAC/C,CAAC;IAEM,KAAK,CAAC,UAAU;QACrB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;QAE1C,OAAO,OAAO,CAAC,GAAG,CAAC;IACrB,CAAC;IAEM,KAAK,CAAC,kBAAkB,CAAC,IAAY;QAC1C,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,oBAAoB,CAAC,QAAkC;QAG5D,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IACrE,CAAC;IAED;;;;;;;;;;;;;;;;;;;;OAoBG;IACI,oBAAoB,CAAC,QAAmC;QAG7D,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IACvE,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,OAAO;QAClB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;IAC/B,CAAC;IAED;;;;;;OAMG;IACI,KAAK,CAAC,UAAU;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC;IAClC,CAAC;IAED;;;;OAIG;IACI,SAAS;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACI,OAAO;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;CACF","sourcesContent":["import { web3 } from '@hicaru/bearby.js';\nimport { IAccount, IAccountDetails } from '../account';\nimport {\n IAccountDeletionResponse,\n IAccountImportResponse,\n IProvider,\n} from '../provider';\nimport { BearbyAccount } from './BearbyAccount';\n\nexport class BearbyProvider implements IProvider {\n private providerName: string;\n\n /**\n * Provider constructor\n *\n * @param providerName - The name of the provider.\n * @returns An instance of the Provider class.\n */\n public constructor(providerName: string) {\n this.providerName = providerName;\n }\n\n public name(): string {\n return this.providerName;\n }\n\n public async accounts(): Promise<IAccount[]> {\n // check if bearby is unlocked\n if (!web3.wallet.connected) {\n await web3.wallet.connect();\n }\n\n const account = {\n address: await web3.wallet.account.base58,\n name: 'BEARBY',\n };\n return [new BearbyAccount(account, this.providerName)];\n }\n\n public async importAccount(\n publicKey: string,\n privateKey: string,\n ): Promise<IAccountImportResponse> {\n throw new Error('Method not implemented.');\n }\n\n public async deleteAccount(\n address: string,\n ): Promise<IAccountDeletionResponse> {\n throw new Error('Method not implemented.');\n }\n\n public async getNodesUrls(): Promise<string[]> {\n return ['https://buildnet.massa.net/api/v2'];\n }\n\n public async getNetwork(): Promise<string> {\n const network = await web3.wallet.network;\n\n return network.net;\n }\n\n public async generateNewAccount(name: string): Promise<IAccountDetails> {\n throw new Error('Method not implemented.');\n }\n\n /**\n * Subscribes to account changes.\n *\n * @param callback - Callback to be called when the account changes.\n *\n * @returns A promise that resolves to a function that can be called to unsubscribe.\n *\n * @remarks\n * Don't forget to unsubscribe to avoid memory leaks.\n *\n * @example\n * ```typescript\n * // Subscribe\n * const observer = await provider.listenAccountChanges((base58) => {\n * console.log(base58);\n * });\n *\n * // Unsubscribe\n * observer.unsubscribe();\n * ```\n */\n public listenAccountChanges(callback: (base58: string) => void): {\n unsubscribe: () => void;\n } {\n return web3.wallet.account.subscribe((base58) => callback(base58));\n }\n\n /**\n * Subscribes to network changes.\n *\n * @param callback - Callback to be called when the network changes.\n *\n * @returns A promise that resolves to a function that can be called to unsubscribe.\n *\n * @remarks\n * Don't forget to unsubscribe to avoid memory leaks.\n *\n * @example\n * ```typescript\n * // Subscribe\n * const observer = await provider.listenNetworkChanges((network) => {\n * console.log(network);\n * });\n *\n * // Unsubscribe\n * observer.unsubscribe();\n * ```\n */\n public listenNetworkChanges(callback: (network: string) => void): {\n unsubscribe: () => void;\n } {\n return web3.wallet.network.subscribe((network) => callback(network));\n }\n\n /**\n * Connects to the wallet.\n *\n * @remarks\n * This method will attempt to establish a connection with the wallet.\n * If the connection fails, it will log the error message.\n */\n public async connect() {\n return web3.wallet.connect();\n }\n\n /**\n * Disconnects from the wallet.\n *\n * @remarks\n * This method will attempt to disconnect from the wallet.\n * If the disconnection fails, it will log the error message.\n */\n public async disconnect() {\n return web3.wallet.disconnect();\n }\n\n /**\n * Checks if the wallet is connected.\n *\n * @returns a boolean indicating whether the wallet is connected.\n */\n public connected(): boolean {\n return web3.wallet.connected;\n }\n\n /**\n * Checks if the wallet is enabled.\n *\n * @returns a boolean indicating whether the wallet is enabled.\n */\n public enabled(): boolean {\n return web3.wallet.enabled;\n }\n}\n"]}
@@ -112,6 +112,10 @@ export declare class MassaStationProvider implements IProvider {
112
112
  listenNetworkChanges(callback: (network: string) => void): {
113
113
  unsubscribe: () => void;
114
114
  } | undefined;
115
+ connect(): Promise<boolean>;
116
+ disconnect(): Promise<boolean>;
117
+ connected(): boolean;
118
+ enabled(): boolean;
115
119
  }
116
120
  export {};
117
121
  //# sourceMappingURL=MassaStationProvider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MassaStationProvider.d.ts","sourceRoot":"","sources":["../../../src/massaStation/MassaStationProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,sBAAsB,EAGvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAY,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAS5D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAsB,MAAM,SAAS,CAAC;AAGzD;;GAEG;AACH,eAAO,MAAM,iBAAiB,2BAA2B,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,0BAA0B,QAAoE,CAAC;AAE5G;;GAEG;AACH,eAAO,MAAM,iCAAiC,QAA0C,CAAC;AAEzF;;GAEG;AACH,eAAO,MAAM,2BAA2B,iBAAiB,CAAC;AAO1D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,MAAM,EAAE,yBAAyB,CAAC;CACnC;AAED,aAAK,yBAAyB;IAC5B,EAAE,OAAO;IACT,SAAS,cAAc;CACxB;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,YAAW,SAAS;IAYjC,OAAO,CAAC,KAAK;IAXhC,OAAO,CAAC,YAAY,CAA+B;IAEnD,OAAO,CAAC,0BAA0B,CAAsB;IACxD,OAAO,CAAC,cAAc,CAAW;IAEjC;;;;;OAKG;gBACwB,KAAK,EAAE,UAAU;IAE5C;;;OAGG;IACI,IAAI,IAAI,MAAM;IAIrB;;;;;OAKG;IACU,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAiC5C;;;;;;;;OAQG;IACU,aAAa,CACxB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,sBAAsB,CAAC;IA2BlC;;;;;OAKG;IACU,aAAa,CACxB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC;IAgDpC;;;;;;OAMG;IACU,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAkB9C;;;;;;OAMG;IACU,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAyB1C;;;;OAIG;IACU,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAyBhE,oBAAoB,CACzB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,SAAS;IAOnC,oBAAoB,CACzB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,SAAS;CA4B3C"}
1
+ {"version":3,"file":"MassaStationProvider.d.ts","sourceRoot":"","sources":["../../../src/massaStation/MassaStationProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EACzB,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,sBAAsB,EAGvB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAY,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAS5D,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAsB,MAAM,SAAS,CAAC;AAGzD;;GAEG;AACH,eAAO,MAAM,iBAAiB,2BAA2B,CAAC;AAE1D;;GAEG;AACH,eAAO,MAAM,0BAA0B,QAAoE,CAAC;AAE5G;;GAEG;AACH,eAAO,MAAM,iCAAiC,QAA0C,CAAC;AAEzF;;GAEG;AACH,eAAO,MAAM,2BAA2B,iBAAiB,CAAC;AAO1D;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE;QACP,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,EAAE,MAAM,CAAC;QAClB,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,MAAM,EAAE,yBAAyB,CAAC;CACnC;AAED,aAAK,yBAAyB;IAC5B,EAAE,OAAO;IACT,SAAS,cAAc;CACxB;AAED;;;;GAIG;AACH,qBAAa,oBAAqB,YAAW,SAAS;IAYjC,OAAO,CAAC,KAAK;IAXhC,OAAO,CAAC,YAAY,CAA+B;IAEnD,OAAO,CAAC,0BAA0B,CAAsB;IACxD,OAAO,CAAC,cAAc,CAAW;IAEjC;;;;;OAKG;gBACwB,KAAK,EAAE,UAAU;IAE5C;;;OAGG;IACI,IAAI,IAAI,MAAM;IAIrB;;;;;OAKG;IACU,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAiC5C;;;;;;;;OAQG;IACU,aAAa,CACxB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,sBAAsB,CAAC;IA2BlC;;;;;OAKG;IACU,aAAa,CACxB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC;IAgDpC;;;;;;OAMG;IACU,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAkB9C;;;;;;OAMG;IACU,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAyB1C;;;;OAIG;IACU,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAyBhE,oBAAoB,CACzB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,SAAS;IAMnC,oBAAoB,CACzB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,SAAS;IA6B7B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAM3B,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAMpC,SAAS,IAAI,OAAO;IAMpB,OAAO,IAAI,OAAO;CAK1B"}
@@ -234,8 +234,7 @@ export class MassaStationProvider {
234
234
  }
235
235
  }
236
236
  listenAccountChanges(callback) {
237
- console.log('The listen Account Change functionality is not yet implemented for the current provider.');
238
- return undefined;
237
+ throw new Error('listenAccountChanges is not yet implemented for the current provider.');
239
238
  }
240
239
  listenNetworkChanges(callback) {
241
240
  this.massaStationEventsListener.on(MASSA_STATION_NETWORK_CHANGED, (evt) => callback(evt));
@@ -256,5 +255,17 @@ export class MassaStationProvider {
256
255
  },
257
256
  };
258
257
  }
258
+ async connect() {
259
+ throw new Error('connect functionality is not yet implemented for the current provider.');
260
+ }
261
+ async disconnect() {
262
+ throw new Error('disconnect functionality is not yet implemented for the current provider.');
263
+ }
264
+ connected() {
265
+ throw new Error('connected functionality is not yet implemented for the current provider.');
266
+ }
267
+ enabled() {
268
+ throw new Error('enabled functionality is not yet implemented for the current provider.');
269
+ }
259
270
  }
260
271
  //# sourceMappingURL=MassaStationProvider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MassaStationProvider.js","sourceRoot":"","sources":["../../../src/massaStation/MassaStationProvider.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n EAccountDeletionResponse,\n IAccountDeletionResponse,\n} from '../provider/AccountDeletion';\nimport {\n IAccountImportResponse,\n EAccountImportResponse,\n IAccountImportRequest,\n} from '../provider/AccountImport';\nimport { INetwork, IProvider } from '../provider/IProvider';\nimport {\n JsonRpcResponseData,\n deleteRequest,\n getRequest,\n postRequest,\n putRequest,\n} from './RequestHandler';\nimport { MassaStationAccount } from './MassaStationAccount';\nimport { IAccount } from '../account/IAccount';\nimport { IAccountDetails } from '../account';\nimport { PluginInfo, getNetworkInfoBody } from './types';\nimport EventEmitter from 'events';\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 * MassaStation's url for importing accounts\n */\nexport const MASSA_STATION_IMPORT_ACCOUNTS_URL = `${MASSA_STATION_ACCOUNTS_URL}/import/`;\n\n/**\n * MassaStation's wallet provider name\n */\nexport const MASSA_STATION_PROVIDER_NAME = 'MASSASTATION';\n\n/**\n * Events emitted by MassaStation\n */\nconst MASSA_STATION_NETWORK_CHANGED = 'MASSA_STATION_NETWORK_CHANGED';\n\n/**\n * This interface represents the payload returned by making a call to MassaStation's accounts url.\n */\nexport interface IMassaStationWallet {\n address: string;\n nickname: string;\n keyPair: {\n nonce: string;\n privateKey: string;\n publicKey: string;\n salt: string;\n };\n status: MassaStationAccountStatus;\n}\n\nenum MassaStationAccountStatus {\n OK = 'ok',\n CORRUPTED = 'corrupted',\n}\n\n/**\n * This class provides an implementation for communicating with the MassaStation wallet provider.\n * @remarks\n * This class is used as a proxy to the MassaStation server for exchanging message over https calls.\n */\nexport class MassaStationProvider implements IProvider {\n private providerName = MASSA_STATION_PROVIDER_NAME;\n\n private massaStationEventsListener = new EventEmitter();\n private currentNetwork: INetwork;\n\n /**\n * Provider constructor\n *\n * @param providerName - The name of the provider.\n * @returns An instance of the Provider class.\n */\n public constructor(private infos: PluginInfo) {}\n\n /**\n * This method returns the name of the provider.\n * @returns The name of the provider.\n */\n public name(): string {\n return this.providerName;\n }\n\n /**\n * This method sends a message to the MassaStation server to get the list of accounts for the provider.\n * It returns a Promise that resolves to an array of Account instances.\n *\n * @returns A promise that resolves to an array of Account instances.\n */\n public async accounts(): Promise<IAccount[]> {\n let massaStationAccountsResponse: JsonRpcResponseData<\n Array<IMassaStationWallet>\n > = null;\n try {\n massaStationAccountsResponse = await getRequest<\n Array<IMassaStationWallet>\n >(MASSA_STATION_ACCOUNTS_URL);\n } catch (ex) {\n console.error(`MassaStation accounts retrieval error`);\n throw ex;\n }\n if (\n massaStationAccountsResponse.isError ||\n massaStationAccountsResponse.error\n ) {\n throw massaStationAccountsResponse.error.message;\n }\n return massaStationAccountsResponse.result\n .filter((massaStationAccount) => {\n return massaStationAccount.status === MassaStationAccountStatus.OK;\n })\n .map((massaStationAccount) => {\n return new MassaStationAccount(\n {\n address: massaStationAccount.address,\n name: massaStationAccount.nickname,\n },\n this.providerName,\n );\n });\n }\n\n /**\n * This method makes an http call to the MassaStation server to import an account with\n * the given publicKey and privateKey.\n *\n * @param publicKey - The public key of the account.\n * @param privateKey - The private key of the account.\n *\n * @returns a Promise that resolves to an instance of IAccountImportResponse.\n */\n public async importAccount(\n publicKey: string,\n privateKey: string,\n ): Promise<IAccountImportResponse> {\n const accountImportRequest: IAccountImportRequest = {\n publicKey,\n privateKey,\n };\n let massaStationAccountsResponse: JsonRpcResponseData<unknown> = null;\n try {\n massaStationAccountsResponse = await putRequest<unknown>(\n MASSA_STATION_ACCOUNTS_URL,\n accountImportRequest,\n );\n } catch (ex) {\n console.log(`MassaStation accounts retrieval error: ${ex}`);\n throw ex;\n }\n if (\n massaStationAccountsResponse.isError ||\n massaStationAccountsResponse.error\n ) {\n throw massaStationAccountsResponse.error.message;\n }\n return {\n response: EAccountImportResponse.OK,\n message: 'Account imported successfully',\n } as IAccountImportResponse;\n }\n\n /**\n * This method sends an http call to the MassaStation server to delete the account associated with the given address.\n *\n * @param address - The address of the account.\n * @returns a Promise that resolves to an instance of IAccountDeletionResponse.\n */\n public async deleteAccount(\n address: string,\n ): Promise<IAccountDeletionResponse> {\n // get all accounts\n let allAccounts: JsonRpcResponseData<Array<IMassaStationWallet>> = null;\n try {\n allAccounts = await getRequest<Array<IMassaStationWallet>>(\n MASSA_STATION_ACCOUNTS_URL,\n );\n } catch (ex) {\n console.log(`MassaStation accounts retrieval error: ${ex}`);\n throw ex;\n }\n if (allAccounts.isError || allAccounts.error) {\n throw allAccounts.error.message;\n }\n // find the account with the desired address\n const accountToDelete = allAccounts.result.find(\n (account) => account.address.toLowerCase() === address.toLowerCase(),\n );\n\n // delete the account in question\n let massaStationAccountsResponse: JsonRpcResponseData<unknown> = null;\n try {\n massaStationAccountsResponse = await deleteRequest<unknown>(\n `${MASSA_STATION_ACCOUNTS_URL}/${accountToDelete.nickname}`,\n );\n } catch (ex) {\n console.log(`MassaStation accounts deletion error`, ex);\n return {\n response: EAccountDeletionResponse.ERROR,\n } as IAccountDeletionResponse;\n }\n if (\n massaStationAccountsResponse.isError ||\n massaStationAccountsResponse.error\n ) {\n console.log(\n `MassaStation accounts deletion error`,\n massaStationAccountsResponse.error.message,\n );\n return {\n response: EAccountDeletionResponse.ERROR,\n } as IAccountDeletionResponse;\n }\n return {\n response: EAccountDeletionResponse.OK,\n } as IAccountDeletionResponse;\n }\n\n /**\n * This method sends an http call to the MassaStation server to obtain node urls.\n *\n * @throws an error if the call fails.\n *\n * @returns a Promise that resolves to a list of node urls.\n */\n public async getNodesUrls(): Promise<string[]> {\n let nodesResponse: JsonRpcResponseData<unknown> = null;\n try {\n nodesResponse = await getRequest<unknown>(\n `${MASSA_STATION_URL}massa/node`,\n );\n if (nodesResponse.isError || nodesResponse.error) {\n throw nodesResponse.error.message;\n }\n // transform nodesResponse.result to a json and then get the \"url\" property\n const nodes = nodesResponse.result as { url: string };\n return Array(nodes.url);\n } catch (ex) {\n console.error(`MassaStation nodes retrieval error`, ex);\n throw ex;\n }\n }\n\n /**\n * Returns the name of the network MassaStation is connected to.\n *\n * @throws an error if the call fails.\n *\n * @returns a Promise that resolves to a network.\n */\n public async getNetwork(): Promise<string> {\n try {\n const nodesResponse = await getRequest<getNetworkInfoBody>(\n `${MASSA_STATION_URL}massa/node`,\n );\n if (nodesResponse.isError || nodesResponse.error) {\n throw nodesResponse.error.message;\n }\n\n if (this.currentNetwork?.name !== nodesResponse.result.network) {\n this.currentNetwork = {\n name: nodesResponse.result.network,\n url: nodesResponse.result.url,\n chainId: BigInt(nodesResponse.result.chainId),\n };\n }\n const nodes = nodesResponse.result as { network: string };\n\n return nodes.network;\n } catch (ex) {\n console.error(`MassaStation nodes retrieval error`, ex);\n throw ex;\n }\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<IAccountDetails> {\n let massaStationAccountsResponse: JsonRpcResponseData<IMassaStationWallet> =\n null;\n console.log(MASSA_STATION_ACCOUNTS_URL + '/' + name);\n try {\n massaStationAccountsResponse = await postRequest<IMassaStationWallet>(\n MASSA_STATION_ACCOUNTS_URL + '/' + name,\n {},\n );\n if (\n massaStationAccountsResponse.isError ||\n massaStationAccountsResponse.error\n ) {\n throw massaStationAccountsResponse.error.message;\n }\n return {\n address: massaStationAccountsResponse.result.address,\n name: massaStationAccountsResponse.result.nickname,\n } as IAccountDetails;\n } catch (ex) {\n console.error(`Error while generating account: ${ex}`);\n throw ex;\n }\n }\n\n public listenAccountChanges(\n callback: (address: string) => void,\n ): { unsubscribe: () => void } | undefined {\n console.log(\n 'The listen Account Change functionality is not yet implemented for the current provider.',\n );\n return undefined;\n }\n\n public listenNetworkChanges(\n callback: (network: string) => void,\n ): { unsubscribe: () => void } | undefined {\n this.massaStationEventsListener.on(MASSA_STATION_NETWORK_CHANGED, (evt) =>\n callback(evt),\n );\n\n // check periodically if network changed\n const intervalId = setInterval(async () => {\n const currentNetwork = this.currentNetwork?.name;\n const network = await this.getNetwork();\n if (currentNetwork !== network) {\n this.massaStationEventsListener.emit(\n MASSA_STATION_NETWORK_CHANGED,\n network,\n );\n }\n }, 500);\n\n return {\n unsubscribe: () => {\n clearInterval(intervalId);\n this.massaStationEventsListener.removeListener(\n MASSA_STATION_NETWORK_CHANGED,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n () => {},\n );\n },\n };\n }\n}\n"]}
1
+ {"version":3,"file":"MassaStationProvider.js","sourceRoot":"","sources":["../../../src/massaStation/MassaStationProvider.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n EAccountDeletionResponse,\n IAccountDeletionResponse,\n} from '../provider/AccountDeletion';\nimport {\n IAccountImportResponse,\n EAccountImportResponse,\n IAccountImportRequest,\n} from '../provider/AccountImport';\nimport { INetwork, IProvider } from '../provider/IProvider';\nimport {\n JsonRpcResponseData,\n deleteRequest,\n getRequest,\n postRequest,\n putRequest,\n} from './RequestHandler';\nimport { MassaStationAccount } from './MassaStationAccount';\nimport { IAccount } from '../account/IAccount';\nimport { IAccountDetails } from '../account';\nimport { PluginInfo, getNetworkInfoBody } from './types';\nimport EventEmitter from 'events';\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 * MassaStation's url for importing accounts\n */\nexport const MASSA_STATION_IMPORT_ACCOUNTS_URL = `${MASSA_STATION_ACCOUNTS_URL}/import/`;\n\n/**\n * MassaStation's wallet provider name\n */\nexport const MASSA_STATION_PROVIDER_NAME = 'MASSASTATION';\n\n/**\n * Events emitted by MassaStation\n */\nconst MASSA_STATION_NETWORK_CHANGED = 'MASSA_STATION_NETWORK_CHANGED';\n\n/**\n * This interface represents the payload returned by making a call to MassaStation's accounts url.\n */\nexport interface IMassaStationWallet {\n address: string;\n nickname: string;\n keyPair: {\n nonce: string;\n privateKey: string;\n publicKey: string;\n salt: string;\n };\n status: MassaStationAccountStatus;\n}\n\nenum MassaStationAccountStatus {\n OK = 'ok',\n CORRUPTED = 'corrupted',\n}\n\n/**\n * This class provides an implementation for communicating with the MassaStation wallet provider.\n * @remarks\n * This class is used as a proxy to the MassaStation server for exchanging message over https calls.\n */\nexport class MassaStationProvider implements IProvider {\n private providerName = MASSA_STATION_PROVIDER_NAME;\n\n private massaStationEventsListener = new EventEmitter();\n private currentNetwork: INetwork;\n\n /**\n * Provider constructor\n *\n * @param providerName - The name of the provider.\n * @returns An instance of the Provider class.\n */\n public constructor(private infos: PluginInfo) {}\n\n /**\n * This method returns the name of the provider.\n * @returns The name of the provider.\n */\n public name(): string {\n return this.providerName;\n }\n\n /**\n * This method sends a message to the MassaStation server to get the list of accounts for the provider.\n * It returns a Promise that resolves to an array of Account instances.\n *\n * @returns A promise that resolves to an array of Account instances.\n */\n public async accounts(): Promise<IAccount[]> {\n let massaStationAccountsResponse: JsonRpcResponseData<\n Array<IMassaStationWallet>\n > = null;\n try {\n massaStationAccountsResponse = await getRequest<\n Array<IMassaStationWallet>\n >(MASSA_STATION_ACCOUNTS_URL);\n } catch (ex) {\n console.error(`MassaStation accounts retrieval error`);\n throw ex;\n }\n if (\n massaStationAccountsResponse.isError ||\n massaStationAccountsResponse.error\n ) {\n throw massaStationAccountsResponse.error.message;\n }\n return massaStationAccountsResponse.result\n .filter((massaStationAccount) => {\n return massaStationAccount.status === MassaStationAccountStatus.OK;\n })\n .map((massaStationAccount) => {\n return new MassaStationAccount(\n {\n address: massaStationAccount.address,\n name: massaStationAccount.nickname,\n },\n this.providerName,\n );\n });\n }\n\n /**\n * This method makes an http call to the MassaStation server to import an account with\n * the given publicKey and privateKey.\n *\n * @param publicKey - The public key of the account.\n * @param privateKey - The private key of the account.\n *\n * @returns a Promise that resolves to an instance of IAccountImportResponse.\n */\n public async importAccount(\n publicKey: string,\n privateKey: string,\n ): Promise<IAccountImportResponse> {\n const accountImportRequest: IAccountImportRequest = {\n publicKey,\n privateKey,\n };\n let massaStationAccountsResponse: JsonRpcResponseData<unknown> = null;\n try {\n massaStationAccountsResponse = await putRequest<unknown>(\n MASSA_STATION_ACCOUNTS_URL,\n accountImportRequest,\n );\n } catch (ex) {\n console.log(`MassaStation accounts retrieval error: ${ex}`);\n throw ex;\n }\n if (\n massaStationAccountsResponse.isError ||\n massaStationAccountsResponse.error\n ) {\n throw massaStationAccountsResponse.error.message;\n }\n return {\n response: EAccountImportResponse.OK,\n message: 'Account imported successfully',\n } as IAccountImportResponse;\n }\n\n /**\n * This method sends an http call to the MassaStation server to delete the account associated with the given address.\n *\n * @param address - The address of the account.\n * @returns a Promise that resolves to an instance of IAccountDeletionResponse.\n */\n public async deleteAccount(\n address: string,\n ): Promise<IAccountDeletionResponse> {\n // get all accounts\n let allAccounts: JsonRpcResponseData<Array<IMassaStationWallet>> = null;\n try {\n allAccounts = await getRequest<Array<IMassaStationWallet>>(\n MASSA_STATION_ACCOUNTS_URL,\n );\n } catch (ex) {\n console.log(`MassaStation accounts retrieval error: ${ex}`);\n throw ex;\n }\n if (allAccounts.isError || allAccounts.error) {\n throw allAccounts.error.message;\n }\n // find the account with the desired address\n const accountToDelete = allAccounts.result.find(\n (account) => account.address.toLowerCase() === address.toLowerCase(),\n );\n\n // delete the account in question\n let massaStationAccountsResponse: JsonRpcResponseData<unknown> = null;\n try {\n massaStationAccountsResponse = await deleteRequest<unknown>(\n `${MASSA_STATION_ACCOUNTS_URL}/${accountToDelete.nickname}`,\n );\n } catch (ex) {\n console.log(`MassaStation accounts deletion error`, ex);\n return {\n response: EAccountDeletionResponse.ERROR,\n } as IAccountDeletionResponse;\n }\n if (\n massaStationAccountsResponse.isError ||\n massaStationAccountsResponse.error\n ) {\n console.log(\n `MassaStation accounts deletion error`,\n massaStationAccountsResponse.error.message,\n );\n return {\n response: EAccountDeletionResponse.ERROR,\n } as IAccountDeletionResponse;\n }\n return {\n response: EAccountDeletionResponse.OK,\n } as IAccountDeletionResponse;\n }\n\n /**\n * This method sends an http call to the MassaStation server to obtain node urls.\n *\n * @throws an error if the call fails.\n *\n * @returns a Promise that resolves to a list of node urls.\n */\n public async getNodesUrls(): Promise<string[]> {\n let nodesResponse: JsonRpcResponseData<unknown> = null;\n try {\n nodesResponse = await getRequest<unknown>(\n `${MASSA_STATION_URL}massa/node`,\n );\n if (nodesResponse.isError || nodesResponse.error) {\n throw nodesResponse.error.message;\n }\n // transform nodesResponse.result to a json and then get the \"url\" property\n const nodes = nodesResponse.result as { url: string };\n return Array(nodes.url);\n } catch (ex) {\n console.error(`MassaStation nodes retrieval error`, ex);\n throw ex;\n }\n }\n\n /**\n * Returns the name of the network MassaStation is connected to.\n *\n * @throws an error if the call fails.\n *\n * @returns a Promise that resolves to a network.\n */\n public async getNetwork(): Promise<string> {\n try {\n const nodesResponse = await getRequest<getNetworkInfoBody>(\n `${MASSA_STATION_URL}massa/node`,\n );\n if (nodesResponse.isError || nodesResponse.error) {\n throw nodesResponse.error.message;\n }\n\n if (this.currentNetwork?.name !== nodesResponse.result.network) {\n this.currentNetwork = {\n name: nodesResponse.result.network,\n url: nodesResponse.result.url,\n chainId: BigInt(nodesResponse.result.chainId),\n };\n }\n const nodes = nodesResponse.result as { network: string };\n\n return nodes.network;\n } catch (ex) {\n console.error(`MassaStation nodes retrieval error`, ex);\n throw ex;\n }\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<IAccountDetails> {\n let massaStationAccountsResponse: JsonRpcResponseData<IMassaStationWallet> =\n null;\n console.log(MASSA_STATION_ACCOUNTS_URL + '/' + name);\n try {\n massaStationAccountsResponse = await postRequest<IMassaStationWallet>(\n MASSA_STATION_ACCOUNTS_URL + '/' + name,\n {},\n );\n if (\n massaStationAccountsResponse.isError ||\n massaStationAccountsResponse.error\n ) {\n throw massaStationAccountsResponse.error.message;\n }\n return {\n address: massaStationAccountsResponse.result.address,\n name: massaStationAccountsResponse.result.nickname,\n } as IAccountDetails;\n } catch (ex) {\n console.error(`Error while generating account: ${ex}`);\n throw ex;\n }\n }\n\n public listenAccountChanges(\n callback: (address: string) => void,\n ): { 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: string) => void,\n ): { unsubscribe: () => void } | undefined {\n this.massaStationEventsListener.on(MASSA_STATION_NETWORK_CHANGED, (evt) =>\n callback(evt),\n );\n\n // check periodically if network changed\n const intervalId = setInterval(async () => {\n const currentNetwork = this.currentNetwork?.name;\n const network = await this.getNetwork();\n if (currentNetwork !== network) {\n this.massaStationEventsListener.emit(\n MASSA_STATION_NETWORK_CHANGED,\n network,\n );\n }\n }, 500);\n\n return {\n unsubscribe: () => {\n clearInterval(intervalId);\n this.massaStationEventsListener.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"]}
@@ -19,6 +19,10 @@ export interface IProvider {
19
19
  getNodesUrls(): Promise<string[]>;
20
20
  getNetwork(): Promise<string>;
21
21
  generateNewAccount(name: string): Promise<IAccountDetails>;
22
+ connect(): Promise<boolean>;
23
+ disconnect(): Promise<boolean>;
24
+ connected(): boolean;
25
+ enabled(): boolean;
22
26
  listenAccountChanges(callback: (base58: string) => void): {
23
27
  unsubscribe: () => void;
24
28
  } | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"IProvider.d.ts","sourceRoot":"","sources":["../../../src/provider/IProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE7D,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,IAAI,MAAM,CAAC;IACf,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChC,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACnC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAClE,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAClC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC3D,oBAAoB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GACnD;QACE,WAAW,EAAE,MAAM,IAAI,CAAC;KACzB,GACD,SAAS,CAAC;IAEd,oBAAoB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACpD;QACE,WAAW,EAAE,MAAM,IAAI,CAAC;KACzB,GACD,SAAS,CAAC;CACf"}
1
+ {"version":3,"file":"IProvider.d.ts","sourceRoot":"","sources":["../../../src/provider/IProvider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,EAAE,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAE7C,MAAM,MAAM,YAAY,GAAG,SAAS,GAAG,UAAU,GAAG,QAAQ,CAAC;AAE7D,MAAM,MAAM,QAAQ,GAAG;IACrB,IAAI,EAAE,YAAY,CAAC;IACnB,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,SAAS;IACxB,IAAI,IAAI,MAAM,CAAC;IACf,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;IAChC,aAAa,CACX,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,sBAAsB,CAAC,CAAC;IACnC,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;IAClE,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;IAClC,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC9B,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC;IAC3D,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC5B,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC,CAAC;IAC/B,SAAS,IAAI,OAAO,CAAC;IACrB,OAAO,IAAI,OAAO,CAAC;IACnB,oBAAoB,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GACnD;QACE,WAAW,EAAE,MAAM,IAAI,CAAC;KACzB,GACD,SAAS,CAAC;IAEd,oBAAoB,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GACpD;QACE,WAAW,EAAE,MAAM,IAAI,CAAC;KACzB,GACD,SAAS,CAAC;CACf"}
@@ -1 +1 @@
1
- {"version":3,"file":"IProvider.js","sourceRoot":"","sources":["../../../src/provider/IProvider.ts"],"names":[],"mappings":"","sourcesContent":["import { IAccountDeletionResponse } from './AccountDeletion';\nimport { IAccountImportResponse } from './AccountImport';\nimport { IAccount } from '../account/IAccount';\nimport { IAccountDetails } from '../account';\n\nexport type INetworkName = 'mainnet' | 'buildnet' | 'labnet';\n\nexport type INetwork = {\n name: INetworkName;\n url: string;\n chainId: bigint;\n};\n\n/**\n * This interface represents a general provider definition with its methods\n */\nexport interface IProvider {\n name(): string;\n accounts(): Promise<IAccount[]>;\n importAccount(\n publicKey: string,\n privateKey: string,\n ): Promise<IAccountImportResponse>;\n deleteAccount(address: string): Promise<IAccountDeletionResponse>;\n getNodesUrls(): Promise<string[]>;\n getNetwork(): Promise<string>;\n generateNewAccount(name: string): Promise<IAccountDetails>;\n listenAccountChanges(callback: (base58: string) => void):\n | {\n unsubscribe: () => void;\n }\n | undefined;\n\n listenNetworkChanges(callback: (network: string) => void):\n | {\n unsubscribe: () => void;\n }\n | undefined;\n}\n"]}
1
+ {"version":3,"file":"IProvider.js","sourceRoot":"","sources":["../../../src/provider/IProvider.ts"],"names":[],"mappings":"","sourcesContent":["import { IAccountDeletionResponse } from './AccountDeletion';\nimport { IAccountImportResponse } from './AccountImport';\nimport { IAccount } from '../account/IAccount';\nimport { IAccountDetails } from '../account';\n\nexport type INetworkName = 'mainnet' | 'buildnet' | 'labnet';\n\nexport type INetwork = {\n name: INetworkName;\n url: string;\n chainId: bigint;\n};\n\n/**\n * This interface represents a general provider definition with its methods\n */\nexport interface IProvider {\n name(): string;\n accounts(): Promise<IAccount[]>;\n importAccount(\n publicKey: string,\n privateKey: string,\n ): Promise<IAccountImportResponse>;\n deleteAccount(address: string): Promise<IAccountDeletionResponse>;\n getNodesUrls(): Promise<string[]>;\n getNetwork(): Promise<string>;\n generateNewAccount(name: string): Promise<IAccountDetails>;\n connect(): Promise<boolean>;\n disconnect(): Promise<boolean>;\n connected(): boolean;\n enabled(): boolean;\n listenAccountChanges(callback: (base58: string) => void):\n | {\n unsubscribe: () => void;\n }\n | undefined;\n\n listenNetworkChanges(callback: (network: string) => void):\n | {\n unsubscribe: () => void;\n }\n | undefined;\n}\n"]}
@@ -76,5 +76,9 @@ export declare class Provider implements IProvider {
76
76
  listenNetworkChanges(callback: (network: string) => void): {
77
77
  unsubscribe: () => void;
78
78
  } | undefined;
79
+ connect(): Promise<boolean>;
80
+ disconnect(): Promise<boolean>;
81
+ connected(): boolean;
82
+ enabled(): boolean;
79
83
  }
80
84
  //# sourceMappingURL=Provider.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../src/provider/Provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAyB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAIhF,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAG/C;;;;GAIG;AACH,qBAAa,QAAS,YAAW,SAAS;IACxC,OAAO,CAAC,YAAY,CAAS;IAE7B;;;;;OAKG;gBACgB,YAAY,EAAE,MAAM;IAIvC;;;OAGG;IACI,IAAI,IAAI,MAAM;IAIrB;;;;;OAKG;IACU,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IA0B5C;;;;;;;;;;;OAWG;IACU,aAAa,CACxB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,sBAAsB,CAAC;IAkBlC;;;;;OAKG;IACU,aAAa,CACxB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC;IAepC;;;;;;OAMG;IACU,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAc9C;;;;OAIG;IACU,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAmB1C;;;;;OAKG;IACU,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAejE,oBAAoB,CACzB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,SAAS;IAOnC,oBAAoB,CACzB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,SAAS;CAM3C"}
1
+ {"version":3,"file":"Provider.d.ts","sourceRoot":"","sources":["../../../src/provider/Provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,wBAAwB,EACzB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAyB,sBAAsB,EAAE,MAAM,iBAAiB,CAAC;AAIhF,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAE,MAAM,qBAAqB,CAAC;AAG/C;;;;GAIG;AACH,qBAAa,QAAS,YAAW,SAAS;IACxC,OAAO,CAAC,YAAY,CAAS;IAE7B;;;;;OAKG;gBACgB,YAAY,EAAE,MAAM;IAIvC;;;OAGG;IACI,IAAI,IAAI,MAAM;IAIrB;;;;;OAKG;IACU,QAAQ,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IA0B5C;;;;;;;;;;;OAWG;IACU,aAAa,CACxB,SAAS,EAAE,MAAM,EACjB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,sBAAsB,CAAC;IAkBlC;;;;;OAKG;IACU,aAAa,CACxB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,wBAAwB,CAAC;IAepC;;;;;;OAMG;IACU,YAAY,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAc9C;;;;OAIG;IACU,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAmB1C;;;;;OAKG;IACU,kBAAkB,CAAC,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAejE,oBAAoB,CACzB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,SAAS;IAMnC,oBAAoB,CACzB,QAAQ,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,IAAI,GAClC;QAAE,WAAW,EAAE,MAAM,IAAI,CAAA;KAAE,GAAG,SAAS;IAM7B,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAM3B,UAAU,IAAI,OAAO,CAAC,OAAO,CAAC;IAMpC,SAAS,IAAI,OAAO;IAMpB,OAAO,IAAI,OAAO;CAK1B"}
@@ -137,12 +137,22 @@ export class Provider {
137
137
  });
138
138
  }
139
139
  listenAccountChanges(callback) {
140
- console.error('The listen Account Change functionality is not yet implemented for the current provider.');
141
- return undefined;
140
+ throw new Error('listenAccountChanges is not yet implemented for the current provider.');
142
141
  }
143
142
  listenNetworkChanges(callback) {
144
- console.error('The listen Network Change functionality is not yet implemented for the current provider.');
145
- return undefined;
143
+ throw new Error('listenNetworkChanges is not yet implemented for the current provider.');
144
+ }
145
+ async connect() {
146
+ throw new Error('connect functionality is not yet implemented for the current provider.');
147
+ }
148
+ async disconnect() {
149
+ throw new Error('disconnect functionality is not yet implemented for the current provider.');
150
+ }
151
+ connected() {
152
+ throw new Error('connected functionality is not yet implemented for the current provider.');
153
+ }
154
+ enabled() {
155
+ throw new Error('enabled functionality is not yet implemented for the current provider.');
146
156
  }
147
157
  }
148
158
  //# sourceMappingURL=Provider.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../src/provider/Provider.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n IAccountDeletionRequest,\n IAccountDeletionResponse,\n} from './AccountDeletion';\nimport { IAccountImportRequest, IAccountImportResponse } from './AccountImport';\nimport { connector } from '../connector/Connector';\nimport { Account } from '../account/Account';\nimport { AvailableCommands } from '..';\nimport { IAccountDetails } from '../account/IAccountDetails';\nimport { IProvider } from './IProvider';\nimport { IAccount } from '../account/IAccount';\nimport { IAccountGenerationRequest } from './AccoutGeneration';\n\n/**\n * The Provider class provides a simple and intuitive interface for interacting with a specific\n * wallet service.\n *\n */\nexport class Provider implements IProvider {\n private providerName: string;\n\n /**\n * Provider constructor\n *\n * @param providerName - The name of the provider.\n * @returns An instance of the Provider class.\n */\n public constructor(providerName: string) {\n this.providerName = providerName;\n }\n\n /**\n * This method returns the name of the provider.\n * @returns The name of the provider.\n */\n public name(): string {\n return this.providerName;\n }\n\n /**\n * This method sends a message to the content script to get the list of accounts for the provider.\n * It returns a Promise that resolves to an array of Account instances.\n *\n * @returns A promise that resolves to an array of Account instances.\n */\n public async accounts(): Promise<IAccount[]> {\n const providersPromise = new Promise<IAccountDetails[]>(\n (resolve, reject) => {\n connector.sendMessageToContentScript(\n this.providerName,\n AvailableCommands.ProviderListAccounts,\n {},\n (result, err) => {\n if (err) return reject(err);\n return resolve(result as IAccountDetails[]);\n },\n );\n },\n );\n\n const providerAccounts: IAccountDetails[] = await providersPromise;\n\n let accounts: Account[] = [];\n for (const providerAccount of providerAccounts) {\n const accInstance = new Account(providerAccount, this.providerName);\n accounts.push(accInstance);\n }\n\n return accounts;\n }\n\n /**\n * This method sends a message to the content script to import an account with the given publicKey and privateKey.\n *\n * @remarks\n * - The IAccountImportResponse object contains the address of the imported account.\n * - The address is generated from the public key.\n *\n * @param publicKey - The public key of the account.\n * @param privateKey - The private key of the account.\n * @returns a Promise that resolves to an instance of IAccountImportResponse.\n *\n */\n public async importAccount(\n publicKey: string,\n privateKey: string,\n ): Promise<IAccountImportResponse> {\n const accountImportRequest = {\n publicKey,\n privateKey,\n } as IAccountImportRequest;\n return new Promise<IAccountImportResponse>((resolve, reject) => {\n connector.sendMessageToContentScript(\n this.providerName,\n AvailableCommands.ProviderImportAccount,\n accountImportRequest,\n (result, err) => {\n if (err) return reject(err);\n return resolve(result as IAccountImportResponse);\n },\n );\n });\n }\n\n /**\n * This method sends a message to the content script to delete the account associated with the given address.\n *\n * @param address - The address of the account.\n * @returns a Promise that resolves to an instance of IAccountDeletionResponse.\n */\n public async deleteAccount(\n address: string,\n ): Promise<IAccountDeletionResponse> {\n const accountDeletionRequest = { address } as IAccountDeletionRequest;\n return new Promise<IAccountDeletionResponse>((resolve, reject) => {\n connector.sendMessageToContentScript(\n this.providerName,\n AvailableCommands.ProviderDeleteAccount,\n accountDeletionRequest,\n (result, err) => {\n if (err) return reject(err);\n return resolve(result as IAccountDeletionResponse);\n },\n );\n });\n }\n\n /**\n * This method sends a message to the content script to get the list of nodes urls\n * used to connect the front end to the Massa network.\n *\n * @returns a Promise that resolves to an array of nodes urls (string).\n *\n */\n public async getNodesUrls(): Promise<string[]> {\n return new Promise<string[]>((resolve, reject) => {\n connector.sendMessageToContentScript(\n this.providerName,\n AvailableCommands.ProviderGetNodesUrls,\n {},\n (result, err) => {\n if (err) return reject(err);\n return resolve(result as string[]);\n },\n );\n });\n }\n\n /**\n * Returns the name of the network the provider is connected to.\n *\n * @returns a Promise that resolves to the network name (string).\n */\n public async getNetwork(): Promise<string> {\n return new Promise<string>((resolve, reject) => {\n connector.sendMessageToContentScript(\n this.providerName,\n AvailableCommands.ProviderGetNetwork,\n {},\n (result, err) => {\n if (err) return reject(err);\n else if (typeof result !== 'string') {\n return reject(\n new Error(`Expected a string but got ${typeof result} instead`),\n );\n }\n return resolve(result);\n },\n );\n });\n }\n\n /**\n * This method generates a new account by a given name and adds it to the wallet.\n *\n * @param name - The account name\n * @returns a Promise that resolves to an instance of IAccountDetails.\n */\n public async generateNewAccount(name?: string): Promise<IAccountDetails> {\n const accountGenerationRequest = { name } as IAccountGenerationRequest;\n return new Promise<IAccountDetails>((resolve, reject) => {\n connector.sendMessageToContentScript(\n this.providerName,\n AvailableCommands.ProviderGenerateNewAccount,\n accountGenerationRequest,\n (result, err) => {\n if (err) return reject(err);\n return resolve(result as IAccountDetails);\n },\n );\n });\n }\n\n public listenAccountChanges(\n callback: (address: string) => void,\n ): { unsubscribe: () => void } | undefined {\n console.error(\n 'The listen Account Change functionality is not yet implemented for the current provider.',\n );\n return undefined;\n }\n\n public listenNetworkChanges(\n callback: (network: string) => void,\n ): { unsubscribe: () => void } | undefined {\n console.error(\n 'The listen Network Change functionality is not yet implemented for the current provider.',\n );\n return undefined;\n }\n}\n"]}
1
+ {"version":3,"file":"Provider.js","sourceRoot":"","sources":["../../../src/provider/Provider.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n IAccountDeletionRequest,\n IAccountDeletionResponse,\n} from './AccountDeletion';\nimport { IAccountImportRequest, IAccountImportResponse } from './AccountImport';\nimport { connector } from '../connector/Connector';\nimport { Account } from '../account/Account';\nimport { AvailableCommands } from '..';\nimport { IAccountDetails } from '../account/IAccountDetails';\nimport { IProvider } from './IProvider';\nimport { IAccount } from '../account/IAccount';\nimport { IAccountGenerationRequest } from './AccoutGeneration';\n\n/**\n * The Provider class provides a simple and intuitive interface for interacting with a specific\n * wallet service.\n *\n */\nexport class Provider implements IProvider {\n private providerName: string;\n\n /**\n * Provider constructor\n *\n * @param providerName - The name of the provider.\n * @returns An instance of the Provider class.\n */\n public constructor(providerName: string) {\n this.providerName = providerName;\n }\n\n /**\n * This method returns the name of the provider.\n * @returns The name of the provider.\n */\n public name(): string {\n return this.providerName;\n }\n\n /**\n * This method sends a message to the content script to get the list of accounts for the provider.\n * It returns a Promise that resolves to an array of Account instances.\n *\n * @returns A promise that resolves to an array of Account instances.\n */\n public async accounts(): Promise<IAccount[]> {\n const providersPromise = new Promise<IAccountDetails[]>(\n (resolve, reject) => {\n connector.sendMessageToContentScript(\n this.providerName,\n AvailableCommands.ProviderListAccounts,\n {},\n (result, err) => {\n if (err) return reject(err);\n return resolve(result as IAccountDetails[]);\n },\n );\n },\n );\n\n const providerAccounts: IAccountDetails[] = await providersPromise;\n\n let accounts: Account[] = [];\n for (const providerAccount of providerAccounts) {\n const accInstance = new Account(providerAccount, this.providerName);\n accounts.push(accInstance);\n }\n\n return accounts;\n }\n\n /**\n * This method sends a message to the content script to import an account with the given publicKey and privateKey.\n *\n * @remarks\n * - The IAccountImportResponse object contains the address of the imported account.\n * - The address is generated from the public key.\n *\n * @param publicKey - The public key of the account.\n * @param privateKey - The private key of the account.\n * @returns a Promise that resolves to an instance of IAccountImportResponse.\n *\n */\n public async importAccount(\n publicKey: string,\n privateKey: string,\n ): Promise<IAccountImportResponse> {\n const accountImportRequest = {\n publicKey,\n privateKey,\n } as IAccountImportRequest;\n return new Promise<IAccountImportResponse>((resolve, reject) => {\n connector.sendMessageToContentScript(\n this.providerName,\n AvailableCommands.ProviderImportAccount,\n accountImportRequest,\n (result, err) => {\n if (err) return reject(err);\n return resolve(result as IAccountImportResponse);\n },\n );\n });\n }\n\n /**\n * This method sends a message to the content script to delete the account associated with the given address.\n *\n * @param address - The address of the account.\n * @returns a Promise that resolves to an instance of IAccountDeletionResponse.\n */\n public async deleteAccount(\n address: string,\n ): Promise<IAccountDeletionResponse> {\n const accountDeletionRequest = { address } as IAccountDeletionRequest;\n return new Promise<IAccountDeletionResponse>((resolve, reject) => {\n connector.sendMessageToContentScript(\n this.providerName,\n AvailableCommands.ProviderDeleteAccount,\n accountDeletionRequest,\n (result, err) => {\n if (err) return reject(err);\n return resolve(result as IAccountDeletionResponse);\n },\n );\n });\n }\n\n /**\n * This method sends a message to the content script to get the list of nodes urls\n * used to connect the front end to the Massa network.\n *\n * @returns a Promise that resolves to an array of nodes urls (string).\n *\n */\n public async getNodesUrls(): Promise<string[]> {\n return new Promise<string[]>((resolve, reject) => {\n connector.sendMessageToContentScript(\n this.providerName,\n AvailableCommands.ProviderGetNodesUrls,\n {},\n (result, err) => {\n if (err) return reject(err);\n return resolve(result as string[]);\n },\n );\n });\n }\n\n /**\n * Returns the name of the network the provider is connected to.\n *\n * @returns a Promise that resolves to the network name (string).\n */\n public async getNetwork(): Promise<string> {\n return new Promise<string>((resolve, reject) => {\n connector.sendMessageToContentScript(\n this.providerName,\n AvailableCommands.ProviderGetNetwork,\n {},\n (result, err) => {\n if (err) return reject(err);\n else if (typeof result !== 'string') {\n return reject(\n new Error(`Expected a string but got ${typeof result} instead`),\n );\n }\n return resolve(result);\n },\n );\n });\n }\n\n /**\n * This method generates a new account by a given name and adds it to the wallet.\n *\n * @param name - The account name\n * @returns a Promise that resolves to an instance of IAccountDetails.\n */\n public async generateNewAccount(name?: string): Promise<IAccountDetails> {\n const accountGenerationRequest = { name } as IAccountGenerationRequest;\n return new Promise<IAccountDetails>((resolve, reject) => {\n connector.sendMessageToContentScript(\n this.providerName,\n AvailableCommands.ProviderGenerateNewAccount,\n accountGenerationRequest,\n (result, err) => {\n if (err) return reject(err);\n return resolve(result as IAccountDetails);\n },\n );\n });\n }\n\n public listenAccountChanges(\n callback: (address: string) => void,\n ): { 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: string) => void,\n ): { unsubscribe: () => void } | undefined {\n throw new Error(\n 'listenNetworkChanges is not yet implemented for the current provider.',\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"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@massalabs/wallet-provider",
3
- "version": "1.5.2-dev.20240112130554",
3
+ "version": "1.5.2-dev.20240123101407",
4
4
  "description": "massa's wallet provider",
5
5
  "main": "dist/esm/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -52,8 +52,8 @@
52
52
  "dist"
53
53
  ],
54
54
  "dependencies": {
55
- "@hicaru/bearby.js": "^0.5.0",
56
- "@massalabs/massa-web3": "^2.2.7",
55
+ "@hicaru/bearby.js": "^0.5.4",
56
+ "@massalabs/massa-web3": "^3.0.2",
57
57
  "@massalabs/web3-utils": "^1.4.7",
58
58
  "axios": "^0.26.1",
59
59
  "bignumber.js": "^9.1.1",