@massalabs/wallet-provider 3.0.1-dev.20241212144921 → 3.0.1-dev.20241219125941

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 (106) hide show
  1. package/dist/esm/bearbyWallet/BearbyWallet.d.ts +5 -4
  2. package/dist/esm/bearbyWallet/BearbyWallet.d.ts.map +1 -1
  3. package/dist/esm/bearbyWallet/BearbyWallet.js +11 -10
  4. package/dist/esm/bearbyWallet/BearbyWallet.js.map +1 -1
  5. package/dist/esm/massaStation/MassaStationWallet.d.ts +3 -2
  6. package/dist/esm/massaStation/MassaStationWallet.d.ts.map +1 -1
  7. package/dist/esm/massaStation/MassaStationWallet.js +10 -3
  8. package/dist/esm/massaStation/MassaStationWallet.js.map +1 -1
  9. package/dist/esm/metamaskSnap/MetamaskAccount.d.ts +26 -0
  10. package/dist/esm/metamaskSnap/MetamaskAccount.d.ts.map +1 -0
  11. package/dist/esm/metamaskSnap/MetamaskAccount.js +192 -0
  12. package/dist/esm/metamaskSnap/MetamaskAccount.js.map +1 -0
  13. package/dist/esm/metamaskSnap/MetamaskWallet.d.ts +57 -0
  14. package/dist/esm/metamaskSnap/MetamaskWallet.d.ts.map +1 -0
  15. package/dist/esm/metamaskSnap/MetamaskWallet.js +129 -0
  16. package/dist/esm/metamaskSnap/MetamaskWallet.js.map +1 -0
  17. package/dist/esm/metamaskSnap/config/index.d.ts +2 -0
  18. package/dist/esm/metamaskSnap/config/index.d.ts.map +1 -0
  19. package/dist/esm/metamaskSnap/config/index.js +2 -0
  20. package/dist/esm/metamaskSnap/config/index.js.map +1 -0
  21. package/dist/esm/metamaskSnap/config/snap.d.ts +2 -0
  22. package/dist/esm/metamaskSnap/config/snap.d.ts.map +1 -0
  23. package/dist/esm/metamaskSnap/config/snap.js +3 -0
  24. package/dist/esm/metamaskSnap/config/snap.js.map +1 -0
  25. package/dist/esm/metamaskSnap/metamask.d.ts +21 -0
  26. package/dist/esm/metamaskSnap/metamask.d.ts.map +1 -0
  27. package/dist/esm/metamaskSnap/metamask.js +70 -0
  28. package/dist/esm/metamaskSnap/metamask.js.map +1 -0
  29. package/dist/esm/metamaskSnap/services/buyRolls.d.ts +4 -0
  30. package/dist/esm/metamaskSnap/services/buyRolls.d.ts.map +1 -0
  31. package/dist/esm/metamaskSnap/services/buyRolls.js +14 -0
  32. package/dist/esm/metamaskSnap/services/buyRolls.js.map +1 -0
  33. package/dist/esm/metamaskSnap/services/callSC.d.ts +4 -0
  34. package/dist/esm/metamaskSnap/services/callSC.d.ts.map +1 -0
  35. package/dist/esm/metamaskSnap/services/callSC.js +14 -0
  36. package/dist/esm/metamaskSnap/services/callSC.js.map +1 -0
  37. package/dist/esm/metamaskSnap/services/deploySC.d.ts +4 -0
  38. package/dist/esm/metamaskSnap/services/deploySC.d.ts.map +1 -0
  39. package/dist/esm/metamaskSnap/services/deploySC.js +14 -0
  40. package/dist/esm/metamaskSnap/services/deploySC.js.map +1 -0
  41. package/dist/esm/metamaskSnap/services/getActiveAccount.d.ts +4 -0
  42. package/dist/esm/metamaskSnap/services/getActiveAccount.d.ts.map +1 -0
  43. package/dist/esm/metamaskSnap/services/getActiveAccount.js +13 -0
  44. package/dist/esm/metamaskSnap/services/getActiveAccount.js.map +1 -0
  45. package/dist/esm/metamaskSnap/services/getBalance.d.ts +4 -0
  46. package/dist/esm/metamaskSnap/services/getBalance.d.ts.map +1 -0
  47. package/dist/esm/metamaskSnap/services/getBalance.js +14 -0
  48. package/dist/esm/metamaskSnap/services/getBalance.js.map +1 -0
  49. package/dist/esm/metamaskSnap/services/getMinimalFees.d.ts +3 -0
  50. package/dist/esm/metamaskSnap/services/getMinimalFees.d.ts.map +1 -0
  51. package/dist/esm/metamaskSnap/services/getMinimalFees.js +6 -0
  52. package/dist/esm/metamaskSnap/services/getMinimalFees.js.map +1 -0
  53. package/dist/esm/metamaskSnap/services/getNetwork.d.ts +4 -0
  54. package/dist/esm/metamaskSnap/services/getNetwork.d.ts.map +1 -0
  55. package/dist/esm/metamaskSnap/services/getNetwork.js +13 -0
  56. package/dist/esm/metamaskSnap/services/getNetwork.js.map +1 -0
  57. package/dist/esm/metamaskSnap/services/index.d.ts +11 -0
  58. package/dist/esm/metamaskSnap/services/index.d.ts.map +1 -0
  59. package/dist/esm/metamaskSnap/services/index.js +12 -0
  60. package/dist/esm/metamaskSnap/services/index.js.map +1 -0
  61. package/dist/esm/metamaskSnap/services/sellRolls.d.ts +4 -0
  62. package/dist/esm/metamaskSnap/services/sellRolls.d.ts.map +1 -0
  63. package/dist/esm/metamaskSnap/services/sellRolls.js +14 -0
  64. package/dist/esm/metamaskSnap/services/sellRolls.js.map +1 -0
  65. package/dist/esm/metamaskSnap/services/setRpcUrl.d.ts +4 -0
  66. package/dist/esm/metamaskSnap/services/setRpcUrl.d.ts.map +1 -0
  67. package/dist/esm/metamaskSnap/services/setRpcUrl.js +14 -0
  68. package/dist/esm/metamaskSnap/services/setRpcUrl.js.map +1 -0
  69. package/dist/esm/metamaskSnap/services/signMessage.d.ts +4 -0
  70. package/dist/esm/metamaskSnap/services/signMessage.d.ts.map +1 -0
  71. package/dist/esm/metamaskSnap/services/signMessage.js +14 -0
  72. package/dist/esm/metamaskSnap/services/signMessage.js.map +1 -0
  73. package/dist/esm/metamaskSnap/services/transfer.d.ts +4 -0
  74. package/dist/esm/metamaskSnap/services/transfer.d.ts.map +1 -0
  75. package/dist/esm/metamaskSnap/services/transfer.js +14 -0
  76. package/dist/esm/metamaskSnap/services/transfer.js.map +1 -0
  77. package/dist/esm/metamaskSnap/snap.d.ts +20 -0
  78. package/dist/esm/metamaskSnap/snap.d.ts.map +1 -0
  79. package/dist/esm/metamaskSnap/snap.js +45 -0
  80. package/dist/esm/metamaskSnap/snap.js.map +1 -0
  81. package/dist/esm/metamaskSnap/types/index.d.ts +2 -0
  82. package/dist/esm/metamaskSnap/types/index.d.ts.map +1 -0
  83. package/dist/esm/metamaskSnap/types/index.js +2 -0
  84. package/dist/esm/metamaskSnap/types/index.js.map +1 -0
  85. package/dist/esm/metamaskSnap/types/snap.d.ts +14 -0
  86. package/dist/esm/metamaskSnap/types/snap.d.ts.map +1 -0
  87. package/dist/esm/metamaskSnap/types/snap.js +2 -0
  88. package/dist/esm/metamaskSnap/types/snap.js.map +1 -0
  89. package/dist/esm/utils/constants.d.ts +1 -0
  90. package/dist/esm/utils/constants.d.ts.map +1 -1
  91. package/dist/esm/utils/constants.js +1 -0
  92. package/dist/esm/utils/constants.js.map +1 -1
  93. package/dist/esm/wallet/interface.d.ts +2 -1
  94. package/dist/esm/wallet/interface.d.ts.map +1 -1
  95. package/dist/esm/wallet/interface.js.map +1 -1
  96. package/dist/esm/wallet/types.d.ts +2 -1
  97. package/dist/esm/wallet/types.d.ts.map +1 -1
  98. package/dist/esm/wallet/types.js +1 -0
  99. package/dist/esm/wallet/types.js.map +1 -1
  100. package/dist/esm/walletsManager/types.d.ts +2 -1
  101. package/dist/esm/walletsManager/types.d.ts.map +1 -1
  102. package/dist/esm/walletsManager/types.js.map +1 -1
  103. package/dist/esm/walletsManager/walletList.d.ts.map +1 -1
  104. package/dist/esm/walletsManager/walletList.js +3 -3
  105. package/dist/esm/walletsManager/walletList.js.map +1 -1
  106. package/package.json +4 -1
