@exodus/web3-ethereum-utils 4.0.0 → 4.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,7 +1,7 @@
1
+ import { tryParsingSIWE } from '@exodus/web3-utils';
1
2
  import assert from 'minimalistic-assert';
2
3
  import { getMessageType } from './simulation/getMessageType.js';
3
4
  import { simulateMessage } from './simulation/simulateMessage.js';
4
- import { tryParsingSIWE } from './simulation/tryParsingSIWE.js';
5
5
  export const createSimulateMessage = ({ apiEndpoint = 'https://simulation.a.exodus.io/simulateMessage', headers = {
6
6
  'X-Api-Version': '2023-06-05',
7
7
  }, } = {}) => async ({ message, url, asset, address, }) => {
@@ -14,12 +14,14 @@ export const createSimulateMessage = ({ apiEndpoint = 'https://simulation.a.exod
14
14
  if (messageType === 2 /* MessageTypeEnum.Unknown */) {
15
15
  return simulationResult;
16
16
  }
17
- tryParsingSIWE({
18
- message,
19
- messageType,
20
- url,
21
- simulationResult,
22
- });
17
+ if (messageType === 0 /* MessageTypeEnum.RawMessage */) {
18
+ tryParsingSIWE({
19
+ address,
20
+ message,
21
+ url,
22
+ simulationResult,
23
+ });
24
+ }
23
25
  await simulateMessage({
24
26
  address,
25
27
  message: {
@@ -153,13 +153,12 @@ export const simulateTransactions = async ({ transactions, apiEndpoint, origin,
153
153
  simulationResult.metadata.simulatedLocally = false;
154
154
  const { expectedStateChanges = {}, error } = response.simulationResults.aggregated;
155
155
  if (error) {
156
- const { humanReadableError } = response.simulationResults.aggregated;
157
156
  // ToDo: accept a logger dep and log the error
158
157
  // ToDo: consider pushing an error to the "warnings" list
159
158
  return {
160
159
  kind: 'error',
161
160
  error: 1 /* SimulationErrorMessages.SimulationFailed */,
162
- errorMessage: humanReadableError
161
+ errorMessage: error?.humanReadableError,
163
162
  };
164
163
  }
165
164
  const noExpectedStateChangesDetected = Object.keys(expectedStateChanges).length === 0;
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@exodus/web3-ethereum-utils",
3
3
  "description": "Web3 Ethereum utils.",
4
- "version": "4.0.0",
4
+ "version": "4.1.0",
5
5
  "type": "module",
6
6
  "sideEffects": false,
7
7
  "module": "lib/index.js",
@@ -39,7 +39,7 @@
39
39
  "dependencies": {
40
40
  "@exodus/basic-utils": "^3.0.1",
41
41
  "@exodus/ethereumjs": "^1.0.0",
42
- "@exodus/web3-utils": "^1.48.3",
42
+ "@exodus/web3-utils": "^1.49.0",
43
43
  "@metamask/eth-sig-util": "^4.0.1",
44
44
  "minimalistic-assert": "^1.0.1"
45
45
  },
@@ -48,5 +48,5 @@
48
48
  "url": "https://github.com/ExodusMovement/assets/issues?q=is%3Aissue+is%3Aopen+label%3Aweb3-ethereum-utils"
49
49
  },
50
50
  "homepage": "https://github.com/ExodusMovement/assets/tree/master/web3/web3-ethereum-utils",
51
- "gitHead": "9cc59fb6f6de9bdee27a48a9695763d46d3bc07b"
51
+ "gitHead": "f6e9ee7f3ee6ec75e5e774aa6cd1d7eb8a032a43"
52
52
  }
@@ -1,8 +0,0 @@
1
- import { MessageTypeEnum } from './getMessageType.js';
2
- import type { MessageSimulationResult } from '@exodus/web3-types';
3
- export declare const tryParsingSIWE: ({ message, messageType, url, simulationResult, }: {
4
- message: string;
5
- messageType: MessageTypeEnum;
6
- url: URL;
7
- simulationResult: MessageSimulationResult;
8
- }) => void;
@@ -1,20 +0,0 @@
1
- export const tryParsingSIWE = ({ message, messageType, url, simulationResult, }) => {
2
- if (messageType === 1 /* MessageTypeEnum.TypedData */) {
3
- return;
4
- }
5
- /*
6
- Some dApps don't comply with EIP-4361 and use their custom Sign-In messages. This code block detects such known custom SIWE messages.
7
- */
8
- if (url.hostname === 'rarible.com' &&
9
- message.includes('I want to login on Rarible')) {
10
- simulationResult.kind = {
11
- kind: 'SIWE',
12
- info: {
13
- date: new Date(),
14
- statement: 'I accept the Rarible Terms of Service https://static.rarible.com/terms.pdf and I am at least 13 years old.',
15
- },
16
- };
17
- }
18
- // TODO: add proper EIP-4361 parsing.
19
- return;
20
- };