@massalabs/wallet-provider 3.2.1-dev.20250512131006 → 3.2.1-dev.20250520130105

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 (34) hide show
  1. package/dist/esm/bearbyWallet/BearbyAccount.d.ts.map +1 -1
  2. package/dist/esm/bearbyWallet/BearbyAccount.js +15 -4
  3. package/dist/esm/bearbyWallet/BearbyAccount.js.map +1 -1
  4. package/dist/esm/massaStation/MassaStationAccount.d.ts +4 -3
  5. package/dist/esm/massaStation/MassaStationAccount.d.ts.map +1 -1
  6. package/dist/esm/massaStation/MassaStationAccount.js +66 -18
  7. package/dist/esm/massaStation/MassaStationAccount.js.map +1 -1
  8. package/dist/esm/massaStation/types.d.ts +17 -1
  9. package/dist/esm/massaStation/types.d.ts.map +1 -1
  10. package/dist/esm/massaStation/types.js.map +1 -1
  11. package/dist/esm/massaStation/utils/network.d.ts +2 -2
  12. package/dist/esm/massaStation/utils/network.d.ts.map +1 -1
  13. package/dist/esm/massaStation/utils/network.js +5 -15
  14. package/dist/esm/massaStation/utils/network.js.map +1 -1
  15. package/dist/esm/metamaskSnap/MetamaskAccount.d.ts +2 -2
  16. package/dist/esm/metamaskSnap/MetamaskAccount.d.ts.map +1 -1
  17. package/dist/esm/metamaskSnap/MetamaskAccount.js +27 -3
  18. package/dist/esm/metamaskSnap/MetamaskAccount.js.map +1 -1
  19. package/dist/esm/metamaskSnap/services/deploySC.d.ts +2 -2
  20. package/dist/esm/metamaskSnap/services/deploySC.d.ts.map +1 -1
  21. package/dist/esm/metamaskSnap/services/deploySC.js.map +1 -1
  22. package/dist/esm/metamaskSnap/services/executeSC.d.ts +4 -0
  23. package/dist/esm/metamaskSnap/services/executeSC.d.ts.map +1 -0
  24. package/dist/esm/metamaskSnap/services/executeSC.js +14 -0
  25. package/dist/esm/metamaskSnap/services/executeSC.js.map +1 -0
  26. package/dist/esm/metamaskSnap/services/index.d.ts +1 -0
  27. package/dist/esm/metamaskSnap/services/index.d.ts.map +1 -1
  28. package/dist/esm/metamaskSnap/services/index.js +1 -0
  29. package/dist/esm/metamaskSnap/services/index.js.map +1 -1
  30. package/dist/esm/utils/constants.d.ts +2 -1
  31. package/dist/esm/utils/constants.d.ts.map +1 -1
  32. package/dist/esm/utils/constants.js +1 -0
  33. package/dist/esm/utils/constants.js.map +1 -1
  34. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"BearbyAccount.d.ts","sourceRoot":"","sources":["../../../src/bearbyWallet/BearbyAccount.ts"],"names":[],"mappings":"AASA,OAAO,EACL,OAAO,EACP,YAAY,EAEZ,cAAc,EACd,WAAW,EAIX,OAAO,EACP,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,UAAU,EACV,aAAa,EAIb,QAAQ,EAER,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAQ/B,qBAAa,aAAc,YAAW,QAAQ;IAClB,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM;IAEzC,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;YAUa,SAAS;IAYV,OAAO,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBvC,SAAS,CACpB,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAerC,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAIhC,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAmBpD,QAAQ,CACnB,MAAM,EAAE,MAAM,EAEd,KAAK,CAAC,EAAE,gBAAgB,GACvB,OAAO,CAAC,SAAS,CAAC;IAUR,SAAS,CACpB,MAAM,EAAE,MAAM,EAEd,KAAK,CAAC,EAAE,gBAAgB,GACvB,OAAO,CAAC,SAAS,CAAC;IAUR,QAAQ,CACnB,EAAE,EAAE,OAAO,GAAG,MAAM,EACpB,MAAM,EAAE,MAAM,EAEd,KAAK,CAAC,EAAE,gBAAgB,GACvB,OAAO,CAAC,SAAS,CAAC;YAeP,UAAU;IAKX,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC;IAkChD,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IA0DjD,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IA0CxD,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;IAwBtD,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAmC1D,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IA6B9D,aAAa,IAAI,OAAO,CAAC,cAAc,CAAC;IAQxC,cAAc,CACzB,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,UAAU,GAAG,MAAyB,EAC9C,KAAK,UAAO,GACX,OAAO,CAAC,UAAU,EAAE,CAAC;IA0BX,WAAW,CACtB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,EAC7B,KAAK,UAAO,GACX,OAAO,CAAC,UAAU,EAAE,CAAC;CAkBzB"}
1
+ {"version":3,"file":"BearbyAccount.d.ts","sourceRoot":"","sources":["../../../src/bearbyWallet/BearbyAccount.ts"],"names":[],"mappings":"AASA,OAAO,EACL,OAAO,EACP,YAAY,EAEZ,cAAc,EACd,WAAW,EAIX,OAAO,EACP,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,UAAU,EACV,aAAa,EAIb,QAAQ,EAER,eAAe,EAEhB,MAAM,uBAAuB,CAAC;AAQ/B,qBAAa,aAAc,YAAW,QAAQ;IAClB,OAAO,EAAE,MAAM;gBAAf,OAAO,EAAE,MAAM;IAEzC,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;YAUa,SAAS;IAYV,OAAO,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAqBvC,SAAS,CACpB,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,CAAC,EAAE,OAAO,GACd,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAerC,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAIhC,IAAI,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IAmBpD,QAAQ,CACnB,MAAM,EAAE,MAAM,EAEd,KAAK,CAAC,EAAE,gBAAgB,GACvB,OAAO,CAAC,SAAS,CAAC;IAUR,SAAS,CACpB,MAAM,EAAE,MAAM,EAEd,KAAK,CAAC,EAAE,gBAAgB,GACvB,OAAO,CAAC,SAAS,CAAC;IAUR,QAAQ,CACnB,EAAE,EAAE,OAAO,GAAG,MAAM,EACpB,MAAM,EAAE,MAAM,EAEd,KAAK,CAAC,EAAE,gBAAgB,GACvB,OAAO,CAAC,SAAS,CAAC;YAeP,UAAU;IAKX,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC;IAkChD,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IA0DjD,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAwDxD,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;IAwBtD,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAmC1D,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IA6B9D,aAAa,IAAI,OAAO,CAAC,cAAc,CAAC;IAQxC,cAAc,CACzB,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,UAAU,GAAG,MAAyB,EAC9C,KAAK,UAAO,GACX,OAAO,CAAC,UAAU,EAAE,CAAC;IA0BX,WAAW,CACtB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,EAC7B,KAAK,UAAO,GACX,OAAO,CAAC,UAAU,EAAE,CAAC;CAkBzB"}
@@ -1,7 +1,7 @@
1
1
  import { web3, } from '@hicaru/bearby.js';
2
2
  import { errorHandler } from '../errors/utils/errorHandler';
3
3
  import { operationType } from '../utils/constants';
4
- import { DEPLOYER_BYTECODE, formatNodeStatusObject, Mas, MAX_GAS_CALL, Operation, OperationStatus, SmartContract, StorageCost, strToBytes, bytesToStr, JsonRpcPublicProvider, } from '@massalabs/massa-web3';
4
+ import { DEPLOYER_BYTECODE, formatNodeStatusObject, Mas, MAX_GAS_CALL, Operation, OperationStatus, SmartContract, StorageCost, strToBytes, bytesToStr, JsonRpcPublicProvider, populateDatastore, } from '@massalabs/massa-web3';
5
5
  import { networkInfos } from './utils/network';
6
6
  import { WalletName } from '../wallet';
7
7
  import isEqual from 'lodash.isequal';