@@ -0,0 +1,129 @@
1
+ import { getNetworkNameByChainId, Mas, } from '@massalabs/massa-web3';
2
+ import { WalletName } from '../wallet';
3
+ import { getMetamaskProvider } from './metamask';
4
+ import { connectSnap, isConnected } from './snap';
5
+ import { MetamaskAccount } from './MetamaskAccount';
6
+ import { getActiveAccount, getNetwork, setRpcUrl } from './services';
7
+ import EventEmitter from 'events';
8
+ const METAMASK_NETWORK_CHANGED = 'METAMASK_NETWORK_CHANGED';
9
+ export class MetamaskWallet {
10
+ walletName = WalletName.Metamask;
11
+ metamaskProvider;
12
+ eventsListener = new EventEmitter();
13
+ currentNetwork;
14
+ name() {
15
+ return this.walletName;
16
+ }
17
+ constructor(provider) {
18
+ this.metamaskProvider = provider;
19
+ }
20
+ static async createIfInstalled() {
21
+ try {
22
+ const metamask = await getMetamaskProvider();
23
+ if (!metamask)
24
+ return null;
25
+ return new MetamaskWallet(metamask);
26
+ }
27
+ catch (error) {
28
+ return null;
29
+ }
30
+ }
31
+ async accounts() {
32
+ const res = await getActiveAccount(this.metamaskProvider);
33
+ return [new MetamaskAccount(res.address, this.metamaskProvider)];
34
+ }
35
+ async importAccount() {
36
+ throw new Error('Method not implemented.');
37
+ }
38
+ async deleteAccount() {
39
+ throw new Error('Method not implemented.');
40
+ }
41
+ async networkInfos() {
42
+ const res = await getNetwork(this.metamaskProvider);
43
+ return {
44
+ name: getNetworkNameByChainId(BigInt(res.chainId)),
45
+ chainId: BigInt(res.chainId),
46
+ url: res.network,
47
+ minimalFee: Mas.fromString(res.minimalFees),
48
+ };
49
+ }
50
+ /**
51
+ * Sets the RPC URL for the MetaMask provider.
52
+ *
53
+ * @param url - The new RPC URL.
54
+ * @returns A promise that resolves when the RPC URL is updated.
55
+ */
56
+ async setRpcUrl(url) {
57
+ await setRpcUrl(this.metamaskProvider, { network: url });
58
+ }
59
+ async generateNewAccount() {
60
+ throw new Error('Method not implemented.');
61
+ }
62
+ listenAccountChanges() {
63
+ throw new Error('listenAccountChanges is not yet implemented for the current provider.');
64
+ }
65
+ /**
66
+ * Subscribes to network changes.
67
+ *
68
+ * @param callback - Callback function called when the network changes.
69
+ * @returns An object with an `unsubscribe` method to stop listening.
70
+ * @remarks Periodically checks for network changes every 500ms.
71
+ *
72
+ * @example
73
+ * ```typescript
74
+ * const observer = await provider.listenNetworkChanges((network) => {
75
+ * console.log(network);
76
+ * });
77
+ * observer.unsubscribe();
78
+ * ```
79
+ */
80
+ listenNetworkChanges(callback) {
81
+ this.eventsListener.on(METAMASK_NETWORK_CHANGED, (evt) => callback(evt));
82
+ const intervalId = setInterval(async () => {
83
+ const network = await this.networkInfos();
84
+ if (!this.currentNetwork) {
85
+ this.currentNetwork = network;
86
+ return;
87
+ }
88
+ if (this.currentNetwork.name !== network.name) {
89
+ this.currentNetwork = network;
90
+ this.eventsListener.emit(METAMASK_NETWORK_CHANGED, network);
91
+ }
92
+ }, 500);
93
+ return {
94
+ unsubscribe: () => {
95
+ clearInterval(intervalId);
96
+ this.eventsListener.removeListener(METAMASK_NETWORK_CHANGED,
97
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
98
+ () => { });
99
+ },
100
+ };
101
+ }
102
+ /**
103
+ * Connects to MetaMask and ensures it is unlocked and ready.
104
+ *
105
+ * @returns A promise that resolves to `true` if connected successfully, otherwise `false`.
106
+ */
107
+ async connect() {
108
+ try {
109
+ const connected = await isConnected(this.metamaskProvider);
110
+ if (!connected) {
111
+ await connectSnap(this.metamaskProvider);
112
+ }
113
+ return true;
114
+ }
115
+ catch (error) {
116
+ return false;
117
+ }
118
+ }
119
+ async disconnect() {
120
+ throw new Error('Method not implemented.');
121
+ }
122
+ connected() {
123
+ return isConnected(this.metamaskProvider);
124
+ }
125
+ enabled() {
126
+ throw new Error('Method not implemented.');
127
+ }
128
+ }
129
+ //# sourceMappingURL=MetamaskWallet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MetamaskWallet.js","sourceRoot":"","sources":["../../../src/metamaskSnap/MetamaskWallet.ts"],"names":[],"mappings":"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","sourcesContent":["import { Wallet } from '../wallet/interface';\nimport {\n getNetworkNameByChainId,\n Mas,\n Network,\n Provider,\n} from '@massalabs/massa-web3';\nimport { WalletName } from '../wallet';\nimport { getMetamaskProvider } from './metamask';\nimport { connectSnap, isConnected } from './snap';\nimport { MetamaskAccount } from './MetamaskAccount';\nimport { MetaMaskInpageProvider } from '@metamask/providers';\nimport { getActiveAccount, getNetwork, setRpcUrl } from './services';\nimport EventEmitter from 'events';\n\nconst METAMASK_NETWORK_CHANGED = 'METAMASK_NETWORK_CHANGED';\n\nexport class MetamaskWallet implements Wallet {\n private walletName = WalletName.Metamask;\n private metamaskProvider: MetaMaskInpageProvider;\n private eventsListener = new EventEmitter();\n private currentNetwork: Network;\n\n public name(): WalletName {\n return this.walletName;\n }\n\n public constructor(provider: MetaMaskInpageProvider) {\n this.metamaskProvider = provider;\n }\n\n static async createIfInstalled(): Promise<Wallet | null> {\n try {\n const metamask = await getMetamaskProvider();\n\n if (!metamask) return null;\n\n return new MetamaskWallet(metamask);\n } catch (error) {\n return null;\n }\n }\n\n public async accounts(): Promise<MetamaskAccount[]> {\n const res = await getActiveAccount(this.metamaskProvider);\n return [new MetamaskAccount(res.address, this.metamaskProvider)];\n }\n\n public async importAccount(): Promise<void> {\n throw new Error('Method not implemented.');\n }\n\n public async deleteAccount(): Promise<void> {\n throw new Error('Method not implemented.');\n }\n\n public async networkInfos(): Promise<Network> {\n const res = await getNetwork(this.metamaskProvider);\n\n return {\n name: getNetworkNameByChainId(BigInt(res.chainId)),\n chainId: BigInt(res.chainId),\n url: res.network,\n minimalFee: Mas.fromString(res.minimalFees),\n };\n }\n\n /**\n * Sets the RPC URL for the MetaMask provider.\n *\n * @param url - The new RPC URL.\n * @returns A promise that resolves when the RPC URL is updated.\n */\n public async setRpcUrl(url: string): Promise<void> {\n await setRpcUrl(this.metamaskProvider, { network: url });\n }\n\n public async generateNewAccount(): Promise<Provider> {\n throw new Error('Method not implemented.');\n }\n\n public listenAccountChanges(): { unsubscribe: () => void } | undefined {\n throw new Error(\n 'listenAccountChanges is not yet implemented for the current provider.',\n );\n }\n\n /**\n * Subscribes to network changes.\n *\n * @param callback - Callback function called when the network changes.\n * @returns An object with an `unsubscribe` method to stop listening.\n * @remarks Periodically checks for network changes every 500ms.\n *\n * @example\n * ```typescript\n * const observer = await provider.listenNetworkChanges((network) => {\n * console.log(network);\n * });\n * observer.unsubscribe();\n * ```\n */\n public listenNetworkChanges(\n callback: (network: Network) => void,\n ): { unsubscribe: () => void } | undefined {\n this.eventsListener.on(METAMASK_NETWORK_CHANGED, (evt) => callback(evt));\n\n const intervalId = setInterval(async () => {\n const network = await this.networkInfos();\n if (!this.currentNetwork) {\n this.currentNetwork = network;\n return;\n }\n if (this.currentNetwork.name !== network.name) {\n this.currentNetwork = network;\n this.eventsListener.emit(METAMASK_NETWORK_CHANGED, network);\n }\n }, 500);\n\n return {\n unsubscribe: () => {\n clearInterval(intervalId);\n this.eventsListener.removeListener(\n METAMASK_NETWORK_CHANGED,\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n () => {},\n );\n },\n };\n }\n\n /**\n * Connects to MetaMask and ensures it is unlocked and ready.\n *\n * @returns A promise that resolves to `true` if connected successfully, otherwise `false`.\n */\n public async connect() {\n try {\n const connected = await isConnected(this.metamaskProvider);\n\n if (!connected) {\n await connectSnap(this.metamaskProvider);\n }\n return true;\n } catch (error) {\n return false;\n }\n }\n\n public async disconnect(): Promise<boolean> {\n throw new Error('Method not implemented.');\n }\n\n public connected(): Promise<boolean> {\n return isConnected(this.metamaskProvider);\n }\n\n public enabled(): boolean {\n throw new Error('Method not implemented.');\n }\n}\n"]}
@@ -0,0 +1,2 @@
1
+ export { MASSA_SNAP_ID } from './snap';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/metamaskSnap/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC"}
@@ -0,0 +1,2 @@
1
+ export { MASSA_SNAP_ID } from './snap';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/metamaskSnap/config/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC","sourcesContent":["export { MASSA_SNAP_ID } from './snap';\n"]}
@@ -0,0 +1,2 @@
1
+ export declare const MASSA_SNAP_ID = "npm:@massalabs/metamask-snap";
2
+ //# sourceMappingURL=snap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snap.d.ts","sourceRoot":"","sources":["../../../../src/metamaskSnap/config/snap.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,aAAa,iCAAiC,CAAC"}
@@ -0,0 +1,3 @@
1
+ export const MASSA_SNAP_ID = 'npm:@massalabs/metamask-snap';
2
+ // export const MASSA_SNAP_ID = `local:http://localhost:8080`;
3
+ //# sourceMappingURL=snap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"snap.js","sourceRoot":"","sources":["../../../../src/metamaskSnap/config/snap.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,aAAa,GAAG,8BAA8B,CAAC;AAC5D,8DAA8D","sourcesContent":["export const MASSA_SNAP_ID = 'npm:@massalabs/metamask-snap';\n// export const MASSA_SNAP_ID = `local:http://localhost:8080`;\n"]}
@@ -0,0 +1,21 @@
1
+ import type { MetaMaskInpageProvider } from '@metamask/providers';
2
+ /**
3
+ * Check if a provider supports snaps by calling `wallet_getSnaps`.
4
+ *
5
+ * @param provider - The provider to test for snaps support
6
+ * @returns A promise that resolves to true if snaps are supported
7
+ */
8
+ export declare function hasSnapsSupport(provider: MetaMaskInpageProvider): Promise<boolean>;
9
+ /**
10
+ * Get a MetaMask provider using EIP6963 specification.
11
+ *
12
+ * @returns Promise resolving to MetaMask provider or null if not found within timeout
13
+ */
14
+ export declare function getMetaMaskEIP6963Provider(): Promise<MetaMaskInpageProvider | null>;
15
+ /**
16
+ * Get a MetaMask provider that supports snaps.
17
+ *
18
+ * @returns Promise resolving to a compatible provider or null
19
+ */
20
+ export declare function getMetamaskProvider(): Promise<MetaMaskInpageProvider | null>;
21
+ //# sourceMappingURL=metamask.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metamask.d.ts","sourceRoot":"","sources":["../../../src/metamaskSnap/metamask.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,sBAAsB,EACvB,MAAM,qBAAqB,CAAC;AAM7B;;;;;GAKG;AACH,wBAAsB,eAAe,CACnC,QAAQ,EAAE,sBAAsB,GAC/B,OAAO,CAAC,OAAO,CAAC,CAOlB;AAaD;;;;GAIG;AACH,wBAAsB,0BAA0B,IAAI,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAkCzF;AAED;;;;GAIG;AACH,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC,CAOlF"}
@@ -0,0 +1,70 @@
1
+ import { getInstalledSnaps } from './snap';
2
+ const PROVIDER_DETECTION_TIMEOUT = 500;
3
+ /**
4
+ * Check if a provider supports snaps by calling `wallet_getSnaps`.
5
+ *
6
+ * @param provider - The provider to test for snaps support
7
+ * @returns A promise that resolves to true if snaps are supported
8
+ */
9
+ export async function hasSnapsSupport(provider) {
10
+ try {
11
+ await getInstalledSnaps(provider);
12
+ return true;
13
+ }
14
+ catch {
15
+ return false;
16
+ }
17
+ }
18
+ function isMetaMaskProvider(obj) {
19
+ return (obj !== null &&
20
+ typeof obj === 'object' &&
21
+ // eslint-disable-next-line no-prototype-builtins
22
+ obj.hasOwnProperty('isMetaMask') &&
23
+ // eslint-disable-next-line no-prototype-builtins
24
+ obj.hasOwnProperty('request'));
25
+ }
26
+ /**
27
+ * Get a MetaMask provider using EIP6963 specification.
28
+ *
29
+ * @returns Promise resolving to MetaMask provider or null if not found within timeout
30
+ */
31
+ export async function getMetaMaskEIP6963Provider() {
32
+ return new Promise((resolve) => {
33
+ const timeout = setTimeout(() => {
34
+ cleanup();
35
+ resolve(null);
36
+ }, PROVIDER_DETECTION_TIMEOUT);
37
+ function cleanup() {
38
+ if (typeof window.removeEventListener === 'function') {
39
+ window.removeEventListener('eip6963:announceProvider', handleAnnouncement);
40
+ }
41
+ clearTimeout(timeout);
42
+ }
43
+ function handleAnnouncement({ detail }) {
44
+ if (['io.metamask', 'io.metamask.flask'].includes(detail.info.rdns) &&
45
+ isMetaMaskProvider(detail.provider)) {
46
+ cleanup();
47
+ resolve(detail.provider);
48
+ }
49
+ }
50
+ if (typeof window.addEventListener === 'function') {
51
+ window.addEventListener('eip6963:announceProvider', handleAnnouncement);
52
+ }
53
+ if (typeof window.dispatchEvent === 'function') {
54
+ window.dispatchEvent(new Event('eip6963:requestProvider'));
55
+ }
56
+ });
57
+ }
58
+ /**
59
+ * Get a MetaMask provider that supports snaps.
60
+ *
61
+ * @returns Promise resolving to a compatible provider or null
62
+ */
63
+ export async function getMetamaskProvider() {
64
+ const eip6963Provider = await getMetaMaskEIP6963Provider();
65
+ if (eip6963Provider && (await hasSnapsSupport(eip6963Provider))) {
66
+ return eip6963Provider;
67
+ }
68
+ return null;
69
+ }
70
+ //# sourceMappingURL=metamask.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"metamask.js","sourceRoot":"","sources":["../../../src/metamaskSnap/metamask.ts"],"names":[],"mappings":"AAKA,OAAO,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAE3C,MAAM,0BAA0B,GAAG,GAAG,CAAC;AAEvC;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,QAAgC;IAEhC,IAAI;QACF,MAAM,iBAAiB,CAAC,QAAQ,CAAC,CAAC;QAClC,OAAO,IAAI,CAAC;KACb;IAAC,MAAM;QACN,OAAO,KAAK,CAAC;KACd;AACH,CAAC;AAED,SAAS,kBAAkB,CAAC,GAAY;IACtC,OAAO,CACL,GAAG,KAAK,IAAI;QACZ,OAAO,GAAG,KAAK,QAAQ;QACvB,iDAAiD;QACjD,GAAG,CAAC,cAAc,CAAC,YAAY,CAAC;QAChC,iDAAiD;QACjD,GAAG,CAAC,cAAc,CAAC,SAAS,CAAC,CAC9B,CAAC;AACJ,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,0BAA0B;IAC9C,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,OAAO,EAAE,CAAC;YACV,OAAO,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC,EAAE,0BAA0B,CAAC,CAAC;QAE/B,SAAS,OAAO;YACd,IAAI,OAAO,MAAM,CAAC,mBAAmB,KAAK,UAAU,EAAE;gBACpD,MAAM,CAAC,mBAAmB,CACxB,0BAA0B,EAC1B,kBAAkB,CACnB,CAAC;aACH;YACD,YAAY,CAAC,OAAO,CAAC,CAAC;QACxB,CAAC;QAED,SAAS,kBAAkB,CAAC,EAAE,MAAM,EAAgC;YAClE,IACE,CAAC,aAAa,EAAE,mBAAmB,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC;gBAC/D,kBAAkB,CAAC,MAAM,CAAC,QAAQ,CAAC,EACnC;gBACA,OAAO,EAAE,CAAC;gBACV,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;aAC1B;QACH,CAAC;QAED,IAAI,OAAO,MAAM,CAAC,gBAAgB,KAAK,UAAU,EAAE;YACjD,MAAM,CAAC,gBAAgB,CAAC,0BAA0B,EAAE,kBAAkB,CAAC,CAAC;SACzE;QACD,IAAI,OAAO,MAAM,CAAC,aAAa,KAAK,UAAU,EAAE;YAC9C,MAAM,CAAC,aAAa,CAAC,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC,CAAC;SAC5D;IACH,CAAC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,mBAAmB;IACvC,MAAM,eAAe,GAAG,MAAM,0BAA0B,EAAE,CAAC;IAC3D,IAAI,eAAe,IAAI,CAAC,MAAM,eAAe,CAAC,eAAe,CAAC,CAAC,EAAE;QAC/D,OAAO,eAAe,CAAC;KACxB;IAED,OAAO,IAAI,CAAC;AACd,CAAC","sourcesContent":["import type {\n EIP6963AnnounceProviderEvent,\n MetaMaskInpageProvider,\n} from '@metamask/providers';\nimport { MetaMaskProvider } from './types/snap';\nimport { getInstalledSnaps } from './snap';\n\nconst PROVIDER_DETECTION_TIMEOUT = 500;\n\n/**\n * Check if a provider supports snaps by calling `wallet_getSnaps`.\n *\n * @param provider - The provider to test for snaps support\n * @returns A promise that resolves to true if snaps are supported\n */\nexport async function hasSnapsSupport(\n provider: MetaMaskInpageProvider,\n): Promise<boolean> {\n try {\n await getInstalledSnaps(provider);\n return true;\n } catch {\n return false;\n }\n}\n\nfunction isMetaMaskProvider(obj: unknown): obj is MetaMaskProvider {\n return (\n obj !== null &&\n typeof obj === 'object' &&\n // eslint-disable-next-line no-prototype-builtins\n obj.hasOwnProperty('isMetaMask') &&\n // eslint-disable-next-line no-prototype-builtins\n obj.hasOwnProperty('request')\n );\n}\n\n/**\n * Get a MetaMask provider using EIP6963 specification.\n *\n * @returns Promise resolving to MetaMask provider or null if not found within timeout\n */\nexport async function getMetaMaskEIP6963Provider(): Promise<MetaMaskInpageProvider | null> {\n return new Promise((resolve) => {\n const timeout = setTimeout(() => {\n cleanup();\n resolve(null);\n }, PROVIDER_DETECTION_TIMEOUT);\n\n function cleanup() {\n if (typeof window.removeEventListener === 'function') {\n window.removeEventListener(\n 'eip6963:announceProvider',\n handleAnnouncement,\n );\n }\n clearTimeout(timeout);\n }\n\n function handleAnnouncement({ detail }: EIP6963AnnounceProviderEvent) {\n if (\n ['io.metamask', 'io.metamask.flask'].includes(detail.info.rdns) &&\n isMetaMaskProvider(detail.provider)\n ) {\n cleanup();\n resolve(detail.provider);\n }\n }\n\n if (typeof window.addEventListener === 'function') {\n window.addEventListener('eip6963:announceProvider', handleAnnouncement);\n }\n if (typeof window.dispatchEvent === 'function') {\n window.dispatchEvent(new Event('eip6963:requestProvider'));\n }\n });\n}\n\n/**\n * Get a MetaMask provider that supports snaps.\n *\n * @returns Promise resolving to a compatible provider or null\n */\nexport async function getMetamaskProvider(): Promise<MetaMaskInpageProvider | null> {\n const eip6963Provider = await getMetaMaskEIP6963Provider();\n if (eip6963Provider && (await hasSnapsSupport(eip6963Provider))) {\n return eip6963Provider;\n }\n\n return null;\n}\n"]}
@@ -0,0 +1,4 @@
1
+ import type { MetaMaskInpageProvider } from '@metamask/providers';
2
+ import type { BuyRollsResponse } from '@massalabs/metamask-snap';
3
+ export declare const buyRolls: (provider: MetaMaskInpageProvider, params: BuyRollsParams) => Promise<BuyRollsResponse>;
4
+ //# sourceMappingURL=buyRolls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buyRolls.d.ts","sourceRoot":"","sources":["../../../../src/metamaskSnap/services/buyRolls.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"}
@@ -0,0 +1,14 @@
1
+ import { MASSA_SNAP_ID } from '../config';
2
+ export const buyRolls = async (provider, params) => {
3
+ return provider.request({
4
+ method: 'wallet_invokeSnap',
5
+ params: {
6
+ snapId: MASSA_SNAP_ID,
7
+ request: {
8
+ method: 'account.buyRolls',
9
+ params,
10
+ },
11
+ },
12
+ });
13
+ };
14
+ //# sourceMappingURL=buyRolls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"buyRolls.js","sourceRoot":"","sources":["../../../../src/metamaskSnap/services/buyRolls.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 BuyRollsParams,\n BuyRollsResponse,\n} from '@massalabs/metamask-snap';\n\nexport const buyRolls = async (\n provider: MetaMaskInpageProvider,\n params: BuyRollsParams,\n): Promise<BuyRollsResponse> => {\n return provider.request({\n method: 'wallet_invokeSnap',\n params: {\n snapId: MASSA_SNAP_ID,\n request: {\n method: 'account.buyRolls',\n params,\n },\n },\n });\n};\n"]}
@@ -0,0 +1,4 @@
1
+ import type { MetaMaskInpageProvider } from '@metamask/providers';
2
+ import type { CallSCResponse } from '@massalabs/metamask-snap';
3
+ export declare const callSC: (provider: MetaMaskInpageProvider, params: CallSCParams) => Promise<CallSCResponse>;
4
+ //# sourceMappingURL=callSC.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callSC.d.ts","sourceRoot":"","sources":["../../../../src/metamaskSnap/services/callSC.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,KAAK,EAAgB,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE7E,eAAO,MAAM,MAAM,aACP,sBAAsB,2BAE/B,QAAQ,cAAc,CAWxB,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { MASSA_SNAP_ID } from '../config';
2
+ export const callSC = async (provider, params) => {
3
+ return provider.request({
4
+ method: 'wallet_invokeSnap',
5
+ params: {
6
+ snapId: MASSA_SNAP_ID,
7
+ request: {
8
+ method: 'account.callSC',
9
+ params,
10
+ },
11
+ },
12
+ });
13
+ };
14
+ //# sourceMappingURL=callSC.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"callSC.js","sourceRoot":"","sources":["../../../../src/metamaskSnap/services/callSC.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,MAAM,CAAC,MAAM,MAAM,GAAG,KAAK,EACzB,QAAgC,EAChC,MAAoB,EACK,EAAE;IAC3B,OAAO,QAAQ,CAAC,OAAO,CAAC;QACtB,MAAM,EAAE,mBAAmB;QAC3B,MAAM,EAAE;YACN,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE;gBACP,MAAM,EAAE,gBAAgB;gBACxB,MAAM;aACP;SACF;KACF,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["import type { MetaMaskInpageProvider } from '@metamask/providers';\nimport { MASSA_SNAP_ID } from '../config';\nimport type { CallSCParams, CallSCResponse } from '@massalabs/metamask-snap';\n\nexport const callSC = async (\n provider: MetaMaskInpageProvider,\n params: CallSCParams,\n): Promise<CallSCResponse> => {\n return provider.request({\n method: 'wallet_invokeSnap',\n params: {\n snapId: MASSA_SNAP_ID,\n request: {\n method: 'account.callSC',\n params,\n },\n },\n });\n};\n"]}
@@ -0,0 +1,4 @@
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>;
4
+ //# sourceMappingURL=deploySC.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,14 @@
1
+ import { MASSA_SNAP_ID } from '../config';
2
+ export const deploySC = async (provider, params) => {
3
+ return provider.request({
4
+ method: 'wallet_invokeSnap',
5
+ params: {
6
+ snapId: MASSA_SNAP_ID,
7
+ request: {
8
+ method: 'account.deploySC',
9
+ params,
10
+ },
11
+ },
12
+ });
13
+ };
14
+ //# sourceMappingURL=deploySC.js.map
@@ -0,0 +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"]}
@@ -0,0 +1,4 @@
1
+ import type { MetaMaskInpageProvider } from '@metamask/providers';
2
+ import type { ActiveAccountResponse } from '@massalabs/metamask-snap';
3
+ export declare const getActiveAccount: (provider: MetaMaskInpageProvider) => Promise<ActiveAccountResponse>;
4
+ //# sourceMappingURL=getActiveAccount.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getActiveAccount.d.ts","sourceRoot":"","sources":["../../../../src/metamaskSnap/services/getActiveAccount.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,0BAA0B,CAAC;AAEtE,eAAO,MAAM,gBAAgB,aACjB,sBAAsB,KAC/B,QAAQ,qBAAqB,CAU/B,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { MASSA_SNAP_ID } from '../config';
2
+ export const getActiveAccount = async (provider) => {
3
+ return provider.request({
4
+ method: 'wallet_invokeSnap',
5
+ params: {
6
+ snapId: MASSA_SNAP_ID,
7
+ request: {
8
+ method: 'account.getActive',
9
+ },
10
+ },
11
+ });
12
+ };
13
+ //# sourceMappingURL=getActiveAccount.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getActiveAccount.js","sourceRoot":"","sources":["../../../../src/metamaskSnap/services/getActiveAccount.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,MAAM,CAAC,MAAM,gBAAgB,GAAG,KAAK,EACnC,QAAgC,EACA,EAAE;IAClC,OAAO,QAAQ,CAAC,OAAO,CAAC;QACtB,MAAM,EAAE,mBAAmB;QAC3B,MAAM,EAAE;YACN,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE;gBACP,MAAM,EAAE,mBAAmB;aAC5B;SACF;KACF,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["import type { MetaMaskInpageProvider } from '@metamask/providers';\nimport { MASSA_SNAP_ID } from '../config';\nimport type { ActiveAccountResponse } from '@massalabs/metamask-snap';\n\nexport const getActiveAccount = async (\n provider: MetaMaskInpageProvider,\n): Promise<ActiveAccountResponse> => {\n return provider.request({\n method: 'wallet_invokeSnap',\n params: {\n snapId: MASSA_SNAP_ID,\n request: {\n method: 'account.getActive',\n },\n },\n });\n};\n"]}
@@ -0,0 +1,4 @@
1
+ import type { MetaMaskInpageProvider } from '@metamask/providers';
2
+ import type { AccountBalanceResponse } from '@massalabs/metamask-snap';
3
+ export declare const getBalance: (provider: MetaMaskInpageProvider, params: AccountBalanceParams) => Promise<AccountBalanceResponse>;
4
+ //# sourceMappingURL=getBalance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBalance.d.ts","sourceRoot":"","sources":["../../../../src/metamaskSnap/services/getBalance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,KAAK,EAEV,sBAAsB,EACvB,MAAM,0BAA0B,CAAC;AAElC,eAAO,MAAM,UAAU,aACX,sBAAsB,mCAE/B,QAAQ,sBAAsB,CAWhC,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { MASSA_SNAP_ID } from '../config';
2
+ export const getBalance = (provider, params) => {
3
+ return provider.request({
4
+ method: 'wallet_invokeSnap',
5
+ params: {
6
+ snapId: MASSA_SNAP_ID,
7
+ request: {
8
+ method: 'account.balance',
9
+ params,
10
+ },
11
+ },
12
+ });
13
+ };
14
+ //# sourceMappingURL=getBalance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getBalance.js","sourceRoot":"","sources":["../../../../src/metamaskSnap/services/getBalance.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAM1C,MAAM,CAAC,MAAM,UAAU,GAAG,CACxB,QAAgC,EAChC,MAA4B,EACK,EAAE;IACnC,OAAO,QAAQ,CAAC,OAAO,CAAC;QACtB,MAAM,EAAE,mBAAmB;QAC3B,MAAM,EAAE;YACN,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE;gBACP,MAAM,EAAE,iBAAiB;gBACzB,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 AccountBalanceParams,\n AccountBalanceResponse,\n} from '@massalabs/metamask-snap';\n\nexport const getBalance = (\n provider: MetaMaskInpageProvider,\n params: AccountBalanceParams,\n): Promise<AccountBalanceResponse> => {\n return provider.request({\n method: 'wallet_invokeSnap',\n params: {\n snapId: MASSA_SNAP_ID,\n request: {\n method: 'account.balance',\n params,\n },\n },\n });\n};\n"]}
@@ -0,0 +1,3 @@
1
+ import type { MetaMaskInpageProvider } from '@metamask/providers';
2
+ export declare const getMinimalFees: (provider: MetaMaskInpageProvider) => Promise<bigint>;
3
+ //# sourceMappingURL=getMinimalFees.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMinimalFees.d.ts","sourceRoot":"","sources":["../../../../src/metamaskSnap/services/getMinimalFees.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAGlE,eAAO,MAAM,cAAc,aACf,sBAAsB,KAC/B,QAAQ,MAAM,CAGhB,CAAC"}
@@ -0,0 +1,6 @@
1
+ import { getNetwork } from './getNetwork';
2
+ export const getMinimalFees = async (provider) => {
3
+ const { minimalFees } = await getNetwork(provider);
4
+ return BigInt(minimalFees);
5
+ };
6
+ //# sourceMappingURL=getMinimalFees.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getMinimalFees.js","sourceRoot":"","sources":["../../../../src/metamaskSnap/services/getMinimalFees.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,MAAM,CAAC,MAAM,cAAc,GAAG,KAAK,EACjC,QAAgC,EACf,EAAE;IACnB,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,UAAU,CAAC,QAAQ,CAAC,CAAC;IACnD,OAAO,MAAM,CAAC,WAAW,CAAC,CAAC;AAC7B,CAAC,CAAC","sourcesContent":["import type { MetaMaskInpageProvider } from '@metamask/providers';\nimport { getNetwork } from './getNetwork';\n\nexport const getMinimalFees = async (\n provider: MetaMaskInpageProvider,\n): Promise<bigint> => {\n const { minimalFees } = await getNetwork(provider);\n return BigInt(minimalFees);\n};\n"]}
@@ -0,0 +1,4 @@
1
+ import type { MetaMaskInpageProvider } from '@metamask/providers';
2
+ import type { NetworkResponse } from '@massalabs/metamask-snap';
3
+ export declare const getNetwork: (provider: MetaMaskInpageProvider) => Promise<NetworkResponse>;
4
+ //# sourceMappingURL=getNetwork.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getNetwork.d.ts","sourceRoot":"","sources":["../../../../src/metamaskSnap/services/getNetwork.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,eAAO,MAAM,UAAU,aACX,sBAAsB,KAC/B,QAAQ,eAAe,CAUzB,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { MASSA_SNAP_ID } from '../config';
2
+ export const getNetwork = async (provider) => {
3
+ return provider.request({
4
+ method: 'wallet_invokeSnap',
5
+ params: {
6
+ snapId: MASSA_SNAP_ID,
7
+ request: {
8
+ method: 'Provider.getNetwork',
9
+ },
10
+ },
11
+ });
12
+ };
13
+ //# sourceMappingURL=getNetwork.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getNetwork.js","sourceRoot":"","sources":["../../../../src/metamaskSnap/services/getNetwork.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAG1C,MAAM,CAAC,MAAM,UAAU,GAAG,KAAK,EAC7B,QAAgC,EACN,EAAE;IAC5B,OAAO,QAAQ,CAAC,OAAO,CAAC;QACtB,MAAM,EAAE,mBAAmB;QAC3B,MAAM,EAAE;YACN,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE;gBACP,MAAM,EAAE,qBAAqB;aAC9B;SACF;KACF,CAAC,CAAC;AACL,CAAC,CAAC","sourcesContent":["import type { MetaMaskInpageProvider } from '@metamask/providers';\nimport { MASSA_SNAP_ID } from '../config';\nimport type { NetworkResponse } from '@massalabs/metamask-snap';\n\nexport const getNetwork = async (\n provider: MetaMaskInpageProvider,\n): Promise<NetworkResponse> => {\n return provider.request({\n method: 'wallet_invokeSnap',\n params: {\n snapId: MASSA_SNAP_ID,\n request: {\n method: 'Provider.getNetwork',\n },\n },\n });\n};\n"]}
@@ -0,0 +1,11 @@
1
+ export * from './callSC';
2
+ export * from './deploySC';
3
+ export * from './buyRolls';
4
+ export * from './sellRolls';
5
+ export * from './getBalance';
6
+ export * from './getNetwork';
7
+ export * from './getActiveAccount';
8
+ export * from './setRpcUrl';
9
+ export * from './signMessage';
10
+ export * from './transfer';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,12 @@
1
+ export * from './callSC';
2
+ export * from './deploySC';
3
+ export * from './buyRolls';
4
+ export * from './sellRolls';
5
+ export * from './getBalance';
6
+ export * from './getNetwork';
7
+ export * from './getActiveAccount';
8
+ export * from './setRpcUrl';
9
+ export * from './signMessage';
10
+ export * from './transfer';
11
+ // Do not export these to the outside world. If it is needed, @massalabs/metamask-snap should be moved to direct dependency
12
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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"]}
@@ -0,0 +1,4 @@
1
+ import type { MetaMaskInpageProvider } from '@metamask/providers';
2
+ import type { SellRollsResponse } from '@massalabs/metamask-snap';
3
+ export declare const sellRolls: (provider: MetaMaskInpageProvider, params: SellRollsParams) => Promise<SellRollsResponse>;
4
+ //# sourceMappingURL=sellRolls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sellRolls.d.ts","sourceRoot":"","sources":["../../../../src/metamaskSnap/services/sellRolls.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,8BAE/B,QAAQ,iBAAiB,CAW3B,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { MASSA_SNAP_ID } from '../config';
2
+ export const sellRolls = async (provider, params) => {
3
+ return provider.request({
4
+ method: 'wallet_invokeSnap',
5
+ params: {
6
+ snapId: MASSA_SNAP_ID,
7
+ request: {
8
+ method: 'account.sellRolls',
9
+ params,
10
+ },
11
+ },
12
+ });
13
+ };
14
+ //# sourceMappingURL=sellRolls.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sellRolls.js","sourceRoot":"","sources":["../../../../src/metamaskSnap/services/sellRolls.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAM1C,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,QAAgC,EAChC,MAAuB,EACK,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 SellRollsParams,\n SellRollsResponse,\n} from '@massalabs/metamask-snap';\n\nexport const sellRolls = async (\n provider: MetaMaskInpageProvider,\n params: SellRollsParams,\n): Promise<SellRollsResponse> => {\n return provider.request({\n method: 'wallet_invokeSnap',\n params: {\n snapId: MASSA_SNAP_ID,\n request: {\n method: 'account.sellRolls',\n params,\n },\n },\n });\n};\n"]}
@@ -0,0 +1,4 @@
1
+ import type { MetaMaskInpageProvider } from '@metamask/providers';
2
+ import type { SetRpcUrlResponse } from '@massalabs/metamask-snap';
3
+ export declare const setRpcUrl: (provider: MetaMaskInpageProvider, params: SetRpcUrlParams) => Promise<SetRpcUrlResponse>;
4
+ //# sourceMappingURL=setRpcUrl.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setRpcUrl.d.ts","sourceRoot":"","sources":["../../../../src/metamaskSnap/services/setRpcUrl.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,8BAE/B,QAAQ,iBAAiB,CAW3B,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { MASSA_SNAP_ID } from '../config';
2
+ export const setRpcUrl = async (provider, params) => {
3
+ return provider.request({
4
+ method: 'wallet_invokeSnap',
5
+ params: {
6
+ snapId: MASSA_SNAP_ID,
7
+ request: {
8
+ method: 'Provider.setNetwork',
9
+ params,
10
+ },
11
+ },
12
+ });
13
+ };
14
+ //# sourceMappingURL=setRpcUrl.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"setRpcUrl.js","sourceRoot":"","sources":["../../../../src/metamaskSnap/services/setRpcUrl.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAM1C,MAAM,CAAC,MAAM,SAAS,GAAG,KAAK,EAC5B,QAAgC,EAChC,MAAuB,EACK,EAAE;IAC9B,OAAO,QAAQ,CAAC,OAAO,CAAC;QACtB,MAAM,EAAE,mBAAmB;QAC3B,MAAM,EAAE;YACN,MAAM,EAAE,aAAa;YACrB,OAAO,EAAE;gBACP,MAAM,EAAE,qBAAqB;gBAC7B,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 SetRpcUrlParams,\n SetRpcUrlResponse,\n} from '@massalabs/metamask-snap';\n\nexport const setRpcUrl = async (\n provider: MetaMaskInpageProvider,\n params: SetRpcUrlParams,\n): Promise<SetRpcUrlResponse> => {\n return provider.request({\n method: 'wallet_invokeSnap',\n params: {\n snapId: MASSA_SNAP_ID,\n request: {\n method: 'Provider.setNetwork',\n params,\n },\n },\n });\n};\n"]}
@@ -0,0 +1,4 @@
1
+ import type { MetaMaskInpageProvider } from '@metamask/providers';
2
+ import type { SignMessageResponse } from '@massalabs/metamask-snap';
3
+ export declare const signMessage: (provider: MetaMaskInpageProvider, params: SignMessageParams) => Promise<SignMessageResponse>;
4
+ //# sourceMappingURL=signMessage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signMessage.d.ts","sourceRoot":"","sources":["../../../../src/metamaskSnap/services/signMessage.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAElE,OAAO,KAAK,EAEV,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAElC,eAAO,MAAM,WAAW,aACZ,sBAAsB,gCAE/B,QAAQ,mBAAmB,CAW7B,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { MASSA_SNAP_ID } from '../config';
2
+ export const signMessage = async (provider, params) => {
3
+ return provider.request({
4
+ method: 'wallet_invokeSnap',
5
+ params: {
6
+ snapId: MASSA_SNAP_ID,
7
+ request: {
8
+ method: 'account.sign',
9
+ params,
10
+ },
11
+ },
12
+ });
13
+ };
14
+ //# sourceMappingURL=signMessage.js.map