@@ -204,24 +204,35 @@ export class BearbyAccount {
204
204
  const coins = params.coins ?? 0n;
205
205
  const maxCoins = params.maxCoins ??
206
206
  StorageCost.smartContractDeploy(params.byteCode.length) + coins;
207
+ const args = params.parameter ?? new Uint8Array();
208
+ const parameters = args instanceof Uint8Array ? args : args.serialize();
207
209
  let maxGas = params.maxGas;
208
210
  if (!maxGas) {
209
211
  const client = await this.getClient();
212
+ const datastore = populateDatastore([
213
+ {
214
+ data: params.byteCode,
215
+ args: parameters,
216
+ coins,
217
+ },
218
+ ]);
210
219
  maxGas = await client.executeSCGasEstimation({
211
220
  ...params,
221
+ byteCode: DEPLOYER_BYTECODE,
222
+ datastore,
212
223
  caller: this.address,
213
224
  });
214
225
  }
215
- const args = {
216
- ...params,
226
+ const bearbyParams = {
217
227
  maxCoins,
218
228
  maxGas,
219
229
  coins,
220
230
  fee,
221
231
  contractDataBase64: uint8ArrayToBase64(params.byteCode),
222
232
  deployerBase64: uint8ArrayToBase64(DEPLOYER_BYTECODE),
233
+ unsafeParameters: parameters,
223
234
  };
224
- const operationId = await web3.contract.deploy(args);
235
+ const operationId = await web3.contract.deploy(bearbyParams);
225
236
  const operation = new Operation(this, operationId);
226
237
  const deployedAddress = await operation.getDeployedAddress(params.waitFinalExecution);
227
238
  return new SmartContract(this, deployedAddress);
@@ -1 +1 @@
1
- {"version":3,"file":"BearbyAccount.js","sourceRoot":"","sources":["../../../src/bearbyWallet/BearbyAccount.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n EventFilterParam,\n web3,\n DatastoreEntryInputParam,\n JsonRPCResponse,\n ExecuteBytecodeParams,\n} from '@hicaru/bearby.js';\nimport { errorHandler } from '../errors/utils/errorHandler';\nimport { operationType } from '../utils/constants';\nimport {\n Address,\n CallSCParams,\n DEPLOYER_BYTECODE,\n DeploySCParams,\n EventFilter,\n formatNodeStatusObject,\n Mas,\n MAX_GAS_CALL,\n Network,\n NodeStatusInfo,\n Operation,\n OperationOptions,\n OperationStatus,\n Provider,\n ReadSCData,\n ReadSCParams,\n SignedData,\n SmartContract,\n StorageCost,\n strToBytes,\n bytesToStr,\n rpcTypes,\n JsonRpcPublicProvider,\n ExecuteScParams,\n} from '@massalabs/massa-web3';\nimport { networkInfos } from './utils/network';\nimport { WalletName } from '../wallet';\nimport isEqual from 'lodash.isequal';\nimport { uint8ArrayToBase64 } from '../utils/base64';\n\nlet jsonClient: JsonRpcPublicProvider;\n\nexport class BearbyAccount implements Provider {\n public constructor(public address: string) {}\n\n get accountName(): string {\n return this.address;\n }\n\n get providerName(): string {\n return WalletName.Bearby;\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 private async getClient(): Promise<JsonRpcPublicProvider> {\n if (!jsonClient) {\n const network = await networkInfos();\n jsonClient = (\n network.name === 'mainnet'\n ? JsonRpcPublicProvider.mainnet()\n : JsonRpcPublicProvider.buildnet()\n ) as JsonRpcPublicProvider;\n }\n return jsonClient;\n }\n\n public async balance(final = false): Promise<bigint> {\n // // TODO: check if we need to connect every time\n // await this.connect();\n\n try {\n const res = await web3.massa.getAddresses(this.address);\n\n if (res.error || !res.result) {\n throw new Error(res.error?.message || 'Bearby getAddresses error');\n }\n\n const { final_balance, candidate_balance } = res.result[0];\n\n return Mas.fromString(final ? final_balance : candidate_balance);\n } catch (error) {\n const errorMessage = `An unexpected error occurred while fetching the account balance: ${error.message}.`;\n\n throw new Error(errorMessage);\n }\n }\n\n public async balanceOf(\n addresses: string[],\n final?: boolean,\n ): Promise<{ address: string; balance: bigint }[]> {\n const res = await web3.massa.getAddresses(...addresses);\n if (res.error || !res.result) {\n throw new Error(res.error?.message || 'Bearby getAddresses error');\n }\n\n return res.result.map((addressInfo) => {\n const { final_balance, candidate_balance } = addressInfo;\n return {\n address: addressInfo.address,\n balance: Mas.fromString(final ? final_balance : candidate_balance),\n };\n });\n }\n\n public async networkInfos(): Promise<Network> {\n return networkInfos();\n }\n\n public async sign(data: Uint8Array | string): Promise<SignedData> {\n // await this.connect();\n\n if (data instanceof Uint8Array) {\n data = bytesToStr(data);\n }\n\n try {\n const signature = await web3.wallet.signMessage(data);\n\n return {\n publicKey: signature.publicKey,\n signature: signature.signature,\n };\n } catch (error) {\n throw errorHandler(operationType.Sign, error);\n }\n }\n\n public async buyRolls(\n amount: bigint,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _opts?: OperationOptions,\n ): Promise<Operation> {\n // await this.connect();\n try {\n const operationId = await web3.massa.buyRolls(amount.toString());\n return new Operation(this, operationId);\n } catch (error) {\n throw errorHandler(operationType.BuyRolls, error);\n }\n }\n\n public async sellRolls(\n amount: bigint,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _opts?: OperationOptions,\n ): Promise<Operation> {\n // await this.connect();\n try {\n const operationId = await web3.massa.sellRolls(amount.toString());\n return new Operation(this, operationId);\n } catch (error) {\n throw errorHandler(operationType.SellRolls, error);\n }\n }\n\n public async transfer(\n to: Address | string,\n amount: bigint,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _opts?: OperationOptions,\n ): Promise<Operation> {\n // await this.connect();\n\n try {\n const operationId = await web3.massa.payment(\n amount.toString(),\n to.toString(),\n );\n\n return new Operation(this, operationId);\n } catch (error) {\n throw errorHandler(operationType.SendTransaction, error);\n }\n }\n\n private async minimalFee(): Promise<bigint> {\n const { minimalFee } = await this.networkInfos();\n return minimalFee;\n }\n\n public async callSC(params: CallSCParams): Promise<Operation> {\n // await this.connect();\n\n const args = params.parameter ?? new Uint8Array();\n const unsafeParameters =\n args instanceof Uint8Array ? args : Uint8Array.from(args.serialize());\n\n const fee = params.fee ?? (await this.minimalFee());\n\n let maxGas = params.maxGas;\n if (!maxGas) {\n const client = await this.getClient();\n maxGas = await client.getGasEstimation({\n ...params,\n caller: this.address,\n });\n }\n\n try {\n const operationId = await web3.contract.call({\n // TODO: add bigint support in bearby.js\n maxGas: Number(maxGas),\n coins: Number(params.coins || 0),\n fee: Number(fee),\n targetAddress: params.target,\n functionName: params.func,\n unsafeParameters,\n });\n return new Operation(this, operationId);\n } catch (error) {\n throw errorHandler(operationType.CallSC, error);\n }\n }\n\n public async readSC(params: ReadSCParams): Promise<ReadSCData> {\n if (params.maxGas && params.maxGas > MAX_GAS_CALL) {\n throw new Error(\n `Gas amount ${params.maxGas} exceeds the maximum allowed ${MAX_GAS_CALL}.`,\n );\n }\n\n const args = params.parameter ?? new Uint8Array();\n const unsafeParameters =\n args instanceof Uint8Array ? args : Uint8Array.from(args.serialize());\n\n const fee = params?.fee ?? (await this.minimalFee());\n const caller = params.caller ?? this.address;\n\n try {\n // const res = await web3.contract.readSmartContract({\n // // TODO: add bigint support in bearby.js\n // maxGas: Number(params.maxGas),\n // coins: Number(params.coins),\n // fee: Number(fee),\n // targetAddress: params.target,\n // targetFunction: params.func,\n // // TODO: add unsafeParameters to bearby.js\n // // https://github.com/bearby-wallet/bearby-web3/pull/18\n // parameter: unsafeParameters as any,\n // });\n\n // console.log('bearby readSC res', res[0]);\n // const data = res[0].result[0];\n\n // return {\n // value: data.result.Ok ? Uint8Array.from(data.result.Ok): new Uint8Array(),\n // info: {\n // error: data.result.Error,\n // events: data.output_events.map((event: SCEvent) => ({\n // data: event.data,\n // context: event.context,\n // })),\n // gasCost: data.gas_cost,\n // },\n // };\n\n // Temp implementation to remove when bearby.js is fixed\n const client = await this.getClient();\n const readOnlyParams = {\n ...params,\n caller,\n fee,\n parameter: unsafeParameters,\n };\n return client.readSC(readOnlyParams);\n } catch (error) {\n throw new Error(\n `An error occurred while reading the smart contract: ${error.message}`,\n );\n }\n }\n\n public async deploySC(params: DeploySCParams): Promise<SmartContract> {\n try {\n const fee = Number(params.fee ?? (await this.minimalFee()));\n const coins = params.coins ?? 0n;\n const maxCoins =\n params.maxCoins ??\n StorageCost.smartContractDeploy(params.byteCode.length) + coins;\n\n let maxGas = params.maxGas;\n if (!maxGas) {\n const client = await this.getClient();\n maxGas = await client.executeSCGasEstimation({\n ...params,\n caller: this.address,\n });\n }\n\n const args = {\n ...params,\n maxCoins,\n maxGas,\n coins,\n fee,\n contractDataBase64: uint8ArrayToBase64(params.byteCode),\n deployerBase64: uint8ArrayToBase64(DEPLOYER_BYTECODE),\n };\n\n const operationId = await web3.contract.deploy(args);\n\n const operation = new Operation(this, operationId);\n\n const deployedAddress = await operation.getDeployedAddress(\n params.waitFinalExecution,\n );\n\n return new SmartContract(this, deployedAddress);\n } catch (error) {\n console.error('Error deploying smart contract:', error);\n throw new Error(`Failed to deploy smart contract: ${error.message}`);\n }\n }\n\n public async executeSC(params: ExecuteScParams): Promise<Operation> {\n const fee = params.fee ?? (await this.minimalFee());\n let maxGas = params.maxGas;\n if (!maxGas) {\n const client = await this.getClient();\n maxGas = await client.executeSCGasEstimation({\n ...params,\n caller: this.address,\n });\n }\n\n const args: ExecuteBytecodeParams = {\n maxCoins: params.maxCoins ?? 0n,\n maxGas,\n fee,\n bytecodeBase64: uint8ArrayToBase64(params.byteCode),\n datastore: params.datastore ?? new Map<Uint8Array, Uint8Array>(),\n };\n\n const operationId = await web3.contract.executeBytecode(args);\n\n return new Operation(this, operationId);\n }\n\n public async getOperationStatus(opId: string): Promise<OperationStatus> {\n try {\n const res = await web3.massa.getOperations(opId);\n\n if (res.error || !res.result) {\n throw new Error(res.error?.message || 'Bearby getOperations error');\n }\n const op = res.result[0];\n if (op.op_exec_status === null) {\n if (op.is_operation_final === null) {\n return OperationStatus.NotFound;\n }\n throw new Error('unexpected status');\n }\n\n if (op.in_pool) {\n return OperationStatus.PendingInclusion;\n }\n\n if (!op.is_operation_final) {\n return op.op_exec_status\n ? OperationStatus.SpeculativeSuccess\n : OperationStatus.SpeculativeError;\n }\n\n return op.op_exec_status\n ? OperationStatus.Success\n : OperationStatus.Error;\n } catch (error) {\n throw new Error(\n `An error occurred while fetching the operation status: ${error.message}`,\n );\n }\n }\n\n public async getEvents(filter: EventFilter): Promise<rpcTypes.OutputEvents> {\n const formattedFilter: EventFilterParam = {\n start: filter.start,\n end: filter.end,\n emitter_address: filter.smartContractAddress,\n original_caller_address: filter.callerAddress,\n original_operation_id: filter.operationId,\n is_final: filter.isFinal,\n is_error: filter.isError,\n };\n\n try {\n /* \n Currently getFilteredSCOutputEvent is supposed to return a JsonRPCResponseFilteredSCOutputEvent object.\n But in practice it's returning an array of JsonRPCResponse<rpcTypes.OutputEvents> objects.\n */\n const res = (await web3.contract.getFilteredSCOutputEvent(\n formattedFilter,\n )) as JsonRPCResponse<rpcTypes.OutputEvents>[];\n\n if (res?.[0]?.error) throw res[0].error;\n return res?.[0]?.result ?? [];\n } catch (error) {\n throw new Error(\n `An error occurred while fetching the operation status: ${error.message}`,\n );\n }\n }\n\n public async getNodeStatus(): Promise<NodeStatusInfo> {\n const status = await web3.massa.getNodesStatus();\n if (status.error || !status.result) {\n throw new Error(status.error?.message || 'Bearby getNodeStatus error');\n }\n return formatNodeStatusObject(status.result);\n }\n\n public async getStorageKeys(\n address: string,\n filter: Uint8Array | string = new Uint8Array(),\n final = true,\n ): Promise<Uint8Array[]> {\n const res = await web3.massa.getAddresses(address);\n if (res.error || !res.result) {\n throw new Error(res.error?.message || 'Bearby getStorageKeys error');\n }\n\n const addressInfo = res.result[0];\n const keys = final\n ? addressInfo.final_datastore_keys\n : addressInfo.candidate_datastore_keys;\n\n const filterBytes: Uint8Array =\n typeof filter === 'string' ? strToBytes(filter) : filter;\n\n return keys\n .filter(\n (key) =>\n !filter.length ||\n isEqual(\n Uint8Array.from(key.slice(0, filterBytes.length)),\n filterBytes,\n ),\n )\n .map((d) => Uint8Array.from(d));\n }\n\n public async readStorage(\n address: string,\n keys: Uint8Array[] | string[],\n final = true,\n ): Promise<Uint8Array[]> {\n try {\n const input: DatastoreEntryInputParam[] = keys.map((key) => ({\n key,\n address,\n }));\n const data = await web3.contract.getDatastoreEntries(...input);\n const resultArray = data[0]['result'];\n const dataArray = final\n ? resultArray.map((d) => Uint8Array.from(d.final_value))\n : resultArray.map((d) => Uint8Array.from(d.candidate_value));\n return dataArray;\n } catch (error) {\n throw new Error(\n `An error occurred while reading the storage: ${error.message}`,\n );\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 EventFilterParam,\n web3,\n DatastoreEntryInputParam,\n JsonRPCResponse,\n ExecuteBytecodeParams,\n} from '@hicaru/bearby.js';\nimport { errorHandler } from '../errors/utils/errorHandler';\nimport { operationType } from '../utils/constants';\nimport {\n Address,\n CallSCParams,\n DEPLOYER_BYTECODE,\n DeploySCParams,\n EventFilter,\n formatNodeStatusObject,\n Mas,\n MAX_GAS_CALL,\n Network,\n NodeStatusInfo,\n Operation,\n OperationOptions,\n OperationStatus,\n Provider,\n ReadSCData,\n ReadSCParams,\n SignedData,\n SmartContract,\n StorageCost,\n strToBytes,\n bytesToStr,\n rpcTypes,\n JsonRpcPublicProvider,\n ExecuteScParams,\n populateDatastore,\n} from '@massalabs/massa-web3';\nimport { networkInfos } from './utils/network';\nimport { WalletName } from '../wallet';\nimport isEqual from 'lodash.isequal';\nimport { uint8ArrayToBase64 } from '../utils/base64';\n\nlet jsonClient: JsonRpcPublicProvider;\n\nexport class BearbyAccount implements Provider {\n public constructor(public address: string) {}\n\n get accountName(): string {\n return this.address;\n }\n\n get providerName(): string {\n return WalletName.Bearby;\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 private async getClient(): Promise<JsonRpcPublicProvider> {\n if (!jsonClient) {\n const network = await networkInfos();\n jsonClient = (\n network.name === 'mainnet'\n ? JsonRpcPublicProvider.mainnet()\n : JsonRpcPublicProvider.buildnet()\n ) as JsonRpcPublicProvider;\n }\n return jsonClient;\n }\n\n public async balance(final = false): Promise<bigint> {\n // // TODO: check if we need to connect every time\n // await this.connect();\n\n try {\n const res = await web3.massa.getAddresses(this.address);\n\n if (res.error || !res.result) {\n throw new Error(res.error?.message || 'Bearby getAddresses error');\n }\n\n const { final_balance, candidate_balance } = res.result[0];\n\n return Mas.fromString(final ? final_balance : candidate_balance);\n } catch (error) {\n const errorMessage = `An unexpected error occurred while fetching the account balance: ${error.message}.`;\n\n throw new Error(errorMessage);\n }\n }\n\n public async balanceOf(\n addresses: string[],\n final?: boolean,\n ): Promise<{ address: string; balance: bigint }[]> {\n const res = await web3.massa.getAddresses(...addresses);\n if (res.error || !res.result) {\n throw new Error(res.error?.message || 'Bearby getAddresses error');\n }\n\n return res.result.map((addressInfo) => {\n const { final_balance, candidate_balance } = addressInfo;\n return {\n address: addressInfo.address,\n balance: Mas.fromString(final ? final_balance : candidate_balance),\n };\n });\n }\n\n public async networkInfos(): Promise<Network> {\n return networkInfos();\n }\n\n public async sign(data: Uint8Array | string): Promise<SignedData> {\n // await this.connect();\n\n if (data instanceof Uint8Array) {\n data = bytesToStr(data);\n }\n\n try {\n const signature = await web3.wallet.signMessage(data);\n\n return {\n publicKey: signature.publicKey,\n signature: signature.signature,\n };\n } catch (error) {\n throw errorHandler(operationType.Sign, error);\n }\n }\n\n public async buyRolls(\n amount: bigint,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _opts?: OperationOptions,\n ): Promise<Operation> {\n // await this.connect();\n try {\n const operationId = await web3.massa.buyRolls(amount.toString());\n return new Operation(this, operationId);\n } catch (error) {\n throw errorHandler(operationType.BuyRolls, error);\n }\n }\n\n public async sellRolls(\n amount: bigint,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _opts?: OperationOptions,\n ): Promise<Operation> {\n // await this.connect();\n try {\n const operationId = await web3.massa.sellRolls(amount.toString());\n return new Operation(this, operationId);\n } catch (error) {\n throw errorHandler(operationType.SellRolls, error);\n }\n }\n\n public async transfer(\n to: Address | string,\n amount: bigint,\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n _opts?: OperationOptions,\n ): Promise<Operation> {\n // await this.connect();\n\n try {\n const operationId = await web3.massa.payment(\n amount.toString(),\n to.toString(),\n );\n\n return new Operation(this, operationId);\n } catch (error) {\n throw errorHandler(operationType.SendTransaction, error);\n }\n }\n\n private async minimalFee(): Promise<bigint> {\n const { minimalFee } = await this.networkInfos();\n return minimalFee;\n }\n\n public async callSC(params: CallSCParams): Promise<Operation> {\n // await this.connect();\n\n const args = params.parameter ?? new Uint8Array();\n const unsafeParameters =\n args instanceof Uint8Array ? args : Uint8Array.from(args.serialize());\n\n const fee = params.fee ?? (await this.minimalFee());\n\n let maxGas = params.maxGas;\n if (!maxGas) {\n const client = await this.getClient();\n maxGas = await client.getGasEstimation({\n ...params,\n caller: this.address,\n });\n }\n\n try {\n const operationId = await web3.contract.call({\n // TODO: add bigint support in bearby.js\n maxGas: Number(maxGas),\n coins: Number(params.coins || 0),\n fee: Number(fee),\n targetAddress: params.target,\n functionName: params.func,\n unsafeParameters,\n });\n return new Operation(this, operationId);\n } catch (error) {\n throw errorHandler(operationType.CallSC, error);\n }\n }\n\n public async readSC(params: ReadSCParams): Promise<ReadSCData> {\n if (params.maxGas && params.maxGas > MAX_GAS_CALL) {\n throw new Error(\n `Gas amount ${params.maxGas} exceeds the maximum allowed ${MAX_GAS_CALL}.`,\n );\n }\n\n const args = params.parameter ?? new Uint8Array();\n const unsafeParameters =\n args instanceof Uint8Array ? args : Uint8Array.from(args.serialize());\n\n const fee = params?.fee ?? (await this.minimalFee());\n const caller = params.caller ?? this.address;\n\n try {\n // const res = await web3.contract.readSmartContract({\n // // TODO: add bigint support in bearby.js\n // maxGas: Number(params.maxGas),\n // coins: Number(params.coins),\n // fee: Number(fee),\n // targetAddress: params.target,\n // targetFunction: params.func,\n // // TODO: add unsafeParameters to bearby.js\n // // https://github.com/bearby-wallet/bearby-web3/pull/18\n // parameter: unsafeParameters as any,\n // });\n\n // console.log('bearby readSC res', res[0]);\n // const data = res[0].result[0];\n\n // return {\n // value: data.result.Ok ? Uint8Array.from(data.result.Ok): new Uint8Array(),\n // info: {\n // error: data.result.Error,\n // events: data.output_events.map((event: SCEvent) => ({\n // data: event.data,\n // context: event.context,\n // })),\n // gasCost: data.gas_cost,\n // },\n // };\n\n // Temp implementation to remove when bearby.js is fixed\n const client = await this.getClient();\n const readOnlyParams = {\n ...params,\n caller,\n fee,\n parameter: unsafeParameters,\n };\n return client.readSC(readOnlyParams);\n } catch (error) {\n throw new Error(\n `An error occurred while reading the smart contract: ${error.message}`,\n );\n }\n }\n\n public async deploySC(params: DeploySCParams): Promise<SmartContract> {\n try {\n const fee = Number(params.fee ?? (await this.minimalFee()));\n const coins = params.coins ?? 0n;\n const maxCoins =\n params.maxCoins ??\n StorageCost.smartContractDeploy(params.byteCode.length) + coins;\n\n const args = params.parameter ?? new Uint8Array();\n const parameters = args instanceof Uint8Array ? args : args.serialize();\n\n let maxGas = params.maxGas;\n if (!maxGas) {\n const client = await this.getClient();\n\n const datastore = populateDatastore([\n {\n data: params.byteCode,\n args: parameters,\n coins,\n },\n ]);\n\n maxGas = await client.executeSCGasEstimation({\n ...params,\n byteCode: DEPLOYER_BYTECODE,\n datastore,\n caller: this.address,\n });\n }\n\n const bearbyParams = {\n maxCoins,\n maxGas,\n coins,\n fee,\n contractDataBase64: uint8ArrayToBase64(params.byteCode),\n deployerBase64: uint8ArrayToBase64(DEPLOYER_BYTECODE),\n unsafeParameters: parameters,\n };\n\n const operationId = await web3.contract.deploy(bearbyParams);\n\n const operation = new Operation(this, operationId);\n\n const deployedAddress = await operation.getDeployedAddress(\n params.waitFinalExecution,\n );\n\n return new SmartContract(this, deployedAddress);\n } catch (error) {\n console.error('Error deploying smart contract:', error);\n throw new Error(`Failed to deploy smart contract: ${error.message}`);\n }\n }\n\n public async executeSC(params: ExecuteScParams): Promise<Operation> {\n const fee = params.fee ?? (await this.minimalFee());\n let maxGas = params.maxGas;\n if (!maxGas) {\n const client = await this.getClient();\n maxGas = await client.executeSCGasEstimation({\n ...params,\n caller: this.address,\n });\n }\n\n const args: ExecuteBytecodeParams = {\n maxCoins: params.maxCoins ?? 0n,\n maxGas,\n fee,\n bytecodeBase64: uint8ArrayToBase64(params.byteCode),\n datastore: params.datastore ?? new Map<Uint8Array, Uint8Array>(),\n };\n\n const operationId = await web3.contract.executeBytecode(args);\n\n return new Operation(this, operationId);\n }\n\n public async getOperationStatus(opId: string): Promise<OperationStatus> {\n try {\n const res = await web3.massa.getOperations(opId);\n\n if (res.error || !res.result) {\n throw new Error(res.error?.message || 'Bearby getOperations error');\n }\n const op = res.result[0];\n if (op.op_exec_status === null) {\n if (op.is_operation_final === null) {\n return OperationStatus.NotFound;\n }\n throw new Error('unexpected status');\n }\n\n if (op.in_pool) {\n return OperationStatus.PendingInclusion;\n }\n\n if (!op.is_operation_final) {\n return op.op_exec_status\n ? OperationStatus.SpeculativeSuccess\n : OperationStatus.SpeculativeError;\n }\n\n return op.op_exec_status\n ? OperationStatus.Success\n : OperationStatus.Error;\n } catch (error) {\n throw new Error(\n `An error occurred while fetching the operation status: ${error.message}`,\n );\n }\n }\n\n public async getEvents(filter: EventFilter): Promise<rpcTypes.OutputEvents> {\n const formattedFilter: EventFilterParam = {\n start: filter.start,\n end: filter.end,\n emitter_address: filter.smartContractAddress,\n original_caller_address: filter.callerAddress,\n original_operation_id: filter.operationId,\n is_final: filter.isFinal,\n is_error: filter.isError,\n };\n\n try {\n /* \n Currently getFilteredSCOutputEvent is supposed to return a JsonRPCResponseFilteredSCOutputEvent object.\n But in practice it's returning an array of JsonRPCResponse<rpcTypes.OutputEvents> objects.\n */\n const res = (await web3.contract.getFilteredSCOutputEvent(\n formattedFilter,\n )) as JsonRPCResponse<rpcTypes.OutputEvents>[];\n\n if (res?.[0]?.error) throw res[0].error;\n return res?.[0]?.result ?? [];\n } catch (error) {\n throw new Error(\n `An error occurred while fetching the operation status: ${error.message}`,\n );\n }\n }\n\n public async getNodeStatus(): Promise<NodeStatusInfo> {\n const status = await web3.massa.getNodesStatus();\n if (status.error || !status.result) {\n throw new Error(status.error?.message || 'Bearby getNodeStatus error');\n }\n return formatNodeStatusObject(status.result);\n }\n\n public async getStorageKeys(\n address: string,\n filter: Uint8Array | string = new Uint8Array(),\n final = true,\n ): Promise<Uint8Array[]> {\n const res = await web3.massa.getAddresses(address);\n if (res.error || !res.result) {\n throw new Error(res.error?.message || 'Bearby getStorageKeys error');\n }\n\n const addressInfo = res.result[0];\n const keys = final\n ? addressInfo.final_datastore_keys\n : addressInfo.candidate_datastore_keys;\n\n const filterBytes: Uint8Array =\n typeof filter === 'string' ? strToBytes(filter) : filter;\n\n return keys\n .filter(\n (key) =>\n !filter.length ||\n isEqual(\n Uint8Array.from(key.slice(0, filterBytes.length)),\n filterBytes,\n ),\n )\n .map((d) => Uint8Array.from(d));\n }\n\n public async readStorage(\n address: string,\n keys: Uint8Array[] | string[],\n final = true,\n ): Promise<Uint8Array[]> {\n try {\n const input: DatastoreEntryInputParam[] = keys.map((key) => ({\n key,\n address,\n }));\n const data = await web3.contract.getDatastoreEntries(...input);\n const resultArray = data[0]['result'];\n const dataArray = final\n ? resultArray.map((d) => Uint8Array.from(d.final_value))\n : resultArray.map((d) => Uint8Array.from(d.candidate_value));\n return dataArray;\n } catch (error) {\n throw new Error(\n `An error occurred while reading the storage: ${error.message}`,\n );\n }\n }\n}\n"]}
@@ -1,4 +1,5 @@
1
- import { Address, CallSCParams, DeploySCParams, EventFilter, Network, NodeStatusInfo, Operation, OperationOptions, OperationStatus, Provider, ReadSCData, ReadSCParams, SignedData, SignOptions, SmartContract, rpcTypes } from '@massalabs/massa-web3';
1
+ import { MSDeploySCParams, MSExecuteScParams } from './types';
2
+ import { Address, CallSCParams, EventFilter, Network, NodeStatusInfo, Operation, OperationOptions, OperationStatus, Provider, ReadSCData, ReadSCParams, SignedData, SignOptions, SmartContract, rpcTypes } from '@massalabs/massa-web3';
2
3
  /**
3
4
  * This module contains the MassaStationAccount class. It is responsible for representing an account in
4
5
  * the MassaStation wallet.
@@ -27,8 +28,8 @@ export declare class MassaStationAccount implements Provider {
27
28
  callSC(params: CallSCParams): Promise<Operation>;
28
29
  networkInfos(): Promise<Network>;
29
30
  readSC(params: ReadSCParams): Promise<ReadSCData>;
30
- deploySC(params: DeploySCParams): Promise<SmartContract>;
31
- executeSC(): Promise<Operation>;
31
+ deploySC(params: MSDeploySCParams): Promise<SmartContract>;
32
+ executeSC(params: MSExecuteScParams): Promise<Operation>;
32
33
  getOperationStatus(opId: string): Promise<OperationStatus>;
33
34
  getEvents(filter: EventFilter): Promise<rpcTypes.OutputEvents>;
34
35
  getNodeStatus(): Promise<NodeStatusInfo>;
@@ -1 +1 @@
1
- {"version":3,"file":"MassaStationAccount.d.ts","sourceRoot":"","sources":["../../../src/massaStation/MassaStationAccount.ts"],"names":[],"mappings":"AAiBA,OAAO,EACL,OAAO,EACP,YAAY,EAEZ,cAAc,EACd,WAAW,EAIX,OAAO,EACP,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,UAAU,EACV,WAAW,EACX,aAAa,EAEb,QAAQ,EAGT,MAAM,uBAAuB,CAAC;AAK/B;;;;;;;GAOG;AACH,qBAAa,mBAAoB,YAAW,QAAQ;IAIzC,OAAO,EAAE,MAAM;IACf,WAAW,EAAE,MAAM;IAJ5B,OAAO,CAAC,aAAa,CAA0B;gBAGtC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM;IAG5B,IAAI,YAAY,IAAI,MAAM,CAEzB;IAEY,OAAO,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAU9C,SAAS,CACb,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,UAAQ,GACZ,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAsBrC,IAAI,CACf,IAAI,EAAE,UAAU,GAAG,MAAM,EACzB,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,UAAU,CAAC;YA2BR,UAAU;YAKV,aAAa;IAwBd,QAAQ,CACnB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,gBAAgB,GACtB,OAAO,CAAC,SAAS,CAAC;IAIR,SAAS,CACpB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,gBAAgB,GACtB,OAAO,CAAC,SAAS,CAAC;IAIf,QAAQ,CACZ,EAAE,EAAE,OAAO,GAAG,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,gBAAgB,GACtB,OAAO,CAAC,SAAS,CAAC;IAqBR,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC;IAqChD,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAIhC,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IA2BjD,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IA4CrE,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC;IAIlB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAM1D,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAM9D,aAAa,IAAI,OAAO,CAAC,cAAc,CAAC;IAMxC,cAAc,CACzB,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,UAAU,GAAG,MAAyB,EAC9C,KAAK,UAAO,GACX,OAAO,CAAC,UAAU,EAAE,CAAC;IAQX,WAAW,CACtB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,EAC7B,KAAK,UAAO,GACX,OAAO,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;CASlC"}
1
+ {"version":3,"file":"MassaStationAccount.d.ts","sourceRoot":"","sources":["../../../src/massaStation/MassaStationAccount.ts"],"names":[],"mappings":"AAOA,OAAO,EAOL,gBAAgB,EAChB,iBAAiB,EAElB,MAAM,SAAS,CAAC;AAGjB,OAAO,EACL,OAAO,EACP,YAAY,EACZ,WAAW,EAGX,OAAO,EACP,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,UAAU,EACV,WAAW,EACX,aAAa,EACb,QAAQ,EAKT,MAAM,uBAAuB,CAAC;AAK/B;;;;;;;GAOG;AACH,qBAAa,mBAAoB,YAAW,QAAQ;IAIzC,OAAO,EAAE,MAAM;IACf,WAAW,EAAE,MAAM;IAJ5B,OAAO,CAAC,aAAa,CAA0B;gBAGtC,OAAO,EAAE,MAAM,EACf,WAAW,EAAE,MAAM;IAG5B,IAAI,YAAY,IAAI,MAAM,CAEzB;IAEY,OAAO,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAU9C,SAAS,CACb,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,UAAQ,GACZ,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAsBrC,IAAI,CACf,IAAI,EAAE,UAAU,GAAG,MAAM,EACzB,IAAI,CAAC,EAAE,WAAW,GACjB,OAAO,CAAC,UAAU,CAAC;YA2BR,UAAU;YAMV,aAAa;IAwBd,QAAQ,CACnB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,gBAAgB,GACtB,OAAO,CAAC,SAAS,CAAC;IAIR,SAAS,CACpB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,gBAAgB,GACtB,OAAO,CAAC,SAAS,CAAC;IAIf,QAAQ,CACZ,EAAE,EAAE,OAAO,GAAG,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,gBAAgB,GACtB,OAAO,CAAC,SAAS,CAAC;IAqBR,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC;IAqChD,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAIhC,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IA2BjD,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,aAAa,CAAC;IAgEjE,SAAS,CAAC,MAAM,EAAE,iBAAiB,GAAG,OAAO,CAAC,SAAS,CAAC;IA+CjD,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAM1D,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAM9D,aAAa,IAAI,OAAO,CAAC,cAAc,CAAC;IAKxC,cAAc,CACzB,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,UAAU,GAAG,MAAyB,EAC9C,KAAK,UAAO,GACX,OAAO,CAAC,UAAU,EAAE,CAAC;IAMX,WAAW,CACtB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,EAC7B,KAAK,UAAO,GACX,OAAO,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;CAKlC"}
@@ -3,7 +3,7 @@ import { walletApiUrl, MASSA_STATION_URL } from './MassaStationWallet';
3
3
  import { argsToBase64, base64ToByteArray, uint8ArrayToBase64, } from '../utils/base64';
4
4
  import { errorHandler } from '../errors/utils/errorHandler';
5
5
  import { operationType } from '../utils/constants';
6
- import { formatNodeStatusObject, Mas, MAX_GAS_CALL, Operation, SmartContract, strToBytes, StorageCost, formatMas, } from '@massalabs/massa-web3';
6
+ import { Mas, MAX_GAS_CALL, Operation, SmartContract, StorageCost, formatMas, DEPLOYER_BYTECODE, populateDatastore, } from '@massalabs/massa-web3';
7
7
  import { getClient, networkInfos } from './utils/network';
8
8
  import { WalletName } from '../wallet';
9
9
  import bs58check from 'bs58check';
@@ -67,7 +67,8 @@ export class MassaStationAccount {
67
67
  }
68
68
  async minimalFee() {
69
69
  const client = await getClient();
70
- return client.getMinimalFee();
70
+ const { minimalFee } = await client.networkInfos();
71
+ return minimalFee;
71
72
  }
72
73
  async rollOperation(type, amount, opts) {
73
74
  let fee = opts?.fee ?? (await this.minimalFee());
@@ -158,7 +159,7 @@ export class MassaStationAccount {
158
159
  parameter: args instanceof Uint8Array ? args : Uint8Array.from(args.serialize()),
159
160
  };
160
161
  // This implementation is wrong. We should use massaStation instead of targeting the node directly.
161
- return client.executeReadOnlyCall(readOnlyParams);
162
+ return client.readSC(readOnlyParams);
162
163
  }
163
164
  async deploySC(params) {
164
165
  try {
@@ -167,15 +168,35 @@ export class MassaStationAccount {
167
168
  const coins = params.coins ?? 0n; // If coins is undefined, some vesions of station will have a panic
168
169
  const maxCoins = params.maxCoins ??
169
170
  StorageCost.smartContractDeploy(params.byteCode.length) + coins;
170
- const fee = params.fee || (await this.minimalFee());
171
+ const fee = params.fee ?? (await this.minimalFee());
172
+ let maxGas = params.maxGas;
173
+ if (!maxGas) {
174
+ const client = await getClient();
175
+ const datastore = populateDatastore([
176
+ {
177
+ data: params.byteCode,
178
+ args: parameters,
179
+ coins,
180
+ },
181
+ ]);
182
+ maxGas = await client.executeSCGasEstimation({
183
+ ...params,
184
+ byteCode: DEPLOYER_BYTECODE,
185
+ datastore,
186
+ caller: this.address,
187
+ });
188
+ }
189
+ const description = params.description ??
190
+ `${formatMas(coins)} MAS coins allocated to new smart contract`;
171
191
  const body = {
172
192
  nickname: this.accountName,
173
193
  smartContract: uint8ArrayToBase64(params.byteCode),
174
- maxCoins: maxCoins.toString(),
175
194
  coins: coins.toString(),
176
- fee: fee.toString(),
177
195
  parameters: uint8ArrayToBase64(parameters),
178
- description: `${formatMas(coins)} $MAS coins allocated to datastore + ${formatMas(fee)} $MAS fee for operation`,
196
+ maxCoins: maxCoins.toString(),
197
+ fee: fee.toString(),
198
+ maxGas: maxGas.toString(),
199
+ description,
179
200
  };
180
201
  const { result } = await postRequest(`${MASSA_STATION_URL}cmd/deploySC`, body);
181
202
  const operationId = result?.operationId;
@@ -189,8 +210,41 @@ export class MassaStationAccount {
189
210
  throw new Error(`Error during smart contract deployment: ${error}`);
190
211
  }
191
212
  }
192
- executeSC() {
193
- throw new Error('Method not implemented.');
213
+ async executeSC(params) {
214
+ try {
215
+ const fee = params.fee ?? (await this.minimalFee());
216
+ const maxCoins = params.maxCoins ?? 0n;
217
+ let maxGas = params.maxGas;
218
+ if (!maxGas) {
219
+ const client = await getClient();
220
+ maxGas = await client.executeSCGasEstimation({
221
+ ...params,
222
+ caller: this.address,
223
+ });
224
+ }
225
+ const datastore = [];
226
+ if (params.datastore) {
227
+ for (const [key, value] of params.datastore.entries()) {
228
+ datastore.push([uint8ArrayToBase64(key), uint8ArrayToBase64(value)]);
229
+ }
230
+ }
231
+ const body = {
232
+ nickname: this.accountName,
233
+ bytecode: uint8ArrayToBase64(params.byteCode),
234
+ datastore,
235
+ maxCoins: maxCoins.toString(),
236
+ fee: fee.toString(),
237
+ description: params.description ?? '',
238
+ };
239
+ const { result } = await postRequest(`${MASSA_STATION_URL}cmd/executeSC`, body);
240
+ const operationId = result?.operationId;
241
+ if (!operationId)
242
+ throw new Error('Operation ID not found');
243
+ return new Operation(this, operationId);
244
+ }
245
+ catch (error) {
246
+ throw new Error(`Error during smart contract bytecode execution: ${error}`);
247
+ }
194
248
  }
195
249
  async getOperationStatus(opId) {
196
250
  const client = await getClient();
@@ -204,23 +258,17 @@ export class MassaStationAccount {
204
258
  }
205
259
  async getNodeStatus() {
206
260
  const client = await getClient();
207
- const status = await client.status();
208
- return formatNodeStatusObject(status);
261
+ return client.getNodeStatus();
209
262
  }
210
263
  async getStorageKeys(address, filter = new Uint8Array(), final = true) {
211
264
  // This implementation is wrong. We should use massaStation instead of targeting the node directly.
212
265
  const client = await getClient();
213
- const filterBytes = typeof filter === 'string' ? strToBytes(filter) : filter;
214
- return client.getDataStoreKeys(address, filterBytes, final);
266
+ return client.getStorageKeys(address, filter, final);
215
267
  }
216
268
  async readStorage(address, keys, final = true) {
217
269
  // This implementation is wrong. We should use massaStation instead of targeting the node directly.
218
270
  const client = await getClient();
219
- const entries = keys.map((key) => ({
220
- key,
221
- address,
222
- }));
223
- return client.getDatastoreEntries(entries, final);
271
+ return client.readStorage(address, keys, final);
224
272
  }
225
273
  }
226
274
  //# sourceMappingURL=MassaStationAccount.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MassaStationAccount.js","sourceRoot":"","sources":["../../../src/massaStation/MassaStationAccount.ts"],"names":[],"mappings":"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","sourcesContent":["import { getRequest, postRequest } from './RequestHandler';\nimport { walletApiUrl, MASSA_STATION_URL } from './MassaStationWallet';\nimport {\n argsToBase64,\n base64ToByteArray,\n uint8ArrayToBase64,\n} from '../utils/base64';\nimport {\n DeploySCFunctionBody,\n ExecuteFunctionBody,\n MSAccountSignPayload,\n MSAccountSignResp,\n MSBalancesResp,\n MSSendOperationResp,\n} from './types';\nimport { errorHandler } from '../errors/utils/errorHandler';\nimport { operationType } from '../utils/constants';\nimport {\n Address,\n CallSCParams,\n DatastoreEntry,\n DeploySCParams,\n EventFilter,\n formatNodeStatusObject,\n Mas,\n MAX_GAS_CALL,\n Network,\n NodeStatusInfo,\n Operation,\n OperationOptions,\n OperationStatus,\n Provider,\n ReadSCData,\n ReadSCParams,\n SignedData,\n SignOptions,\n SmartContract,\n strToBytes,\n rpcTypes,\n StorageCost,\n formatMas,\n} from '@massalabs/massa-web3';\nimport { getClient, networkInfos } from './utils/network';\nimport { WalletName } from '../wallet';\nimport bs58check from 'bs58check';\n\n/**\n * This module contains the MassaStationAccount class. It is responsible for representing an account in\n * the MassaStation wallet.\n *\n * @remarks\n * This class provides methods to interact with MassaStation account's {@link balance} and to {@link sign} messages.\n *\n */\nexport class MassaStationAccount implements Provider {\n private _providerName = WalletName.MassaWallet;\n\n constructor(\n public address: string,\n public accountName: string,\n ) {}\n\n get providerName(): string {\n return this._providerName;\n }\n\n public async balance(final = false): Promise<bigint> {\n const { result } = await getRequest<MSBalancesResp>(\n `${MASSA_STATION_URL}massa/addresses?attributes=balance&addresses=${this.address}`,\n );\n\n const balances = result.addressesAttributes[this.address].balance;\n\n return Mas.fromString(final ? balances.final : balances.pending);\n }\n\n async balanceOf(\n addresses: string[],\n final = false,\n ): Promise<{ address: string; balance: bigint }[]> {\n const queryParams = new URLSearchParams();\n\n queryParams.append('attributes', 'balance');\n addresses.forEach((address) => {\n queryParams.append('addresses', address);\n });\n\n const { result } = await getRequest<MSBalancesResp>(\n `${MASSA_STATION_URL}massa/addresses?${queryParams.toString()}`,\n );\n\n return addresses.map((address) => {\n const balance = result.addressesAttributes[address].balance;\n\n return {\n address,\n balance: Mas.fromString(final ? balance.final : balance.pending),\n };\n });\n }\n\n public async sign(\n data: Uint8Array | string,\n opts?: SignOptions,\n ): Promise<SignedData> {\n const signData: MSAccountSignPayload = {\n description: opts?.description ?? '',\n message: typeof data === 'string' ? data : new TextDecoder().decode(data),\n DisplayData: opts?.displayData ?? true,\n };\n\n try {\n const { result } = await postRequest<MSAccountSignResp>(\n `${walletApiUrl()}/accounts/${this.accountName}/signMessage`,\n signData,\n );\n\n // MS Wallet encodes signature in base64... so we need to decode it en re-encode it in base58\n const signature = bs58check.encode(\n await base64ToByteArray(result.signature),\n );\n\n return {\n publicKey: result.publicKey,\n signature,\n };\n } catch (error) {\n throw errorHandler(operationType.Sign, error);\n }\n }\n\n private async minimalFee(): Promise<bigint> {\n const client = await getClient();\n return client.getMinimalFee();\n }\n\n private async rollOperation(\n type: operationType.BuyRolls | operationType.SellRolls,\n amount: bigint,\n opts?: OperationOptions,\n ): Promise<Operation> {\n let fee = opts?.fee ?? (await this.minimalFee());\n\n const body = {\n fee: fee.toString(),\n amount: amount.toString(),\n side: type === operationType.BuyRolls ? 'buy' : 'sell',\n };\n try {\n const { result } = await postRequest<MSSendOperationResp>(\n `${walletApiUrl()}/accounts/${this.accountName}/rolls`,\n body,\n );\n\n return new Operation(this, result.operationId);\n } catch (error) {\n throw errorHandler(type, error);\n }\n }\n\n public async buyRolls(\n amount: bigint,\n opts?: OperationOptions,\n ): Promise<Operation> {\n return this.rollOperation(operationType.BuyRolls, amount, opts);\n }\n\n public async sellRolls(\n amount: bigint,\n opts?: OperationOptions,\n ): Promise<Operation> {\n return this.rollOperation(operationType.SellRolls, amount, opts);\n }\n\n async transfer(\n to: Address | string,\n amount: bigint,\n opts?: OperationOptions,\n ): Promise<Operation> {\n const fee = opts?.fee ?? (await this.minimalFee());\n\n const body = {\n fee: fee.toString(),\n amount: amount.toString(),\n recipientAddress: to.toString(),\n };\n\n try {\n const { result } = await postRequest<MSSendOperationResp>(\n `${walletApiUrl()}/accounts/${this.accountName}/transfer`,\n body,\n );\n\n return new Operation(this, result.operationId);\n } catch (error) {\n throw errorHandler(operationType.SendTransaction, error);\n }\n }\n\n public async callSC(params: CallSCParams): Promise<Operation> {\n // convert parameter to base64\n let args = '';\n if (params.parameter) {\n if (params.parameter instanceof Uint8Array) {\n args = uint8ArrayToBase64(params.parameter);\n } else {\n args = argsToBase64(params.parameter);\n }\n }\n\n let fee = params?.fee ?? (await this.minimalFee());\n\n const body: ExecuteFunctionBody = {\n nickname: this.accountName,\n name: params.func,\n at: params.target,\n args,\n coins: params.coins ? Number(params.coins) : 0,\n fee: fee.toString(),\n // If maxGas is not provided, estimation will be done by MS\n maxGas: params.maxGas ? params.maxGas.toString() : '',\n async: true,\n };\n\n try {\n const { result } = await postRequest<MSSendOperationResp>(\n `${MASSA_STATION_URL}cmd/executeFunction`,\n body,\n );\n\n return new Operation(this, result.operationId);\n } catch (error) {\n throw errorHandler('callSmartContract', error);\n }\n }\n\n public async networkInfos(): Promise<Network> {\n return networkInfos();\n }\n\n public async readSC(params: ReadSCParams): Promise<ReadSCData> {\n // Gas amount check\n if (params.maxGas && params.maxGas > MAX_GAS_CALL) {\n throw new Error(\n `\n The gas submitted ${params.maxGas.toString()} exceeds the max. allowed block gas of \n ${MAX_GAS_CALL.toString()}\n `,\n );\n }\n\n const client = await getClient();\n\n const fee = params?.fee ?? (await this.minimalFee());\n const caller = params.caller ?? this.address;\n const args = params.parameter ?? new Uint8Array();\n const readOnlyParams = {\n ...params,\n caller,\n fee,\n parameter:\n args instanceof Uint8Array ? args : Uint8Array.from(args.serialize()),\n };\n // This implementation is wrong. We should use massaStation instead of targeting the node directly.\n return client.executeReadOnlyCall(readOnlyParams);\n }\n\n public async deploySC(params: DeploySCParams): Promise<SmartContract> {\n try {\n const args = params.parameter ?? new Uint8Array();\n const parameters = args instanceof Uint8Array ? args : args.serialize();\n const coins = params.coins ?? 0n; // If coins is undefined, some vesions of station will have a panic\n const maxCoins =\n params.maxCoins ??\n StorageCost.smartContractDeploy(params.byteCode.length) + coins;\n const fee = params.fee || (await this.minimalFee());\n\n const body: DeploySCFunctionBody = {\n nickname: this.accountName,\n smartContract: uint8ArrayToBase64(params.byteCode),\n maxCoins: maxCoins.toString(), // SmartContract deployment costs\n coins: coins.toString(),\n fee: fee.toString(),\n parameters: uint8ArrayToBase64(parameters),\n description: `${formatMas(\n coins,\n )} $MAS coins allocated to datastore + ${formatMas(\n fee,\n )} $MAS fee for operation`,\n };\n\n const { result } = await postRequest<MSSendOperationResp>(\n `${MASSA_STATION_URL}cmd/deploySC`,\n body,\n );\n\n const operationId = result?.operationId;\n\n if (!operationId) throw new Error('Operation ID not found');\n\n const operation = new Operation(this, operationId);\n const deployedAddress = await operation.getDeployedAddress(\n params.waitFinalExecution,\n );\n\n return new SmartContract(this, deployedAddress);\n } catch (error) {\n throw new Error(`Error during smart contract deployment: ${error}`);\n }\n }\n\n executeSC(): Promise<Operation> {\n throw new Error('Method not implemented.');\n }\n\n public async getOperationStatus(opId: string): Promise<OperationStatus> {\n const client = await getClient();\n // This implementation is wrong. We should use massaStation instead of targeting the node directly.\n return client.getOperationStatus(opId);\n }\n\n public async getEvents(filter: EventFilter): Promise<rpcTypes.OutputEvents> {\n const client = await getClient();\n // This implementation is wrong. We should use massaStation instead of targeting the node directly.\n return client.getEvents(filter);\n }\n\n public async getNodeStatus(): Promise<NodeStatusInfo> {\n const client = await getClient();\n const status = await client.status();\n return formatNodeStatusObject(status);\n }\n\n public async getStorageKeys(\n address: string,\n filter: Uint8Array | string = new Uint8Array(),\n final = true,\n ): Promise<Uint8Array[]> {\n // This implementation is wrong. We should use massaStation instead of targeting the node directly.\n const client = await getClient();\n const filterBytes: Uint8Array =\n typeof filter === 'string' ? strToBytes(filter) : filter;\n return client.getDataStoreKeys(address, filterBytes, final);\n }\n\n public async readStorage(\n address: string,\n keys: Uint8Array[] | string[],\n final = true,\n ): Promise<(Uint8Array | null)[]> {\n // This implementation is wrong. We should use massaStation instead of targeting the node directly.\n const client = await getClient();\n const entries: DatastoreEntry[] = keys.map((key) => ({\n key,\n address,\n }));\n return client.getDatastoreEntries(entries, final);\n }\n}\n"]}
1
+ {"version":3,"file":"MassaStationAccount.js","sourceRoot":"","sources":["../../../src/massaStation/MassaStationAccount.ts"],"names":[],"mappings":"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","sourcesContent":["import { getRequest, postRequest } from './RequestHandler';\nimport { walletApiUrl, MASSA_STATION_URL } from './MassaStationWallet';\nimport {\n argsToBase64,\n base64ToByteArray,\n uint8ArrayToBase64,\n} from '../utils/base64';\nimport {\n DeploySCFunctionBody,\n ExecuteFunctionBody,\n ExecuteSCBody,\n MSAccountSignPayload,\n MSAccountSignResp,\n MSBalancesResp,\n MSDeploySCParams,\n MSExecuteScParams,\n MSSendOperationResp,\n} from './types';\nimport { errorHandler } from '../errors/utils/errorHandler';\nimport { operationType } from '../utils/constants';\nimport {\n Address,\n CallSCParams,\n EventFilter,\n Mas,\n MAX_GAS_CALL,\n Network,\n NodeStatusInfo,\n Operation,\n OperationOptions,\n OperationStatus,\n Provider,\n ReadSCData,\n ReadSCParams,\n SignedData,\n SignOptions,\n SmartContract,\n rpcTypes,\n StorageCost,\n formatMas,\n DEPLOYER_BYTECODE,\n populateDatastore,\n} from '@massalabs/massa-web3';\nimport { getClient, networkInfos } from './utils/network';\nimport { WalletName } from '../wallet';\nimport bs58check from 'bs58check';\n\n/**\n * This module contains the MassaStationAccount class. It is responsible for representing an account in\n * the MassaStation wallet.\n *\n * @remarks\n * This class provides methods to interact with MassaStation account's {@link balance} and to {@link sign} messages.\n *\n */\nexport class MassaStationAccount implements Provider {\n private _providerName = WalletName.MassaWallet;\n\n constructor(\n public address: string,\n public accountName: string,\n ) {}\n\n get providerName(): string {\n return this._providerName;\n }\n\n public async balance(final = false): Promise<bigint> {\n const { result } = await getRequest<MSBalancesResp>(\n `${MASSA_STATION_URL}massa/addresses?attributes=balance&addresses=${this.address}`,\n );\n\n const balances = result.addressesAttributes[this.address].balance;\n\n return Mas.fromString(final ? balances.final : balances.pending);\n }\n\n async balanceOf(\n addresses: string[],\n final = false,\n ): Promise<{ address: string; balance: bigint }[]> {\n const queryParams = new URLSearchParams();\n\n queryParams.append('attributes', 'balance');\n addresses.forEach((address) => {\n queryParams.append('addresses', address);\n });\n\n const { result } = await getRequest<MSBalancesResp>(\n `${MASSA_STATION_URL}massa/addresses?${queryParams.toString()}`,\n );\n\n return addresses.map((address) => {\n const balance = result.addressesAttributes[address].balance;\n\n return {\n address,\n balance: Mas.fromString(final ? balance.final : balance.pending),\n };\n });\n }\n\n public async sign(\n data: Uint8Array | string,\n opts?: SignOptions,\n ): Promise<SignedData> {\n const signData: MSAccountSignPayload = {\n description: opts?.description ?? '',\n message: typeof data === 'string' ? data : new TextDecoder().decode(data),\n DisplayData: opts?.displayData ?? true,\n };\n\n try {\n const { result } = await postRequest<MSAccountSignResp>(\n `${walletApiUrl()}/accounts/${this.accountName}/signMessage`,\n signData,\n );\n\n // MS Wallet encodes signature in base64... so we need to decode it en re-encode it in base58\n const signature = bs58check.encode(\n await base64ToByteArray(result.signature),\n );\n\n return {\n publicKey: result.publicKey,\n signature,\n };\n } catch (error) {\n throw errorHandler(operationType.Sign, error);\n }\n }\n\n private async minimalFee(): Promise<bigint> {\n const client = await getClient();\n const { minimalFee } = await client.networkInfos();\n return minimalFee;\n }\n\n private async rollOperation(\n type: operationType.BuyRolls | operationType.SellRolls,\n amount: bigint,\n opts?: OperationOptions,\n ): Promise<Operation> {\n let fee = opts?.fee ?? (await this.minimalFee());\n\n const body = {\n fee: fee.toString(),\n amount: amount.toString(),\n side: type === operationType.BuyRolls ? 'buy' : 'sell',\n };\n try {\n const { result } = await postRequest<MSSendOperationResp>(\n `${walletApiUrl()}/accounts/${this.accountName}/rolls`,\n body,\n );\n\n return new Operation(this, result.operationId);\n } catch (error) {\n throw errorHandler(type, error);\n }\n }\n\n public async buyRolls(\n amount: bigint,\n opts?: OperationOptions,\n ): Promise<Operation> {\n return this.rollOperation(operationType.BuyRolls, amount, opts);\n }\n\n public async sellRolls(\n amount: bigint,\n opts?: OperationOptions,\n ): Promise<Operation> {\n return this.rollOperation(operationType.SellRolls, amount, opts);\n }\n\n async transfer(\n to: Address | string,\n amount: bigint,\n opts?: OperationOptions,\n ): Promise<Operation> {\n const fee = opts?.fee ?? (await this.minimalFee());\n\n const body = {\n fee: fee.toString(),\n amount: amount.toString(),\n recipientAddress: to.toString(),\n };\n\n try {\n const { result } = await postRequest<MSSendOperationResp>(\n `${walletApiUrl()}/accounts/${this.accountName}/transfer`,\n body,\n );\n\n return new Operation(this, result.operationId);\n } catch (error) {\n throw errorHandler(operationType.SendTransaction, error);\n }\n }\n\n public async callSC(params: CallSCParams): Promise<Operation> {\n // convert parameter to base64\n let args = '';\n if (params.parameter) {\n if (params.parameter instanceof Uint8Array) {\n args = uint8ArrayToBase64(params.parameter);\n } else {\n args = argsToBase64(params.parameter);\n }\n }\n\n let fee = params?.fee ?? (await this.minimalFee());\n\n const body: ExecuteFunctionBody = {\n nickname: this.accountName,\n name: params.func,\n at: params.target,\n args,\n coins: params.coins ? Number(params.coins) : 0,\n fee: fee.toString(),\n // If maxGas is not provided, estimation will be done by MS\n maxGas: params.maxGas ? params.maxGas.toString() : '',\n async: true,\n };\n\n try {\n const { result } = await postRequest<MSSendOperationResp>(\n `${MASSA_STATION_URL}cmd/executeFunction`,\n body,\n );\n\n return new Operation(this, result.operationId);\n } catch (error) {\n throw errorHandler('callSmartContract', error);\n }\n }\n\n public async networkInfos(): Promise<Network> {\n return networkInfos();\n }\n\n public async readSC(params: ReadSCParams): Promise<ReadSCData> {\n // Gas amount check\n if (params.maxGas && params.maxGas > MAX_GAS_CALL) {\n throw new Error(\n `\n The gas submitted ${params.maxGas.toString()} exceeds the max. allowed block gas of \n ${MAX_GAS_CALL.toString()}\n `,\n );\n }\n\n const client = await getClient();\n\n const fee = params?.fee ?? (await this.minimalFee());\n const caller = params.caller ?? this.address;\n const args = params.parameter ?? new Uint8Array();\n const readOnlyParams = {\n ...params,\n caller,\n fee,\n parameter:\n args instanceof Uint8Array ? args : Uint8Array.from(args.serialize()),\n };\n // This implementation is wrong. We should use massaStation instead of targeting the node directly.\n return client.readSC(readOnlyParams);\n }\n\n public async deploySC(params: MSDeploySCParams): Promise<SmartContract> {\n try {\n const args = params.parameter ?? new Uint8Array();\n const parameters = args instanceof Uint8Array ? args : args.serialize();\n const coins = params.coins ?? 0n; // If coins is undefined, some vesions of station will have a panic\n const maxCoins =\n params.maxCoins ??\n StorageCost.smartContractDeploy(params.byteCode.length) + coins;\n const fee = params.fee ?? (await this.minimalFee());\n\n let maxGas = params.maxGas;\n if (!maxGas) {\n const client = await getClient();\n const datastore = populateDatastore([\n {\n data: params.byteCode,\n args: parameters,\n coins,\n },\n ]);\n\n maxGas = await client.executeSCGasEstimation({\n ...params,\n byteCode: DEPLOYER_BYTECODE,\n datastore,\n caller: this.address,\n });\n }\n\n const description =\n params.description ??\n `${formatMas(coins)} MAS coins allocated to new smart contract`;\n\n const body: DeploySCFunctionBody = {\n nickname: this.accountName,\n smartContract: uint8ArrayToBase64(params.byteCode),\n coins: coins.toString(),\n parameters: uint8ArrayToBase64(parameters),\n maxCoins: maxCoins.toString(),\n fee: fee.toString(),\n maxGas: maxGas.toString(),\n description,\n };\n\n const { result } = await postRequest<MSSendOperationResp>(\n `${MASSA_STATION_URL}cmd/deploySC`,\n body,\n );\n\n const operationId = result?.operationId;\n\n if (!operationId) throw new Error('Operation ID not found');\n\n const operation = new Operation(this, operationId);\n const deployedAddress = await operation.getDeployedAddress(\n params.waitFinalExecution,\n );\n\n return new SmartContract(this, deployedAddress);\n } catch (error) {\n throw new Error(`Error during smart contract deployment: ${error}`);\n }\n }\n\n async executeSC(params: MSExecuteScParams): Promise<Operation> {\n try {\n const fee = params.fee ?? (await this.minimalFee());\n const maxCoins = params.maxCoins ?? 0n;\n\n let maxGas = params.maxGas;\n if (!maxGas) {\n const client = await getClient();\n maxGas = await client.executeSCGasEstimation({\n ...params,\n caller: this.address,\n });\n }\n\n const datastore: [string, string][] = [];\n if (params.datastore) {\n for (const [key, value] of params.datastore.entries()) {\n datastore.push([uint8ArrayToBase64(key), uint8ArrayToBase64(value)]);\n }\n }\n\n const body: ExecuteSCBody = {\n nickname: this.accountName,\n bytecode: uint8ArrayToBase64(params.byteCode),\n datastore,\n maxCoins: maxCoins.toString(),\n fee: fee.toString(),\n description: params.description ?? '',\n };\n\n const { result } = await postRequest<MSSendOperationResp>(\n `${MASSA_STATION_URL}cmd/executeSC`,\n body,\n );\n\n const operationId = result?.operationId;\n\n if (!operationId) throw new Error('Operation ID not found');\n\n return new Operation(this, operationId);\n } catch (error) {\n throw new Error(\n `Error during smart contract bytecode execution: ${error}`,\n );\n }\n }\n\n public async getOperationStatus(opId: string): Promise<OperationStatus> {\n const client = await getClient();\n // This implementation is wrong. We should use massaStation instead of targeting the node directly.\n return client.getOperationStatus(opId);\n }\n\n public async getEvents(filter: EventFilter): Promise<rpcTypes.OutputEvents> {\n const client = await getClient();\n // This implementation is wrong. We should use massaStation instead of targeting the node directly.\n return client.getEvents(filter);\n }\n\n public async getNodeStatus(): Promise<NodeStatusInfo> {\n const client = await getClient();\n return client.getNodeStatus();\n }\n\n public async getStorageKeys(\n address: string,\n filter: Uint8Array | string = new Uint8Array(),\n final = true,\n ): Promise<Uint8Array[]> {\n // This implementation is wrong. We should use massaStation instead of targeting the node directly.\n const client = await getClient();\n return client.getStorageKeys(address, filter, final);\n }\n\n public async readStorage(\n address: string,\n keys: Uint8Array[] | string[],\n final = true,\n ): Promise<(Uint8Array | null)[]> {\n // This implementation is wrong. We should use massaStation instead of targeting the node directly.\n const client = await getClient();\n return client.readStorage(address, keys, final);\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
- import { NetworkName } from '@massalabs/massa-web3';
1
+ import { DeploySCParams, ExecuteScParams, NetworkName } from '@massalabs/massa-web3';
2
2
  export type ExecuteFunctionBody = {
3
3
  nickname: string;
4
4
  name: string;
@@ -17,6 +17,16 @@ export type DeploySCFunctionBody = {
17
17
  parameters: string;
18
18
  fee: string;
19
19
  description: string;
20
+ maxGas?: string;
21
+ };
22
+ export type ExecuteSCBody = {
23
+ nickname: string;
24
+ bytecode: string;
25
+ datastore: [string, string][];
26
+ maxCoins: string;
27
+ fee: string;
28
+ description?: string;
29
+ maxGas?: string;
20
30
  };
21
31
  export type PluginInfo = {
22
32
  author: string;
@@ -106,4 +116,10 @@ export interface SignRule {
106
116
  export type AddUpdateSignRuleResponse = {
107
117
  id: string;
108
118
  };
119
+ export type MSDeploySCParams = DeploySCParams & {
120
+ description?: string;
121
+ };
122
+ export type MSExecuteScParams = ExecuteScParams & {
123
+ description?: string;
124
+ };
109
125
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/massaStation/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/massaStation/types.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/massaStation/types.ts"],"names":[],"mappings":"AAwCA,MAAM,CAAN,IAAY,yBAGX;AAHD,WAAY,yBAAyB;IACnC,sCAAS,CAAA;IACT,oDAAuB,CAAA;AACzB,CAAC,EAHW,yBAAyB,KAAzB,yBAAyB,QAGpC;AAkED,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,6DAAiD,CAAA;IACjD,kCAAsB,CAAA;AACxB,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB","sourcesContent":["import { NetworkName } from '@massalabs/massa-web3';\n\nexport type ExecuteFunctionBody = {\n nickname: string;\n name: string;\n at: string;\n args?: string;\n fee?: string;\n maxGas?: string;\n coins?: number; // number type keeped for backward compatibility\n async?: boolean;\n};\n\nexport type DeploySCFunctionBody = {\n nickname: string;\n smartContract: string;\n maxCoins: string;\n coins: string;\n parameters: string;\n fee: string;\n description: string;\n};\n\nexport type PluginInfo = {\n author: string;\n description: string;\n home: string;\n name: string;\n status: string;\n version: string;\n};\n\nexport type PluginManagerBody = PluginInfo[];\n\nexport type MSNetworksResp = {\n chainId: number | string;\n network: NetworkName;\n url: string;\n};\n\nexport enum MassaStationAccountStatus {\n OK = 'ok',\n CORRUPTED = 'corrupted',\n}\n\nexport type MSAccountsResp = MSAccount[];\n\n/**\n * This interface represents the payload returned by making a call to MassaStation's accounts url.\n */\nexport type MSAccount = {\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\n/**\n * This interface represents the payload returned by making a call to MassaStation's get balances url.\n */\nexport type MSBalancesResp = {\n addressesAttributes: {\n [key: string]: {\n balance: {\n pending: string;\n final: string;\n };\n };\n };\n};\n\n/**\n * Payload for a sign message request.\n */\nexport type MSAccountSignPayload = {\n description: string;\n message: string;\n DisplayData: boolean;\n};\n\n/**\n * Response from the content script after a signing operation.\n */\nexport type MSAccountSignResp = {\n /** Public key of the account */\n publicKey: string;\n /** Signed message data */\n signature: string;\n};\n\nexport type MSSendOperationResp = {\n operationId: string;\n};\n\nexport interface AccountConfig {\n signRules: SignRule[];\n}\n\nexport interface Config {\n accounts: {\n [key: string]: AccountConfig;\n };\n}\n\nexport enum RuleType {\n DisablePasswordPrompt = 'DISABLE_PASSWORD_PROMPT',\n AutoSign = 'AUTO_SIGN',\n}\n\nexport interface SignRule {\n id?: string;\n ruleType: RuleType;\n name?: string;\n contract: string;\n enabled: boolean;\n}\n\nexport type AddUpdateSignRuleResponse = {\n id: string;\n};\n"]}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/massaStation/types.ts"],"names":[],"mappings":"AAuDA,MAAM,CAAN,IAAY,yBAGX;AAHD,WAAY,yBAAyB;IACnC,sCAAS,CAAA;IACT,oDAAuB,CAAA;AACzB,CAAC,EAHW,yBAAyB,KAAzB,yBAAyB,QAGpC;AAkED,MAAM,CAAN,IAAY,QAGX;AAHD,WAAY,QAAQ;IAClB,6DAAiD,CAAA;IACjD,kCAAsB,CAAA;AACxB,CAAC,EAHW,QAAQ,KAAR,QAAQ,QAGnB","sourcesContent":["import {\n DeploySCParams,\n ExecuteScParams,\n NetworkName,\n} from '@massalabs/massa-web3';\n\nexport type ExecuteFunctionBody = {\n nickname: string;\n name: string;\n at: string;\n args?: string;\n fee?: string;\n maxGas?: string;\n coins?: number; // number type keeped for backward compatibility\n async?: boolean;\n};\n\nexport type DeploySCFunctionBody = {\n nickname: string;\n smartContract: string;\n maxCoins: string;\n coins: string;\n parameters: string;\n fee: string;\n description: string;\n maxGas?: string;\n};\n\nexport type ExecuteSCBody = {\n nickname: string;\n bytecode: string;\n datastore: [string, string][];\n maxCoins: string;\n fee: string;\n description?: string;\n maxGas?: string;\n};\n\nexport type PluginInfo = {\n author: string;\n description: string;\n home: string;\n name: string;\n status: string;\n version: string;\n};\n\nexport type PluginManagerBody = PluginInfo[];\n\nexport type MSNetworksResp = {\n chainId: number | string;\n network: NetworkName;\n url: string;\n};\n\nexport enum MassaStationAccountStatus {\n OK = 'ok',\n CORRUPTED = 'corrupted',\n}\n\nexport type MSAccountsResp = MSAccount[];\n\n/**\n * This interface represents the payload returned by making a call to MassaStation's accounts url.\n */\nexport type MSAccount = {\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\n/**\n * This interface represents the payload returned by making a call to MassaStation's get balances url.\n */\nexport type MSBalancesResp = {\n addressesAttributes: {\n [key: string]: {\n balance: {\n pending: string;\n final: string;\n };\n };\n };\n};\n\n/**\n * Payload for a sign message request.\n */\nexport type MSAccountSignPayload = {\n description: string;\n message: string;\n DisplayData: boolean;\n};\n\n/**\n * Response from the content script after a signing operation.\n */\nexport type MSAccountSignResp = {\n /** Public key of the account */\n publicKey: string;\n /** Signed message data */\n signature: string;\n};\n\nexport type MSSendOperationResp = {\n operationId: string;\n};\n\nexport interface AccountConfig {\n signRules: SignRule[];\n}\n\nexport interface Config {\n accounts: {\n [key: string]: AccountConfig;\n };\n}\n\nexport enum RuleType {\n DisablePasswordPrompt = 'DISABLE_PASSWORD_PROMPT',\n AutoSign = 'AUTO_SIGN',\n}\n\nexport interface SignRule {\n id?: string;\n ruleType: RuleType;\n name?: string;\n contract: string;\n enabled: boolean;\n}\n\nexport type AddUpdateSignRuleResponse = {\n id: string;\n};\n\nexport type MSDeploySCParams = DeploySCParams & {\n description?: string;\n};\n\nexport type MSExecuteScParams = ExecuteScParams & {\n description?: string;\n};\n"]}
@@ -1,4 +1,4 @@
1
- import { JsonRPCClient, Network } from '@massalabs/massa-web3';
1
+ import { JsonRpcPublicProvider, Network } from '@massalabs/massa-web3';
2
2
  export declare function networkInfos(): Promise<Network>;
3
- export declare function getClient(): Promise<JsonRPCClient>;
3
+ export declare function getClient(): Promise<JsonRpcPublicProvider>;
4
4
  //# sourceMappingURL=network.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../../../src/massaStation/utils/network.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,aAAa,EACb,OAAO,EAGR,MAAM,uBAAuB,CAAC;AAW/B,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CA4BrD;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,aAAa,CAAC,CAMxD"}
1
+ {"version":3,"file":"network.d.ts","sourceRoot":"","sources":["../../../../src/massaStation/utils/network.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EACrB,OAAO,EAER,MAAM,uBAAuB,CAAC;AAW/B,wBAAsB,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC,CAkBrD;AAED,wBAAsB,SAAS,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAMhE"}
@@ -1,4 +1,4 @@
1
- import { CHAIN_ID, JsonRPCClient, NetworkName, PublicApiUrl, } from '@massalabs/massa-web3';
1
+ import { JsonRpcPublicProvider, PublicApiUrl, } from '@massalabs/massa-web3';
2
2
  import { MASSA_STATION_URL } from '../MassaStationWallet';
3
3
  import { getRequest } from '../RequestHandler';
4
4
  import { isStandalone } from './standalone';
@@ -9,26 +9,16 @@ let rpcUrl;
9
9
  export async function networkInfos() {
10
10
  if (isStandalone()) {
11
11
  rpcUrl = PublicApiUrl.Buildnet;
12
- client = new JsonRPCClient(rpcUrl);
13
- return {
14
- name: NetworkName.Buildnet,
15
- url: rpcUrl,
16
- chainId: CHAIN_ID.Buildnet,
17
- minimalFee: await client.getMinimalFee(),
18
- };
12
+ client = JsonRpcPublicProvider.fromRPCUrl(rpcUrl);
13
+ return client.networkInfos();
19
14
  }
20
15
  const { result } = await getRequest(`${MASSA_STATION_URL}massa/node`);
21
16
  const url = result.url;
22
17
  if (!client || rpcUrl !== url) {
23
- client = new JsonRPCClient(url);
18
+ client = JsonRpcPublicProvider.fromRPCUrl(url);
24
19
  rpcUrl = url;
25
20
  }
26
- return {
27
- name: result.network,
28
- url,
29
- chainId: BigInt(result.chainId),
30
- minimalFee: await client.getMinimalFee(),
31
- };
21
+ return client.networkInfos();
32
22
  }
33
23
  export async function getClient() {
34
24
  if (!client) {
@@ -1 +1 @@
1
- {"version":3,"file":"network.js","sourceRoot":"","sources":["../../../../src/massaStation/utils/network.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,QAAQ,EACR,aAAa,EAEb,WAAW,EACX,YAAY,GACb,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,+CAA+C;AAC/C,IAAI,MAAqB,CAAC;AAC1B,0CAA0C;AAC1C,IAAI,MAAc,CAAC;AAEnB,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,YAAY,EAAE,EAAE;QAClB,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC;QAC/B,MAAM,GAAG,IAAI,aAAa,CAAC,MAAM,CAAC,CAAC;QACnC,OAAO;YACL,IAAI,EAAE,WAAW,CAAC,QAAQ;YAC1B,GAAG,EAAE,MAAM;YACX,OAAO,EAAE,QAAQ,CAAC,QAAQ;YAC1B,UAAU,EAAE,MAAM,MAAM,CAAC,aAAa,EAAE;SACzC,CAAC;KACH;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,UAAU,CACjC,GAAG,iBAAiB,YAAY,CACjC,CAAC;IAEF,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;IACvB,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,GAAG,EAAE;QAC7B,MAAM,GAAG,IAAI,aAAa,CAAC,GAAG,CAAC,CAAC;QAChC,MAAM,GAAG,GAAG,CAAC;KACd;IAED,OAAO;QACL,IAAI,EAAE,MAAM,CAAC,OAAO;QACpB,GAAG;QACH,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC;QAC/B,UAAU,EAAE,MAAM,MAAM,CAAC,aAAa,EAAE;KACzC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,IAAI,CAAC,MAAM,EAAE;QACX,yBAAyB;QACzB,MAAM,YAAY,EAAE,CAAC;KACtB;IACD,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import {\n CHAIN_ID,\n JsonRPCClient,\n Network,\n NetworkName,\n PublicApiUrl,\n} from '@massalabs/massa-web3';\nimport { MSNetworksResp } from '../types';\nimport { MASSA_STATION_URL } from '../MassaStationWallet';\nimport { getRequest } from '../RequestHandler';\nimport { isStandalone } from './standalone';\n\n// Use client singleton to benefit from caching\nlet client: JsonRPCClient;\n// Use rpcUrl to check if node has changed\nlet rpcUrl: string;\n\nexport async function networkInfos(): Promise<Network> {\n if (isStandalone()) {\n rpcUrl = PublicApiUrl.Buildnet;\n client = new JsonRPCClient(rpcUrl);\n return {\n name: NetworkName.Buildnet,\n url: rpcUrl,\n chainId: CHAIN_ID.Buildnet,\n minimalFee: await client.getMinimalFee(),\n };\n }\n\n const { result } = await getRequest<MSNetworksResp>(\n `${MASSA_STATION_URL}massa/node`,\n );\n\n const url = result.url;\n if (!client || rpcUrl !== url) {\n client = new JsonRPCClient(url);\n rpcUrl = url;\n }\n\n return {\n name: result.network,\n url,\n chainId: BigInt(result.chainId),\n minimalFee: await client.getMinimalFee(),\n };\n}\n\nexport async function getClient(): Promise<JsonRPCClient> {\n if (!client) {\n // this initialize client\n await networkInfos();\n }\n return client;\n}\n"]}
1
+ {"version":3,"file":"network.js","sourceRoot":"","sources":["../../../../src/massaStation/utils/network.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,qBAAqB,EAErB,YAAY,GACb,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,+CAA+C;AAC/C,IAAI,MAA6B,CAAC;AAClC,0CAA0C;AAC1C,IAAI,MAAc,CAAC;AAEnB,MAAM,CAAC,KAAK,UAAU,YAAY;IAChC,IAAI,YAAY,EAAE,EAAE;QAClB,MAAM,GAAG,YAAY,CAAC,QAAQ,CAAC;QAC/B,MAAM,GAAG,qBAAqB,CAAC,UAAU,CAAC,MAAM,CAA0B,CAAC;QAC3E,OAAO,MAAM,CAAC,YAAY,EAAE,CAAC;KAC9B;IAED,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,UAAU,CACjC,GAAG,iBAAiB,YAAY,CACjC,CAAC;IAEF,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;IACvB,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,GAAG,EAAE;QAC7B,MAAM,GAAG,qBAAqB,CAAC,UAAU,CAAC,GAAG,CAA0B,CAAC;QACxE,MAAM,GAAG,GAAG,CAAC;KACd;IAED,OAAO,MAAM,CAAC,YAAY,EAAE,CAAC;AAC/B,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,SAAS;IAC7B,IAAI,CAAC,MAAM,EAAE;QACX,yBAAyB;QACzB,MAAM,YAAY,EAAE,CAAC;KACtB;IACD,OAAO,MAAM,CAAC;AAChB,CAAC","sourcesContent":["import {\n JsonRpcPublicProvider,\n Network,\n PublicApiUrl,\n} from '@massalabs/massa-web3';\nimport { MSNetworksResp } from '../types';\nimport { MASSA_STATION_URL } from '../MassaStationWallet';\nimport { getRequest } from '../RequestHandler';\nimport { isStandalone } from './standalone';\n\n// Use client singleton to benefit from caching\nlet client: JsonRpcPublicProvider;\n// Use rpcUrl to check if node has changed\nlet rpcUrl: string;\n\nexport async function networkInfos(): Promise<Network> {\n if (isStandalone()) {\n rpcUrl = PublicApiUrl.Buildnet;\n client = JsonRpcPublicProvider.fromRPCUrl(rpcUrl) as JsonRpcPublicProvider;\n return client.networkInfos();\n }\n\n const { result } = await getRequest<MSNetworksResp>(\n `${MASSA_STATION_URL}massa/node`,\n );\n\n const url = result.url;\n if (!client || rpcUrl !== url) {\n client = JsonRpcPublicProvider.fromRPCUrl(url) as JsonRpcPublicProvider;\n rpcUrl = url;\n }\n\n return client.networkInfos();\n}\n\nexport async function getClient(): Promise<JsonRpcPublicProvider> {\n if (!client) {\n // this initialize client\n await networkInfos();\n }\n return client;\n}\n"]}
@@ -1,5 +1,5 @@
1
1
  import { MetaMaskInpageProvider } from '@metamask/providers';
2
- import { Address, CallSCParams, DeploySCParams, EventFilter, Network, NodeStatusInfo, Operation, OperationOptions, OperationStatus, Provider, ReadSCData, ReadSCParams, SignedData, SmartContract, rpcTypes } from '@massalabs/massa-web3';
2
+ import { Address, CallSCParams, DeploySCParams, EventFilter, Network, NodeStatusInfo, Operation, OperationOptions, OperationStatus, Provider, ReadSCData, ReadSCParams, SignedData, SmartContract, rpcTypes, ExecuteScParams } from '@massalabs/massa-web3';
3
3
  export declare class MetamaskAccount implements Provider {
4
4
  readonly address: string;
5
5
  private readonly provider;
@@ -25,6 +25,6 @@ export declare class MetamaskAccount implements Provider {
25
25
  getNodeStatus(): Promise<NodeStatusInfo>;
26
26
  getStorageKeys(address: string, filter?: Uint8Array | string, final?: boolean): Promise<Uint8Array[]>;
27
27
  readStorage(address: string, keys: Uint8Array[] | string[], final?: boolean): Promise<(Uint8Array | null)[]>;
28
- executeSC(): Promise<Operation>;
28
+ executeSC(params: ExecuteScParams): Promise<Operation>;
29
29
  }
30
30
  //# sourceMappingURL=MetamaskAccount.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"MetamaskAccount.d.ts","sourceRoot":"","sources":["../../../src/metamaskSnap/MetamaskAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EACL,OAAO,EACP,YAAY,EAEZ,cAAc,EACd,WAAW,EAGX,OAAO,EACP,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,UAAU,EACV,aAAa,EAEb,QAAQ,EAET,MAAM,uBAAuB,CAAC;AAsB/B,qBAAa,eAAgB,YAAW,QAAQ;aAE5B,OAAO,EAAE,MAAM;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADT,OAAO,EAAE,MAAM,EACd,QAAQ,EAAE,sBAAsB;IAGnD,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAEK,OAAO,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAOvC,SAAS,CACb,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,UAAQ,GACZ,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAY5C,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAIhC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;YAgB9C,mBAAmB;IA0B3B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC;IAIrE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC;IAItE,QAAQ,CACZ,EAAE,EAAE,OAAO,GAAG,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,gBAAgB,GACtB,OAAO,CAAC,SAAS,CAAC;IAiBf,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC;IA8BhD,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAwBjD,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAqCxD,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAK1D,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAK9D,aAAa,IAAI,OAAO,CAAC,cAAc,CAAC;IAMxC,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,UAAU,GAAG,MAAyB,EAC9C,KAAK,UAAO,GACX,OAAO,CAAC,UAAU,EAAE,CAAC;IAOlB,WAAW,CACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,EAC7B,KAAK,UAAO,GACX,OAAO,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;IASjC,SAAS,IAAI,OAAO,CAAC,SAAS,CAAC;CAGhC"}
1
+ {"version":3,"file":"MetamaskAccount.d.ts","sourceRoot":"","sources":["../../../src/metamaskSnap/MetamaskAccount.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EACL,OAAO,EACP,YAAY,EAEZ,cAAc,EACd,WAAW,EAGX,OAAO,EACP,cAAc,EACd,SAAS,EACT,gBAAgB,EAChB,eAAe,EACf,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,UAAU,EACV,aAAa,EAEb,QAAQ,EAER,eAAe,EAChB,MAAM,uBAAuB,CAAC;AAwB/B,qBAAa,eAAgB,YAAW,QAAQ;aAE5B,OAAO,EAAE,MAAM;IAC/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBADT,OAAO,EAAE,MAAM,EACd,QAAQ,EAAE,sBAAsB;IAGnD,IAAI,WAAW,IAAI,MAAM,CAExB;IAED,IAAI,YAAY,IAAI,MAAM,CAEzB;IAEK,OAAO,CAAC,KAAK,UAAQ,GAAG,OAAO,CAAC,MAAM,CAAC;IAOvC,SAAS,CACb,SAAS,EAAE,MAAM,EAAE,EACnB,KAAK,UAAQ,GACZ,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAY5C,YAAY,IAAI,OAAO,CAAC,OAAO,CAAC;IAIhC,IAAI,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;YAgB9C,mBAAmB;IA0B3B,QAAQ,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC;IAIrE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,SAAS,CAAC;IAItE,QAAQ,CACZ,EAAE,EAAE,OAAO,GAAG,MAAM,EACpB,MAAM,EAAE,MAAM,EACd,IAAI,CAAC,EAAE,gBAAgB,GACtB,OAAO,CAAC,SAAS,CAAC;IAiBf,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC;IA8BhD,MAAM,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;IAwBjD,QAAQ,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAqCxD,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IAK1D,SAAS,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IAK9D,aAAa,IAAI,OAAO,CAAC,cAAc,CAAC;IAMxC,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,MAAM,GAAE,UAAU,GAAG,MAAyB,EAC9C,KAAK,UAAO,GACX,OAAO,CAAC,UAAU,EAAE,CAAC;IAOlB,WAAW,CACf,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,UAAU,EAAE,GAAG,MAAM,EAAE,EAC7B,KAAK,UAAO,GACX,OAAO,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,EAAE,CAAC;IAS3B,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;CA8B7D"}
@@ -3,7 +3,7 @@ import { WalletName } from '../wallet';
3
3
  import { errorHandler } from '../errors/utils/errorHandler';
4
4
  import { operationType } from '../utils/constants';
5
5
  import { networkInfos, getClient } from './utils/network';
6
- import { buyRolls, callSC, deploySC, getBalance, sellRolls, signMessage, transfer, } from './services';
6
+ import { buyRolls, callSC, deploySC, executeSC, getBalance, sellRolls, signMessage, transfer, } from './services';
7
7
  export class MetamaskAccount {
8
8
  address;
9
9
  provider;
@@ -195,8 +195,32 @@ export class MetamaskAccount {
195
195
  }));
196
196
  return client.getDatastoreEntries(entries, final);
197
197
  }
198
- executeSC() {
199
- throw new Error('Method not implemented.');
198
+ async executeSC(params) {
199
+ try {
200
+ const executeParams = {
201
+ bytecode: Array.from(params.byteCode),
202
+ };
203
+ if (params.datastore) {
204
+ executeParams.datastore = Array.from(params.datastore.entries()).map(([key, value]) => ({
205
+ key: Array.from(key),
206
+ value: Array.from(value),
207
+ }));
208
+ }
209
+ if (params.maxGas) {
210
+ executeParams.maxGas = params.maxGas.toString();
211
+ }
212
+ if (params.fee) {
213
+ executeParams.fee = params.fee.toString();
214
+ }
215
+ if (params.maxCoins) {
216
+ executeParams.maxCoins = params.maxCoins.toString();
217
+ }
218
+ const { operationId } = await executeSC(this.provider, executeParams);
219
+ return new Operation(this, operationId);
220
+ }
221
+ catch (error) {
222
+ throw errorHandler(operationType.ExecuteSC, error);
223
+ }
200
224
  }
201
225
  }
202
226
  //# sourceMappingURL=MetamaskAccount.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MetamaskAccount.js","sourceRoot":"","sources":["../../../src/metamaskSnap/MetamaskAccount.ts"],"names":[],"mappings":"AACA,OAAO,EAML,sBAAsB,EACtB,YAAY,EAGZ,SAAS,EAOT,aAAa,EACb,UAAU,EAEV,GAAG,GACJ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EACL,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,UAAU,EACV,SAAS,EACT,WAAW,EACX,QAAQ,GACT,MAAM,YAAY,CAAC;AASpB,MAAM,OAAO,eAAe;IAER;IACC;IAFnB,YACkB,OAAe,EACd,QAAgC;QADjC,YAAO,GAAP,OAAO,CAAQ;QACd,aAAQ,GAAR,QAAQ,CAAwB;IAChD,CAAC;IAEJ,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,YAAY;QACd,OAAO,UAAU,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK;QACzB,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE;YACzE,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,SAAS,CACb,SAAmB,EACnB,KAAK,GAAG,KAAK;QAEb,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAErE,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACzC,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,OAAO,EAAE,KAAK;gBACZ,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC;gBAC3C,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,iBAAiB,CAAC;SAClD,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAA2B;QACpC,IAAI;YACF,MAAM,IAAI,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAChE,IAAI;aACL,CAAC,CAAC;YAEH,OAAO;gBACL,SAAS;gBACT,SAAS;aACV,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC/C;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,SAAyB,EACzB,MAAc,EACd,IAAuB;QAEvB,IAAI;YACF,MAAM,MAAM,GAAqC;gBAC/C,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;aAC1B,CAAC;YACF,IAAI,IAAI,EAAE,GAAG,EAAE;gBACb,MAAM,CAAC,GAAG,GAAG,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;aACnC;YAED,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,SAAS,KAAK,KAAK;gBAChD,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;gBACjC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;YAEtC,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;SACzC;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,YAAY,CAChB,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,EACtE,KAAK,CACN,CAAC;SACH;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,IAAuB;QACpD,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,IAAuB;QACrD,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,EAAoB,EACpB,MAAc,EACd,IAAuB;QAEvB,IAAI;YACF,MAAM,MAAM,GAAmB;gBAC7B,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;gBACzB,gBAAgB,EAAE,EAAE,CAAC,QAAQ,EAAE;aAChC,CAAC;YACF,IAAI,IAAI,EAAE,GAAG,EAAE;gBACb,MAAM,CAAC,GAAG,GAAG,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;aACnC;YACD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAE9D,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;SACzC;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,YAAY,CAAC,aAAa,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;SAC1D;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAoB;QAC/B,IAAI;YACF,MAAM,YAAY,GAAmB;gBACnC,YAAY,EAAE,MAAM,CAAC,IAAI;gBACzB,EAAE,EAAE,MAAM,CAAC,MAAM;aAClB,CAAC;YACF,IAAI,MAAM,CAAC,SAAS,EAAE;gBACpB,YAAY,CAAC,IAAI;oBACf,MAAM,CAAC,SAAS,YAAY,UAAU;wBACpC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;wBAC9B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;aAChD;YACD,IAAI,MAAM,CAAC,KAAK,EAAE;gBAChB,YAAY,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;aAC9C;YACD,IAAI,MAAM,CAAC,MAAM,EAAE;gBACjB,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;aAChD;YACD,IAAI,MAAM,CAAC,GAAG,EAAE;gBACd,YAAY,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;aAC1C;YAED,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YAElE,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;SACzC;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,YAAY,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;SACjD;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAoB;QAC/B,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,YAAY,EAAE;YACjD,MAAM,IAAI,KAAK,CACb,cAAc,MAAM,CAAC,MAAM,gCAAgC,YAAY,EAAE,CAC1E,CAAC;SACH;QACD,IAAI;YACF,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,UAAU,EAAE,CAAC;YAClD,MAAM,SAAS,GACb,IAAI,YAAY,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAExE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9C,MAAM,cAAc,GAAG;gBACrB,GAAG,MAAM;gBACT,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO;gBACrC,SAAS;aACV,CAAC;YACF,OAAO,MAAM,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;SACnD;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;SACjE;IACH,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,QAAQ,CAAC,MAAsB;QACnC,IAAI;YACF,MAAM,YAAY,GAAqB;gBACrC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;aACtC,CAAC;YACF,IAAI,MAAM,CAAC,SAAS,EAAE;gBACpB,YAAY,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAC5B,MAAM,CAAC,SAAS,YAAY,UAAU;oBACpC,CAAC,CAAC,MAAM,CAAC,SAAS;oBAClB,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CACjC,CAAC;aACH;YACD,IAAI,MAAM,CAAC,KAAK,EAAE;gBAChB,YAAY,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;aAC9C;YACD,IAAI,MAAM,CAAC,MAAM,EAAE;gBACjB,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;aAChD;YACD,IAAI,MAAM,CAAC,GAAG,EAAE;gBACd,YAAY,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;aAC1C;YACD,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACnB,YAAY,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;aACpD;YAED,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YACpE,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAC5C,MAAM,eAAe,GAAG,MAAM,EAAE,CAAC,kBAAkB,CACjD,MAAM,CAAC,kBAAkB,CAC1B,CAAC;YAEF,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;SACjD;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,YAAY,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SACnD;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAY;QACnC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,OAAO,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAmB;QACjC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;QACrC,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,OAAe,EACf,SAA8B,IAAI,UAAU,EAAE,EAC9C,KAAK,GAAG,IAAI;QAEZ,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,WAAW,GACf,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3D,OAAO,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,WAAW,CACf,OAAe,EACf,IAA6B,EAC7B,KAAK,GAAG,IAAI;QAEZ,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAqB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACnD,GAAG;YACH,OAAO;SACR,CAAC,CAAC,CAAC;QACJ,OAAO,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,SAAS;QACP,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;IAC7C,CAAC;CACF","sourcesContent":["import { MetaMaskInpageProvider } from '@metamask/providers';\nimport {\n Address,\n CallSCParams,\n DatastoreEntry,\n DeploySCParams,\n EventFilter,\n formatNodeStatusObject,\n MAX_GAS_CALL,\n Network,\n NodeStatusInfo,\n Operation,\n OperationOptions,\n OperationStatus,\n Provider,\n ReadSCData,\n ReadSCParams,\n SignedData,\n SmartContract,\n strToBytes,\n rpcTypes,\n Mas,\n} from '@massalabs/massa-web3';\nimport { WalletName } from '../wallet';\nimport { errorHandler } from '../errors/utils/errorHandler';\nimport { operationType } from '../utils/constants';\nimport { networkInfos, getClient } from './utils/network';\nimport {\n buyRolls,\n callSC,\n deploySC,\n getBalance,\n sellRolls,\n signMessage,\n transfer,\n} from './services';\nimport type {\n BuyRollsParams,\n SellRollsParams,\n TransferParams,\n CallSCParams as MMCallSCParams,\n DeploySCParams as MMDeploySCParams,\n} from '@massalabs/metamask-snap';\n\nexport class MetamaskAccount implements Provider {\n constructor(\n public readonly address: string,\n private readonly provider: MetaMaskInpageProvider,\n ) {}\n\n get accountName(): string {\n return this.address;\n }\n\n get providerName(): string {\n return WalletName.Metamask;\n }\n\n async balance(final = false): Promise<bigint> {\n const { finalBalance, candidateBalance } = await getBalance(this.provider, {\n address: this.address,\n });\n return BigInt(final ? finalBalance : candidateBalance);\n }\n\n async balanceOf(\n addresses: string[],\n final = false,\n ): Promise<{ address: string; balance: bigint }[]> {\n const client = await getClient(this.provider);\n const addressesInfo = await client.getMultipleAddressInfo(addresses);\n\n return addressesInfo.map((addressInfo) => ({\n address: addressInfo.address,\n balance: final\n ? Mas.fromString(addressInfo.final_balance)\n : Mas.fromString(addressInfo.candidate_balance),\n }));\n }\n\n async networkInfos(): Promise<Network> {\n return networkInfos(this.provider);\n }\n\n async sign(inData: Uint8Array | string): Promise<SignedData> {\n try {\n const data = typeof inData === 'string' ? inData : Array.from(inData);\n const { publicKey, signature } = await signMessage(this.provider, {\n data,\n });\n\n return {\n publicKey,\n signature,\n };\n } catch (error) {\n throw errorHandler(operationType.Sign, error);\n }\n }\n\n private async handleRollOperation(\n operation: 'buy' | 'sell',\n amount: bigint,\n opts?: OperationOptions,\n ): Promise<Operation> {\n try {\n const params: BuyRollsParams | SellRollsParams = {\n amount: amount.toString(),\n };\n if (opts?.fee) {\n params.fee = opts?.fee.toString();\n }\n\n const { operationId } = await (operation === 'buy'\n ? buyRolls(this.provider, params)\n : sellRolls(this.provider, params));\n\n return new Operation(this, operationId);\n } catch (error) {\n throw errorHandler(\n operation === 'buy' ? operationType.BuyRolls : operationType.SellRolls,\n error,\n );\n }\n }\n\n async buyRolls(amount: bigint, opts?: OperationOptions): Promise<Operation> {\n return this.handleRollOperation('buy', amount, opts);\n }\n\n async sellRolls(amount: bigint, opts?: OperationOptions): Promise<Operation> {\n return this.handleRollOperation('sell', amount, opts);\n }\n\n async transfer(\n to: Address | string,\n amount: bigint,\n opts?: OperationOptions,\n ): Promise<Operation> {\n try {\n const params: TransferParams = {\n amount: amount.toString(),\n recipientAddress: to.toString(),\n };\n if (opts?.fee) {\n params.fee = opts?.fee.toString();\n }\n const { operationId } = await transfer(this.provider, params);\n\n return new Operation(this, operationId);\n } catch (error) {\n throw errorHandler(operationType.SendTransaction, error);\n }\n }\n\n async callSC(params: CallSCParams): Promise<Operation> {\n try {\n const callSCparams: MMCallSCParams = {\n functionName: params.func,\n at: params.target,\n };\n if (params.parameter) {\n callSCparams.args =\n params.parameter instanceof Uint8Array\n ? Array.from(params.parameter)\n : Array.from(params.parameter.serialize());\n }\n if (params.coins) {\n callSCparams.coins = params.coins.toString();\n }\n if (params.maxGas) {\n callSCparams.maxGas = params.maxGas.toString();\n }\n if (params.fee) {\n callSCparams.fee = params.fee.toString();\n }\n\n const { operationId } = await callSC(this.provider, callSCparams);\n\n return new Operation(this, operationId);\n } catch (error) {\n throw errorHandler(operationType.CallSC, error);\n }\n }\n\n async readSC(params: ReadSCParams): Promise<ReadSCData> {\n if (params.maxGas && params.maxGas > MAX_GAS_CALL) {\n throw new Error(\n `Gas amount ${params.maxGas} exceeds the maximum allowed ${MAX_GAS_CALL}`,\n );\n }\n try {\n const args = params.parameter ?? new Uint8Array();\n const parameter =\n args instanceof Uint8Array ? args : Uint8Array.from(args.serialize());\n\n const client = await getClient(this.provider);\n const readOnlyParams = {\n ...params,\n caller: params.caller ?? this.address,\n parameter,\n };\n return client.executeReadOnlyCall(readOnlyParams);\n } catch (error) {\n throw new Error(`Smart contract read failed: ${error.message}`);\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async deploySC(params: DeploySCParams): Promise<SmartContract> {\n try {\n const deployParams: MMDeploySCParams = {\n bytecode: Array.from(params.byteCode),\n };\n if (params.parameter) {\n deployParams.args = Array.from(\n params.parameter instanceof Uint8Array\n ? params.parameter\n : params.parameter.serialize(),\n );\n }\n if (params.coins) {\n deployParams.coins = params.coins.toString();\n }\n if (params.maxGas) {\n deployParams.maxGas = params.maxGas.toString();\n }\n if (params.fee) {\n deployParams.fee = params.fee.toString();\n }\n if (params.maxCoins) {\n deployParams.maxCoins = params.maxCoins.toString();\n }\n\n const { operationId } = await deploySC(this.provider, deployParams);\n const op = new Operation(this, operationId);\n const deployedAddress = await op.getDeployedAddress(\n params.waitFinalExecution,\n );\n\n return new SmartContract(this, deployedAddress);\n } catch (error) {\n throw errorHandler(operationType.DeploySC, error);\n }\n }\n\n async getOperationStatus(opId: string): Promise<OperationStatus> {\n const client = await getClient(this.provider);\n return client.getOperationStatus(opId);\n }\n\n async getEvents(filter: EventFilter): Promise<rpcTypes.OutputEvents> {\n const client = await getClient(this.provider);\n return client.getEvents(filter);\n }\n\n async getNodeStatus(): Promise<NodeStatusInfo> {\n const client = await getClient(this.provider);\n const status = await client.status();\n return formatNodeStatusObject(status);\n }\n\n async getStorageKeys(\n address: string,\n filter: Uint8Array | string = new Uint8Array(),\n final = true,\n ): Promise<Uint8Array[]> {\n const client = await getClient(this.provider);\n const filterBytes =\n typeof filter === 'string' ? strToBytes(filter) : filter;\n return client.getDataStoreKeys(address, filterBytes, final);\n }\n\n async readStorage(\n address: string,\n keys: Uint8Array[] | string[],\n final = true,\n ): Promise<(Uint8Array | null)[]> {\n const client = await getClient(this.provider);\n const entries: DatastoreEntry[] = keys.map((key) => ({\n key,\n address,\n }));\n return client.getDatastoreEntries(entries, final);\n }\n\n executeSC(): Promise<Operation> {\n throw new Error('Method not implemented.');\n }\n}\n"]}
1
+ {"version":3,"file":"MetamaskAccount.js","sourceRoot":"","sources":["../../../src/metamaskSnap/MetamaskAccount.ts"],"names":[],"mappings":"AACA,OAAO,EAML,sBAAsB,EACtB,YAAY,EAGZ,SAAS,EAOT,aAAa,EACb,UAAU,EAEV,GAAG,GAEJ,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,EACL,QAAQ,EACR,MAAM,EACN,QAAQ,EACR,SAAS,EACT,UAAU,EACV,SAAS,EACT,WAAW,EACX,QAAQ,GACT,MAAM,YAAY,CAAC;AAUpB,MAAM,OAAO,eAAe;IAER;IACC;IAFnB,YACkB,OAAe,EACd,QAAgC;QADjC,YAAO,GAAP,OAAO,CAAQ;QACd,aAAQ,GAAR,QAAQ,CAAwB;IAChD,CAAC;IAEJ,IAAI,WAAW;QACb,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,IAAI,YAAY;QACd,OAAO,UAAU,CAAC,QAAQ,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,KAAK,GAAG,KAAK;QACzB,MAAM,EAAE,YAAY,EAAE,gBAAgB,EAAE,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC,QAAQ,EAAE;YACzE,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC,CAAC;QACH,OAAO,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC;IACzD,CAAC;IAED,KAAK,CAAC,SAAS,CACb,SAAmB,EACnB,KAAK,GAAG,KAAK;QAEb,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,aAAa,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,SAAS,CAAC,CAAC;QAErE,OAAO,aAAa,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACzC,OAAO,EAAE,WAAW,CAAC,OAAO;YAC5B,OAAO,EAAE,KAAK;gBACZ,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,aAAa,CAAC;gBAC3C,CAAC,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,iBAAiB,CAAC;SAClD,CAAC,CAAC,CAAC;IACN,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,MAA2B;QACpC,IAAI;YACF,MAAM,IAAI,GAAG,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACtE,MAAM,EAAE,SAAS,EAAE,SAAS,EAAE,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,QAAQ,EAAE;gBAChE,IAAI;aACL,CAAC,CAAC;YAEH,OAAO;gBACL,SAAS;gBACT,SAAS;aACV,CAAC;SACH;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,YAAY,CAAC,aAAa,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;SAC/C;IACH,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAC/B,SAAyB,EACzB,MAAc,EACd,IAAuB;QAEvB,IAAI;YACF,MAAM,MAAM,GAAqC;gBAC/C,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;aAC1B,CAAC;YACF,IAAI,IAAI,EAAE,GAAG,EAAE;gBACb,MAAM,CAAC,GAAG,GAAG,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;aACnC;YAED,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,SAAS,KAAK,KAAK;gBAChD,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC;gBACjC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC,CAAC;YAEtC,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;SACzC;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,YAAY,CAChB,SAAS,KAAK,KAAK,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,aAAa,CAAC,SAAS,EACtE,KAAK,CACN,CAAC;SACH;IACH,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,MAAc,EAAE,IAAuB;QACpD,OAAO,IAAI,CAAC,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAc,EAAE,IAAuB;QACrD,OAAO,IAAI,CAAC,mBAAmB,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACxD,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,EAAoB,EACpB,MAAc,EACd,IAAuB;QAEvB,IAAI;YACF,MAAM,MAAM,GAAmB;gBAC7B,MAAM,EAAE,MAAM,CAAC,QAAQ,EAAE;gBACzB,gBAAgB,EAAE,EAAE,CAAC,QAAQ,EAAE;aAChC,CAAC;YACF,IAAI,IAAI,EAAE,GAAG,EAAE;gBACb,MAAM,CAAC,GAAG,GAAG,IAAI,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC;aACnC;YACD,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;YAE9D,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;SACzC;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,YAAY,CAAC,aAAa,CAAC,eAAe,EAAE,KAAK,CAAC,CAAC;SAC1D;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAoB;QAC/B,IAAI;YACF,MAAM,YAAY,GAAmB;gBACnC,YAAY,EAAE,MAAM,CAAC,IAAI;gBACzB,EAAE,EAAE,MAAM,CAAC,MAAM;aAClB,CAAC;YACF,IAAI,MAAM,CAAC,SAAS,EAAE;gBACpB,YAAY,CAAC,IAAI;oBACf,MAAM,CAAC,SAAS,YAAY,UAAU;wBACpC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;wBAC9B,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CAAC,CAAC;aAChD;YACD,IAAI,MAAM,CAAC,KAAK,EAAE;gBAChB,YAAY,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;aAC9C;YACD,IAAI,MAAM,CAAC,MAAM,EAAE;gBACjB,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;aAChD;YACD,IAAI,MAAM,CAAC,GAAG,EAAE;gBACd,YAAY,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;aAC1C;YAED,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YAElE,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;SACzC;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,YAAY,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;SACjD;IACH,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,MAAoB;QAC/B,IAAI,MAAM,CAAC,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,YAAY,EAAE;YACjD,MAAM,IAAI,KAAK,CACb,cAAc,MAAM,CAAC,MAAM,gCAAgC,YAAY,EAAE,CAC1E,CAAC;SACH;QACD,IAAI;YACF,MAAM,IAAI,GAAG,MAAM,CAAC,SAAS,IAAI,IAAI,UAAU,EAAE,CAAC;YAClD,MAAM,SAAS,GACb,IAAI,YAAY,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC,CAAC;YAExE,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAC9C,MAAM,cAAc,GAAG;gBACrB,GAAG,MAAM;gBACT,MAAM,EAAE,MAAM,CAAC,MAAM,IAAI,IAAI,CAAC,OAAO;gBACrC,SAAS;aACV,CAAC;YACF,OAAO,MAAM,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;SACnD;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,IAAI,KAAK,CAAC,+BAA+B,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC;SACjE;IACH,CAAC;IAED,6DAA6D;IAC7D,KAAK,CAAC,QAAQ,CAAC,MAAsB;QACnC,IAAI;YACF,MAAM,YAAY,GAAqB;gBACrC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;aACtC,CAAC;YACF,IAAI,MAAM,CAAC,SAAS,EAAE;gBACpB,YAAY,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAC5B,MAAM,CAAC,SAAS,YAAY,UAAU;oBACpC,CAAC,CAAC,MAAM,CAAC,SAAS;oBAClB,CAAC,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,EAAE,CACjC,CAAC;aACH;YACD,IAAI,MAAM,CAAC,KAAK,EAAE;gBAChB,YAAY,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC;aAC9C;YACD,IAAI,MAAM,CAAC,MAAM,EAAE;gBACjB,YAAY,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;aAChD;YACD,IAAI,MAAM,CAAC,GAAG,EAAE;gBACd,YAAY,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;aAC1C;YACD,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACnB,YAAY,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;aACpD;YAED,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YACpE,MAAM,EAAE,GAAG,IAAI,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;YAC5C,MAAM,eAAe,GAAG,MAAM,EAAE,CAAC,kBAAkB,CACjD,MAAM,CAAC,kBAAkB,CAC1B,CAAC;YAEF,OAAO,IAAI,aAAa,CAAC,IAAI,EAAE,eAAe,CAAC,CAAC;SACjD;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,YAAY,CAAC,aAAa,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;SACnD;IACH,CAAC;IAED,KAAK,CAAC,kBAAkB,CAAC,IAAY;QACnC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,OAAO,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAmB;QACjC,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,CAAC,aAAa;QACjB,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,EAAE,CAAC;QACrC,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC;IAED,KAAK,CAAC,cAAc,CAClB,OAAe,EACf,SAA8B,IAAI,UAAU,EAAE,EAC9C,KAAK,GAAG,IAAI;QAEZ,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,WAAW,GACf,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC;QAC3D,OAAO,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;IAC9D,CAAC;IAED,KAAK,CAAC,WAAW,CACf,OAAe,EACf,IAA6B,EAC7B,KAAK,GAAG,IAAI;QAEZ,MAAM,MAAM,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9C,MAAM,OAAO,GAAqB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;YACnD,GAAG;YACH,OAAO;SACR,CAAC,CAAC,CAAC;QACJ,OAAO,MAAM,CAAC,mBAAmB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,MAAuB;QACrC,IAAI;YACF,MAAM,aAAa,GAAsB;gBACvC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;aACtC,CAAC;YACF,IAAI,MAAM,CAAC,SAAS,EAAE;gBACpB,aAAa,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,CAAC,GAAG,CAClE,CAAC,CAAC,GAAG,EAAE,KAAK,CAAC,EAAE,EAAE,CAAC,CAAC;oBACjB,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC;oBACpB,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;iBACzB,CAAC,CACH,CAAC;aACH;YAED,IAAI,MAAM,CAAC,MAAM,EAAE;gBACjB,aAAa,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;aACjD;YACD,IAAI,MAAM,CAAC,GAAG,EAAE;gBACd,aAAa,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;aAC3C;YACD,IAAI,MAAM,CAAC,QAAQ,EAAE;gBACnB,aAAa,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;aACrD;YAED,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,SAAS,CAAC,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;YACtE,OAAO,IAAI,SAAS,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;SACzC;QAAC,OAAO,KAAK,EAAE;YACd,MAAM,YAAY,CAAC,aAAa,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;SACpD;IACH,CAAC;CACF","sourcesContent":["import { MetaMaskInpageProvider } from '@metamask/providers';\nimport {\n Address,\n CallSCParams,\n DatastoreEntry,\n DeploySCParams,\n EventFilter,\n formatNodeStatusObject,\n MAX_GAS_CALL,\n Network,\n NodeStatusInfo,\n Operation,\n OperationOptions,\n OperationStatus,\n Provider,\n ReadSCData,\n ReadSCParams,\n SignedData,\n SmartContract,\n strToBytes,\n rpcTypes,\n Mas,\n ExecuteScParams,\n} from '@massalabs/massa-web3';\nimport { WalletName } from '../wallet';\nimport { errorHandler } from '../errors/utils/errorHandler';\nimport { operationType } from '../utils/constants';\nimport { networkInfos, getClient } from './utils/network';\nimport {\n buyRolls,\n callSC,\n deploySC,\n executeSC,\n getBalance,\n sellRolls,\n signMessage,\n transfer,\n} from './services';\nimport type {\n BuyRollsParams,\n SellRollsParams,\n TransferParams,\n CallSCParams as MMCallSCParams,\n DeploySCParams as MMDeploySCParams,\n ExecuteSCParams as MMExecuteSCParams,\n} from '@massalabs/metamask-snap';\n\nexport class MetamaskAccount implements Provider {\n constructor(\n public readonly address: string,\n private readonly provider: MetaMaskInpageProvider,\n ) {}\n\n get accountName(): string {\n return this.address;\n }\n\n get providerName(): string {\n return WalletName.Metamask;\n }\n\n async balance(final = false): Promise<bigint> {\n const { finalBalance, candidateBalance } = await getBalance(this.provider, {\n address: this.address,\n });\n return BigInt(final ? finalBalance : candidateBalance);\n }\n\n async balanceOf(\n addresses: string[],\n final = false,\n ): Promise<{ address: string; balance: bigint }[]> {\n const client = await getClient(this.provider);\n const addressesInfo = await client.getMultipleAddressInfo(addresses);\n\n return addressesInfo.map((addressInfo) => ({\n address: addressInfo.address,\n balance: final\n ? Mas.fromString(addressInfo.final_balance)\n : Mas.fromString(addressInfo.candidate_balance),\n }));\n }\n\n async networkInfos(): Promise<Network> {\n return networkInfos(this.provider);\n }\n\n async sign(inData: Uint8Array | string): Promise<SignedData> {\n try {\n const data = typeof inData === 'string' ? inData : Array.from(inData);\n const { publicKey, signature } = await signMessage(this.provider, {\n data,\n });\n\n return {\n publicKey,\n signature,\n };\n } catch (error) {\n throw errorHandler(operationType.Sign, error);\n }\n }\n\n private async handleRollOperation(\n operation: 'buy' | 'sell',\n amount: bigint,\n opts?: OperationOptions,\n ): Promise<Operation> {\n try {\n const params: BuyRollsParams | SellRollsParams = {\n amount: amount.toString(),\n };\n if (opts?.fee) {\n params.fee = opts?.fee.toString();\n }\n\n const { operationId } = await (operation === 'buy'\n ? buyRolls(this.provider, params)\n : sellRolls(this.provider, params));\n\n return new Operation(this, operationId);\n } catch (error) {\n throw errorHandler(\n operation === 'buy' ? operationType.BuyRolls : operationType.SellRolls,\n error,\n );\n }\n }\n\n async buyRolls(amount: bigint, opts?: OperationOptions): Promise<Operation> {\n return this.handleRollOperation('buy', amount, opts);\n }\n\n async sellRolls(amount: bigint, opts?: OperationOptions): Promise<Operation> {\n return this.handleRollOperation('sell', amount, opts);\n }\n\n async transfer(\n to: Address | string,\n amount: bigint,\n opts?: OperationOptions,\n ): Promise<Operation> {\n try {\n const params: TransferParams = {\n amount: amount.toString(),\n recipientAddress: to.toString(),\n };\n if (opts?.fee) {\n params.fee = opts?.fee.toString();\n }\n const { operationId } = await transfer(this.provider, params);\n\n return new Operation(this, operationId);\n } catch (error) {\n throw errorHandler(operationType.SendTransaction, error);\n }\n }\n\n async callSC(params: CallSCParams): Promise<Operation> {\n try {\n const callSCparams: MMCallSCParams = {\n functionName: params.func,\n at: params.target,\n };\n if (params.parameter) {\n callSCparams.args =\n params.parameter instanceof Uint8Array\n ? Array.from(params.parameter)\n : Array.from(params.parameter.serialize());\n }\n if (params.coins) {\n callSCparams.coins = params.coins.toString();\n }\n if (params.maxGas) {\n callSCparams.maxGas = params.maxGas.toString();\n }\n if (params.fee) {\n callSCparams.fee = params.fee.toString();\n }\n\n const { operationId } = await callSC(this.provider, callSCparams);\n\n return new Operation(this, operationId);\n } catch (error) {\n throw errorHandler(operationType.CallSC, error);\n }\n }\n\n async readSC(params: ReadSCParams): Promise<ReadSCData> {\n if (params.maxGas && params.maxGas > MAX_GAS_CALL) {\n throw new Error(\n `Gas amount ${params.maxGas} exceeds the maximum allowed ${MAX_GAS_CALL}`,\n );\n }\n try {\n const args = params.parameter ?? new Uint8Array();\n const parameter =\n args instanceof Uint8Array ? args : Uint8Array.from(args.serialize());\n\n const client = await getClient(this.provider);\n const readOnlyParams = {\n ...params,\n caller: params.caller ?? this.address,\n parameter,\n };\n return client.executeReadOnlyCall(readOnlyParams);\n } catch (error) {\n throw new Error(`Smart contract read failed: ${error.message}`);\n }\n }\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n async deploySC(params: DeploySCParams): Promise<SmartContract> {\n try {\n const deployParams: MMDeploySCParams = {\n bytecode: Array.from(params.byteCode),\n };\n if (params.parameter) {\n deployParams.args = Array.from(\n params.parameter instanceof Uint8Array\n ? params.parameter\n : params.parameter.serialize(),\n );\n }\n if (params.coins) {\n deployParams.coins = params.coins.toString();\n }\n if (params.maxGas) {\n deployParams.maxGas = params.maxGas.toString();\n }\n if (params.fee) {\n deployParams.fee = params.fee.toString();\n }\n if (params.maxCoins) {\n deployParams.maxCoins = params.maxCoins.toString();\n }\n\n const { operationId } = await deploySC(this.provider, deployParams);\n const op = new Operation(this, operationId);\n const deployedAddress = await op.getDeployedAddress(\n params.waitFinalExecution,\n );\n\n return new SmartContract(this, deployedAddress);\n } catch (error) {\n throw errorHandler(operationType.DeploySC, error);\n }\n }\n\n async getOperationStatus(opId: string): Promise<OperationStatus> {\n const client = await getClient(this.provider);\n return client.getOperationStatus(opId);\n }\n\n async getEvents(filter: EventFilter): Promise<rpcTypes.OutputEvents> {\n const client = await getClient(this.provider);\n return client.getEvents(filter);\n }\n\n async getNodeStatus(): Promise<NodeStatusInfo> {\n const client = await getClient(this.provider);\n const status = await client.status();\n return formatNodeStatusObject(status);\n }\n\n async getStorageKeys(\n address: string,\n filter: Uint8Array | string = new Uint8Array(),\n final = true,\n ): Promise<Uint8Array[]> {\n const client = await getClient(this.provider);\n const filterBytes =\n typeof filter === 'string' ? strToBytes(filter) : filter;\n return client.getDataStoreKeys(address, filterBytes, final);\n }\n\n async readStorage(\n address: string,\n keys: Uint8Array[] | string[],\n final = true,\n ): Promise<(Uint8Array | null)[]> {\n const client = await getClient(this.provider);\n const entries: DatastoreEntry[] = keys.map((key) => ({\n key,\n address,\n }));\n return client.getDatastoreEntries(entries, final);\n }\n\n async executeSC(params: ExecuteScParams): Promise<Operation> {\n try {\n const executeParams: MMExecuteSCParams = {\n bytecode: Array.from(params.byteCode),\n };\n if (params.datastore) {\n executeParams.datastore = Array.from(params.datastore.entries()).map(\n ([key, value]) => ({\n key: Array.from(key),\n value: Array.from(value),\n }),\n );\n }\n\n if (params.maxGas) {\n executeParams.maxGas = params.maxGas.toString();\n }\n if (params.fee) {\n executeParams.fee = params.fee.toString();\n }\n if (params.maxCoins) {\n executeParams.maxCoins = params.maxCoins.toString();\n }\n\n const { operationId } = await executeSC(this.provider, executeParams);\n return new Operation(this, operationId);\n } catch (error) {\n throw errorHandler(operationType.ExecuteSC, error);\n }\n }\n}\n"]}
@@ -1,4 +1,4 @@
1
1
  import type { MetaMaskInpageProvider } from '@metamask/providers';
2
- import type { CallSCResponse } from '@massalabs/metamask-snap';
3
- export declare const deploySC: (provider: MetaMaskInpageProvider, params: DeploySCParams) => Promise<CallSCResponse>;
2
+ import type { DeploySCResponse } from '@massalabs/metamask-snap';
3
+ export declare const deploySC: (provider: MetaMaskInpageProvider, params: DeploySCParams) => Promise<DeploySCResponse>;
4
4
  //# sourceMappingURL=deploySC.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"deploySC.d.ts","sourceRoot":"","sources":["../../../../src/metamaskSnap/services/deploySC.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,KAAK,EAAkB,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE/E,eAAO,MAAM,QAAQ,aACT,sBAAsB,6BAE/B,QAAQ,cAAc,CAWxB,CAAC"}
1
+ {"version":3,"file":"deploySC.d.ts","sourceRoot":"","sources":["../../../../src/metamaskSnap/services/deploySC.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,KAAK,EAEV,gBAAgB,EACjB,MAAM,0BAA0B,CAAC;AAElC,eAAO,MAAM,QAAQ,aACT,sBAAsB,6BAE/B,QAAQ,gBAAgB,CAW1B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"deploySC.js","sourceRoot":"","sources":["../../../../src/metamaskSnap/services/deploySC.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAC3B,QAAgC,EAChC,MAAsB,EACG,EAAE;IAC3B,OAAO,QAAQ,CAAC,OAAO,CAAC;QACtB,MAAM,EAAE,mBAAmB;QAC3B,MAAM,EAAE;YACN,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;gBAC1B,MAAM;aACP;SACF;KACF,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["import type { MetaMaskInpageProvider } from '@metamask/providers';\nimport { MASSA_SNAP_ID } from '../config';\nimport type { DeploySCParams, CallSCResponse } from '@massalabs/metamask-snap';\n\nexport const deploySC = async (\n provider: MetaMaskInpageProvider,\n params: DeploySCParams,\n): Promise<CallSCResponse> => {\n return provider.request({\n method: 'wallet_invokeSnap',\n params: {\n snapId: MASSA_SNAP_ID,\n request: {\n method: 'account.deploySC',\n params,\n },\n },\n });\n};\n"]}
1
+ {"version":3,"file":"deploySC.js","sourceRoot":"","sources":["../../../../src/metamaskSnap/services/deploySC.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAM1C,MAAM,CAAC,MAAM,QAAQ,GAAG,KAAK,EAC3B,QAAgC,EAChC,MAAsB,EACK,EAAE;IAC7B,OAAO,QAAQ,CAAC,OAAO,CAAC;QACtB,MAAM,EAAE,mBAAmB;QAC3B,MAAM,EAAE;YACN,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE;gBACP,MAAM,EAAE,kBAAkB;gBAC1B,MAAM;aACP;SACF;KACF,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["import type { MetaMaskInpageProvider } from '@metamask/providers';\nimport { MASSA_SNAP_ID } from '../config';\nimport type {\n DeploySCParams,\n DeploySCResponse,\n} from '@massalabs/metamask-snap';\n\nexport const deploySC = async (\n provider: MetaMaskInpageProvider,\n params: DeploySCParams,\n): Promise<DeploySCResponse> => {\n return provider.request({\n method: 'wallet_invokeSnap',\n params: {\n snapId: MASSA_SNAP_ID,\n request: {\n method: 'account.deploySC',\n params,\n },\n },\n });\n};\n"]}
@@ -0,0 +1,4 @@
1
+ import type { MetaMaskInpageProvider } from '@metamask/providers';
2
+ import type { ExecuteSCResponse } from '@massalabs/metamask-snap';
3
+ export declare const executeSC: (provider: MetaMaskInpageProvider, params: ExecuteSCParameters) => Promise<ExecuteSCResponse>;
4
+ //# sourceMappingURL=executeSC.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executeSC.d.ts","sourceRoot":"","sources":["../../../../src/metamaskSnap/services/executeSC.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,KAAK,EAEV,iBAAiB,EAClB,MAAM,0BAA0B,CAAC;AAElC,eAAO,MAAM,SAAS,aACV,sBAAsB,kCAE/B,QAAQ,iBAAiB,CAW3B,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { MASSA_SNAP_ID } from '../config';
2
+ export const executeSC = async (provider, params) => {
3
+ return provider.request({
4
+ method: 'wallet_invokeSnap',
5
+ params: {
6
+ snapId: MASSA_SNAP_ID,
7
+ request: {
8
+ method: 'account.executeSC',
9
+ params,
10
+ },
11
+ },
12
+ });
13
+ };
14
+ //# sourceMappingURL=executeSC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executeSC.js","sourceRoot":"","sources":["../../../../src/metamaskSnap/services/executeSC.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAM1C,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,QAAgC,EAChC,MAA2B,EACC,EAAE;IAC9B,OAAO,QAAQ,CAAC,OAAO,CAAC;QACtB,MAAM,EAAE,mBAAmB;QAC3B,MAAM,EAAE;YACN,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE;gBACP,MAAM,EAAE,mBAAmB;gBAC3B,MAAM;aACP;SACF;KACF,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["import type { MetaMaskInpageProvider } from '@metamask/providers';\nimport { MASSA_SNAP_ID } from '../config';\nimport type {\n ExecuteSCParameters,\n ExecuteSCResponse,\n} from '@massalabs/metamask-snap';\n\nexport const executeSC = async (\n provider: MetaMaskInpageProvider,\n params: ExecuteSCParameters,\n): Promise<ExecuteSCResponse> => {\n return provider.request({\n method: 'wallet_invokeSnap',\n params: {\n snapId: MASSA_SNAP_ID,\n request: {\n method: 'account.executeSC',\n params,\n },\n },\n });\n};\n"]}
@@ -1,5 +1,6 @@
1
1
  export * from './callSC';
2
2
  export * from './deploySC';
3
+ export * from './executeSC';
3
4
  export * from './buyRolls';
4
5
  export * from './sellRolls';
5
6
  export * from './getBalance';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/metamaskSnap/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/metamaskSnap/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC"}
@@ -1,5 +1,6 @@
1
1
  export * from './callSC';
2
2
  export * from './deploySC';
3
+ export * from './executeSC';
3
4
  export * from './buyRolls';
4
5
  export * from './sellRolls';
5
6
  export * from './getBalance';
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/metamaskSnap/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAE3B,2HAA2H","sourcesContent":["export * from './callSC';\nexport * from './deploySC';\nexport * from './buyRolls';\nexport * from './sellRolls';\nexport * from './getBalance';\nexport * from './getNetwork';\nexport * from './getActiveAccount';\nexport * from './setRpcUrl';\nexport * from './signMessage';\nexport * from './transfer';\n\n// Do not export these to the outside world. If it is needed, @massalabs/metamask-snap should be moved to direct dependency\n"]}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/metamaskSnap/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAC;AACzB,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,YAAY,CAAC;AAE3B,2HAA2H","sourcesContent":["export * from './callSC';\nexport * from './deploySC';\nexport * from './executeSC';\nexport * from './buyRolls';\nexport * from './sellRolls';\nexport * from './getBalance';\nexport * from './getNetwork';\nexport * from './getActiveAccount';\nexport * from './setRpcUrl';\nexport * from './signMessage';\nexport * from './transfer';\n\n// Do not export these to the outside world. If it is needed, @massalabs/metamask-snap should be moved to direct dependency\n"]}
@@ -4,6 +4,7 @@ export declare enum operationType {
4
4
  SendTransaction = "sendTransaction",
5
5
  SellRolls = "sellRolls",
6
6
  BuyRolls = "buyRolls",
7
- Sign = "sign"
7
+ Sign = "sign",
8
+ ExecuteSC = "executeSC"
8
9
  }
9
10
  //# sourceMappingURL=constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa;IACvB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,eAAe,oBAAoB;IACnC,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,IAAI,SAAS;CACd"}
1
+ {"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,oBAAY,aAAa;IACvB,MAAM,WAAW;IACjB,QAAQ,aAAa;IACrB,eAAe,oBAAoB;IACnC,SAAS,cAAc;IACvB,QAAQ,aAAa;IACrB,IAAI,SAAS;IACb,SAAS,cAAc;CACxB"}
@@ -6,5 +6,6 @@ export var operationType;
6
6
  operationType["SellRolls"] = "sellRolls";
7
7
  operationType["BuyRolls"] = "buyRolls";
8
8
  operationType["Sign"] = "sign";
9
+ operationType["ExecuteSC"] = "executeSC";
9
10
  })(operationType || (operationType = {}));
10
11
  //# sourceMappingURL=constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,aAOX;AAPD,WAAY,aAAa;IACvB,kCAAiB,CAAA;IACjB,sCAAqB,CAAA;IACrB,oDAAmC,CAAA;IACnC,wCAAuB,CAAA;IACvB,sCAAqB,CAAA;IACrB,8BAAa,CAAA;AACf,CAAC,EAPW,aAAa,KAAb,aAAa,QAOxB","sourcesContent":["export enum operationType {\n CallSC = 'callSC',\n DeploySC = 'deploySC',\n SendTransaction = 'sendTransaction',\n SellRolls = 'sellRolls',\n BuyRolls = 'buyRolls',\n Sign = 'sign',\n}\n"]}
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../../../src/utils/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,aAQX;AARD,WAAY,aAAa;IACvB,kCAAiB,CAAA;IACjB,sCAAqB,CAAA;IACrB,oDAAmC,CAAA;IACnC,wCAAuB,CAAA;IACvB,sCAAqB,CAAA;IACrB,8BAAa,CAAA;IACb,wCAAuB,CAAA;AACzB,CAAC,EARW,aAAa,KAAb,aAAa,QAQxB","sourcesContent":["export enum operationType {\n CallSC = 'callSC',\n DeploySC = 'deploySC',\n SendTransaction = 'sendTransaction',\n SellRolls = 'sellRolls',\n BuyRolls = 'buyRolls',\n Sign = 'sign',\n ExecuteSC = 'executeSC',\n}\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@massalabs/wallet-provider",
3
- "version": "3.2.1-dev.20250512131006",
3
+ "version": "3.2.1-dev.20250520130105",
4
4
  "description": "massa's wallet provider",
5
5
  "main": "dist/esm/index.js",
6
6
  "module": "dist/esm/index.js",