@avalabs/vm-module-types 0.0.15 → 0.0.17

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 (51) hide show
  1. package/.turbo/turbo-build.log +116 -104
  2. package/.turbo/turbo-lint.log +1 -1
  3. package/CHANGELOG.md +12 -0
  4. package/dist/chunk-2KGTZTXY.cjs +7 -0
  5. package/dist/chunk-2KGTZTXY.cjs.map +1 -0
  6. package/dist/chunk-47KTBBRA.cjs +4 -0
  7. package/dist/chunk-47KTBBRA.cjs.map +1 -0
  8. package/dist/chunk-7Y6UGMPZ.js +5 -0
  9. package/dist/chunk-7Y6UGMPZ.js.map +1 -0
  10. package/dist/chunk-P6AM7I3B.js +3 -0
  11. package/dist/chunk-P6AM7I3B.js.map +1 -0
  12. package/dist/chunk-RKFOXZ35.js +5 -0
  13. package/dist/chunk-RKFOXZ35.js.map +1 -0
  14. package/dist/chunk-YVYCETG2.cjs +8 -0
  15. package/dist/chunk-YVYCETG2.cjs.map +1 -0
  16. package/dist/index.cjs +8 -7
  17. package/dist/index.d.cts +3 -2
  18. package/dist/index.d.ts +3 -2
  19. package/dist/index.js +3 -2
  20. package/dist/module.d.cts +1 -0
  21. package/dist/module.d.ts +1 -0
  22. package/dist/network-fee.d.cts +1 -1
  23. package/dist/network-fee.d.ts +1 -1
  24. package/dist/rpc.cjs +5 -5
  25. package/dist/rpc.d.cts +62 -21
  26. package/dist/rpc.d.ts +62 -21
  27. package/dist/rpc.js +1 -1
  28. package/dist/token.cjs +2 -2
  29. package/dist/token.d.cts +31 -8
  30. package/dist/token.d.ts +31 -8
  31. package/dist/token.js +1 -1
  32. package/dist/transaction-simulation.cjs +6 -0
  33. package/dist/transaction-simulation.cjs.map +1 -0
  34. package/dist/transaction-simulation.d.cts +27 -0
  35. package/dist/transaction-simulation.d.ts +27 -0
  36. package/dist/transaction-simulation.js +3 -0
  37. package/dist/transaction-simulation.js.map +1 -0
  38. package/package.json +2 -2
  39. package/src/index.ts +1 -0
  40. package/src/network-fee.ts +1 -1
  41. package/src/rpc.ts +64 -24
  42. package/src/token.ts +34 -7
  43. package/src/transaction-simulation.ts +29 -0
  44. package/dist/chunk-FKFLXQOJ.js +0 -5
  45. package/dist/chunk-FKFLXQOJ.js.map +0 -1
  46. package/dist/chunk-ISTALLTN.cjs +0 -8
  47. package/dist/chunk-ISTALLTN.cjs.map +0 -1
  48. package/dist/chunk-KVTVJNN4.cjs +0 -7
  49. package/dist/chunk-KVTVJNN4.cjs.map +0 -1
  50. package/dist/chunk-TSO5BGJ4.js +0 -5
  51. package/dist/chunk-TSO5BGJ4.js.map +0 -1
package/dist/rpc.d.cts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { TransactionRequest } from 'ethers';
2
2
  import { Caip2ChainId, Hex } from './common.cjs';
3
3
  import { JsonRpcError, OptionalDataWithOptionalCause, EthereumProviderError } from '@metamask/rpc-errors';
4
+ import { BalanceChange, TokenApprovals } from './transaction-simulation.cjs';
4
5
  import './token.cjs';
5
6
 
6
7
  declare enum RpcMethod {
@@ -10,10 +11,7 @@ declare enum RpcMethod {
10
11
  SIGN_TYPED_DATA_V1 = "eth_signTypedData_v1",
11
12
  SIGN_TYPED_DATA = "eth_signTypedData",
12
13
  PERSONAL_SIGN = "personal_sign",
13
- ETH_SIGN = "eth_sign",
14
- WALLET_ADD_ETHEREUM_CHAIN = "wallet_addEthereumChain",
15
- WALLET_SWITCH_ETHEREUM_CHAIN = "wallet_switchEthereumChain",
16
- WALLET_GET_ETHEREUM_CHAIN = "wallet_getEthereumChain"
14
+ ETH_SIGN = "eth_sign"
17
15
  }
18
16
  type DappInfo = {
19
17
  name: string;
@@ -35,47 +33,90 @@ type RpcResponse<R = unknown, E extends RpcError = JsonRpcError<OptionalDataWith
35
33
  } | {
36
34
  error: E;
37
35
  };
36
+ interface MessageTypeProperty {
37
+ name: string;
38
+ type: string;
39
+ }
40
+ interface MessageTypes {
41
+ EIP712Domain: MessageTypeProperty[];
42
+ [additionalProperties: string]: MessageTypeProperty[];
43
+ }
44
+ interface TypedData<T extends MessageTypes> {
45
+ types: T;
46
+ primaryType: keyof T;
47
+ domain: Record<string, unknown>;
48
+ message: Record<string, unknown>;
49
+ }
50
+ type TypedDataV1 = {
51
+ name: string;
52
+ type: string;
53
+ value: unknown;
54
+ }[];
38
55
  type DisplayData = {
39
56
  title: string;
57
+ dAppInfo?: {
58
+ name: string;
59
+ action: string;
60
+ logoUri?: string;
61
+ };
40
62
  network: {
41
63
  chainId: number;
42
64
  name: string;
43
65
  logoUri?: string;
44
66
  };
67
+ account?: string;
45
68
  messageDetails?: string;
46
69
  transactionDetails?: {
47
70
  website: string;
48
71
  from: string;
49
72
  to: string;
50
73
  data?: string;
74
+ type?: string;
51
75
  };
52
76
  networkFeeSelector?: boolean;
77
+ disclaimer?: string;
78
+ alert?: Alert;
79
+ balanceChange?: BalanceChange;
80
+ tokenApprovals?: TokenApprovals;
53
81
  };
54
- /**
55
- * Enum for different types of signing data.
56
- */
57
- declare enum SigningDataType {
58
- EVM_TRANSACTION = "evm_transaction",
59
- EVM_MESSAGE_ETH_SIGN = "evm_message_eth_sign",
60
- EVM_MESSAGE_PERSONAL_SIGN = "evm_message_personal_sign",
61
- EVM_MESSAGE_ETH_SIGN_TYPED_DATA = "evm_message_eth_sign_typed_data",
62
- EVM_MESSAGE_ETH_SIGN_TYPED_DATA_V1 = "evm_message_eth_sign_typed_data_v1",
63
- EVM_MESSAGE_ETH_SIGN_TYPED_DATA_V3 = "evm_message_eth_sign_typed_data_v3",
64
- EVM_MESSAGE_ETH_SIGN_TYPED_DATA_V4 = "evm_message_eth_sign_typed_data_v4",
65
- AVALANCHE_TRANSACTION = "avalanche_transaction",
66
- AVALANCHE_MESSAGE = "avalanche_message",
67
- BTC_TRANSACTION = "btc_transaction"
82
+ declare enum AlertType {
83
+ WARNING = "Warning",
84
+ DANGER = "Danger",
85
+ INFO = "Info"
68
86
  }
87
+ type AlertDetails = {
88
+ title: string;
89
+ description: string;
90
+ detailedDescription?: string;
91
+ actionTitles?: {
92
+ proceed: string;
93
+ reject: string;
94
+ };
95
+ };
96
+ type Alert = {
97
+ type: AlertType;
98
+ details: AlertDetails;
99
+ };
69
100
  type SigningData = {
70
- type: SigningDataType.EVM_TRANSACTION;
101
+ type: RpcMethod.ETH_SEND_TRANSACTION;
71
102
  account: string;
72
103
  chainId: number;
73
104
  data: TransactionRequest;
74
105
  } | {
75
- type: SigningDataType.EVM_MESSAGE_ETH_SIGN;
106
+ type: RpcMethod.ETH_SIGN | RpcMethod.PERSONAL_SIGN;
76
107
  account: string;
77
108
  chainId: number;
78
109
  data: string;
110
+ } | {
111
+ type: RpcMethod.SIGN_TYPED_DATA | RpcMethod.SIGN_TYPED_DATA_V1;
112
+ account: string;
113
+ chainId: number;
114
+ data: TypedData<MessageTypes> | TypedDataV1;
115
+ } | {
116
+ type: RpcMethod.SIGN_TYPED_DATA_V3 | RpcMethod.SIGN_TYPED_DATA_V4;
117
+ account: string;
118
+ chainId: number;
119
+ data: TypedData<MessageTypes>;
79
120
  };
80
121
  type ApprovalParams = {
81
122
  request: RpcRequest;
@@ -93,4 +134,4 @@ interface ApprovalController {
93
134
  onTransactionReverted: (txHash: Hex) => void;
94
135
  }
95
136
 
96
- export { ApprovalController, ApprovalParams, ApprovalResponse, DappInfo, DisplayData, RpcError, RpcMethod, RpcRequest, RpcResponse, SigningData, SigningDataType };
137
+ export { Alert, AlertDetails, AlertType, ApprovalController, ApprovalParams, ApprovalResponse, DappInfo, DisplayData, MessageTypeProperty, MessageTypes, RpcError, RpcMethod, RpcRequest, RpcResponse, SigningData, TypedData, TypedDataV1 };
package/dist/rpc.d.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import { TransactionRequest } from 'ethers';
2
2
  import { Caip2ChainId, Hex } from './common.js';
3
3
  import { JsonRpcError, OptionalDataWithOptionalCause, EthereumProviderError } from '@metamask/rpc-errors';
4
+ import { BalanceChange, TokenApprovals } from './transaction-simulation.js';
4
5
  import './token.js';
5
6
 
6
7
  declare enum RpcMethod {
@@ -10,10 +11,7 @@ declare enum RpcMethod {
10
11
  SIGN_TYPED_DATA_V1 = "eth_signTypedData_v1",
11
12
  SIGN_TYPED_DATA = "eth_signTypedData",
12
13
  PERSONAL_SIGN = "personal_sign",
13
- ETH_SIGN = "eth_sign",
14
- WALLET_ADD_ETHEREUM_CHAIN = "wallet_addEthereumChain",
15
- WALLET_SWITCH_ETHEREUM_CHAIN = "wallet_switchEthereumChain",
16
- WALLET_GET_ETHEREUM_CHAIN = "wallet_getEthereumChain"
14
+ ETH_SIGN = "eth_sign"
17
15
  }
18
16
  type DappInfo = {
19
17
  name: string;
@@ -35,47 +33,90 @@ type RpcResponse<R = unknown, E extends RpcError = JsonRpcError<OptionalDataWith
35
33
  } | {
36
34
  error: E;
37
35
  };
36
+ interface MessageTypeProperty {
37
+ name: string;
38
+ type: string;
39
+ }
40
+ interface MessageTypes {
41
+ EIP712Domain: MessageTypeProperty[];
42
+ [additionalProperties: string]: MessageTypeProperty[];
43
+ }
44
+ interface TypedData<T extends MessageTypes> {
45
+ types: T;
46
+ primaryType: keyof T;
47
+ domain: Record<string, unknown>;
48
+ message: Record<string, unknown>;
49
+ }
50
+ type TypedDataV1 = {
51
+ name: string;
52
+ type: string;
53
+ value: unknown;
54
+ }[];
38
55
  type DisplayData = {
39
56
  title: string;
57
+ dAppInfo?: {
58
+ name: string;
59
+ action: string;
60
+ logoUri?: string;
61
+ };
40
62
  network: {
41
63
  chainId: number;
42
64
  name: string;
43
65
  logoUri?: string;
44
66
  };
67
+ account?: string;
45
68
  messageDetails?: string;
46
69
  transactionDetails?: {
47
70
  website: string;
48
71
  from: string;
49
72
  to: string;
50
73
  data?: string;
74
+ type?: string;
51
75
  };
52
76
  networkFeeSelector?: boolean;
77
+ disclaimer?: string;
78
+ alert?: Alert;
79
+ balanceChange?: BalanceChange;
80
+ tokenApprovals?: TokenApprovals;
53
81
  };
54
- /**
55
- * Enum for different types of signing data.
56
- */
57
- declare enum SigningDataType {
58
- EVM_TRANSACTION = "evm_transaction",
59
- EVM_MESSAGE_ETH_SIGN = "evm_message_eth_sign",
60
- EVM_MESSAGE_PERSONAL_SIGN = "evm_message_personal_sign",
61
- EVM_MESSAGE_ETH_SIGN_TYPED_DATA = "evm_message_eth_sign_typed_data",
62
- EVM_MESSAGE_ETH_SIGN_TYPED_DATA_V1 = "evm_message_eth_sign_typed_data_v1",
63
- EVM_MESSAGE_ETH_SIGN_TYPED_DATA_V3 = "evm_message_eth_sign_typed_data_v3",
64
- EVM_MESSAGE_ETH_SIGN_TYPED_DATA_V4 = "evm_message_eth_sign_typed_data_v4",
65
- AVALANCHE_TRANSACTION = "avalanche_transaction",
66
- AVALANCHE_MESSAGE = "avalanche_message",
67
- BTC_TRANSACTION = "btc_transaction"
82
+ declare enum AlertType {
83
+ WARNING = "Warning",
84
+ DANGER = "Danger",
85
+ INFO = "Info"
68
86
  }
87
+ type AlertDetails = {
88
+ title: string;
89
+ description: string;
90
+ detailedDescription?: string;
91
+ actionTitles?: {
92
+ proceed: string;
93
+ reject: string;
94
+ };
95
+ };
96
+ type Alert = {
97
+ type: AlertType;
98
+ details: AlertDetails;
99
+ };
69
100
  type SigningData = {
70
- type: SigningDataType.EVM_TRANSACTION;
101
+ type: RpcMethod.ETH_SEND_TRANSACTION;
71
102
  account: string;
72
103
  chainId: number;
73
104
  data: TransactionRequest;
74
105
  } | {
75
- type: SigningDataType.EVM_MESSAGE_ETH_SIGN;
106
+ type: RpcMethod.ETH_SIGN | RpcMethod.PERSONAL_SIGN;
76
107
  account: string;
77
108
  chainId: number;
78
109
  data: string;
110
+ } | {
111
+ type: RpcMethod.SIGN_TYPED_DATA | RpcMethod.SIGN_TYPED_DATA_V1;
112
+ account: string;
113
+ chainId: number;
114
+ data: TypedData<MessageTypes> | TypedDataV1;
115
+ } | {
116
+ type: RpcMethod.SIGN_TYPED_DATA_V3 | RpcMethod.SIGN_TYPED_DATA_V4;
117
+ account: string;
118
+ chainId: number;
119
+ data: TypedData<MessageTypes>;
79
120
  };
80
121
  type ApprovalParams = {
81
122
  request: RpcRequest;
@@ -93,4 +134,4 @@ interface ApprovalController {
93
134
  onTransactionReverted: (txHash: Hex) => void;
94
135
  }
95
136
 
96
- export { ApprovalController, ApprovalParams, ApprovalResponse, DappInfo, DisplayData, RpcError, RpcMethod, RpcRequest, RpcResponse, SigningData, SigningDataType };
137
+ export { Alert, AlertDetails, AlertType, ApprovalController, ApprovalParams, ApprovalResponse, DappInfo, DisplayData, MessageTypeProperty, MessageTypes, RpcError, RpcMethod, RpcRequest, RpcResponse, SigningData, TypedData, TypedDataV1 };
package/dist/rpc.js CHANGED
@@ -1,3 +1,3 @@
1
- export { a as RpcMethod, b as SigningDataType } from './chunk-FKFLXQOJ.js';
1
+ export { b as AlertType, a as RpcMethod } from './chunk-RKFOXZ35.js';
2
2
  //# sourceMappingURL=out.js.map
3
3
  //# sourceMappingURL=rpc.js.map
package/dist/token.cjs CHANGED
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var chunkKVTVJNN4_cjs = require('./chunk-KVTVJNN4.cjs');
3
+ var chunk2KGTZTXY_cjs = require('./chunk-2KGTZTXY.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, 'TokenType', {
8
8
  enumerable: true,
9
- get: function () { return chunkKVTVJNN4_cjs.a; }
9
+ get: function () { return chunk2KGTZTXY_cjs.a; }
10
10
  });
11
11
  //# sourceMappingURL=out.js.map
12
12
  //# sourceMappingURL=token.cjs.map
package/dist/token.d.cts CHANGED
@@ -1,3 +1,10 @@
1
+ declare enum TokenType {
2
+ NATIVE = "NATIVE",
3
+ ERC20 = "ERC20",
4
+ ERC721 = "ERC721",
5
+ ERC1155 = "ERC1155",
6
+ NONERC = "NONERC"
7
+ }
1
8
  interface NetworkToken {
2
9
  name: string;
3
10
  symbol: string;
@@ -5,21 +12,37 @@ interface NetworkToken {
5
12
  logoUri?: string;
6
13
  description?: string;
7
14
  }
8
- interface NetworkContractToken {
15
+ type NetworkContractToken = ERC20Token | ERC1155Token | ERC721Token | NONERCToken;
16
+ interface ERC20Token {
9
17
  address: string;
10
18
  chainId?: number;
11
19
  color?: string;
12
- contractType: string;
20
+ type: TokenType.ERC20;
13
21
  decimals: number;
14
22
  logoUri?: string;
15
23
  name: string;
16
24
  symbol: string;
17
25
  }
18
- declare enum TokenType {
19
- NATIVE = "NATIVE",
20
- ERC20 = "ERC20",
21
- ERC721 = "ERC721",
22
- ERC1155 = "ERC1155"
26
+ interface ERC1155Token {
27
+ address: string;
28
+ type: TokenType.ERC1155;
29
+ logoUri?: string;
30
+ name?: string;
31
+ symbol?: string;
32
+ }
33
+ interface ERC721Token {
34
+ address: string;
35
+ type: TokenType.ERC721;
36
+ logoUri?: string;
37
+ name?: string;
38
+ symbol?: string;
39
+ }
40
+ interface NONERCToken {
41
+ address: string;
42
+ type: TokenType.NONERC;
43
+ logoUri?: string;
44
+ name?: string;
45
+ symbol?: string;
23
46
  }
24
47
 
25
- export { NetworkContractToken, NetworkToken, TokenType };
48
+ export { ERC1155Token, ERC20Token, ERC721Token, NONERCToken, NetworkContractToken, NetworkToken, TokenType };
package/dist/token.d.ts CHANGED
@@ -1,3 +1,10 @@
1
+ declare enum TokenType {
2
+ NATIVE = "NATIVE",
3
+ ERC20 = "ERC20",
4
+ ERC721 = "ERC721",
5
+ ERC1155 = "ERC1155",
6
+ NONERC = "NONERC"
7
+ }
1
8
  interface NetworkToken {
2
9
  name: string;
3
10
  symbol: string;
@@ -5,21 +12,37 @@ interface NetworkToken {
5
12
  logoUri?: string;
6
13
  description?: string;
7
14
  }
8
- interface NetworkContractToken {
15
+ type NetworkContractToken = ERC20Token | ERC1155Token | ERC721Token | NONERCToken;
16
+ interface ERC20Token {
9
17
  address: string;
10
18
  chainId?: number;
11
19
  color?: string;
12
- contractType: string;
20
+ type: TokenType.ERC20;
13
21
  decimals: number;
14
22
  logoUri?: string;
15
23
  name: string;
16
24
  symbol: string;
17
25
  }
18
- declare enum TokenType {
19
- NATIVE = "NATIVE",
20
- ERC20 = "ERC20",
21
- ERC721 = "ERC721",
22
- ERC1155 = "ERC1155"
26
+ interface ERC1155Token {
27
+ address: string;
28
+ type: TokenType.ERC1155;
29
+ logoUri?: string;
30
+ name?: string;
31
+ symbol?: string;
32
+ }
33
+ interface ERC721Token {
34
+ address: string;
35
+ type: TokenType.ERC721;
36
+ logoUri?: string;
37
+ name?: string;
38
+ symbol?: string;
39
+ }
40
+ interface NONERCToken {
41
+ address: string;
42
+ type: TokenType.NONERC;
43
+ logoUri?: string;
44
+ name?: string;
45
+ symbol?: string;
23
46
  }
24
47
 
25
- export { NetworkContractToken, NetworkToken, TokenType };
48
+ export { ERC1155Token, ERC20Token, ERC721Token, NONERCToken, NetworkContractToken, NetworkToken, TokenType };
package/dist/token.js CHANGED
@@ -1,3 +1,3 @@
1
- export { a as TokenType } from './chunk-TSO5BGJ4.js';
1
+ export { a as TokenType } from './chunk-7Y6UGMPZ.js';
2
2
  //# sourceMappingURL=out.js.map
3
3
  //# sourceMappingURL=token.js.map
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ require('./chunk-47KTBBRA.cjs');
4
+
5
+ //# sourceMappingURL=out.js.map
6
+ //# sourceMappingURL=transaction-simulation.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
1
+ import { NetworkContractToken, NetworkToken } from './token.cjs';
2
+
3
+ type BalanceChange = {
4
+ ins: TokenDiff[];
5
+ outs: TokenDiff[];
6
+ };
7
+ type TokenDiff = {
8
+ token: NetworkContractToken | NetworkToken;
9
+ items: TokenDiffItem[];
10
+ };
11
+ type TokenDiffItem = {
12
+ displayValue: string;
13
+ usdPrice: string | undefined;
14
+ };
15
+ type TokenApproval = {
16
+ token: NetworkContractToken;
17
+ spenderAddress: string;
18
+ value?: string;
19
+ usdPrice?: string;
20
+ logoUri?: string;
21
+ };
22
+ type TokenApprovals = {
23
+ isEditable: boolean;
24
+ approvals: TokenApproval[];
25
+ };
26
+
27
+ export { BalanceChange, TokenApproval, TokenApprovals, TokenDiff, TokenDiffItem };
@@ -0,0 +1,27 @@
1
+ import { NetworkContractToken, NetworkToken } from './token.js';
2
+
3
+ type BalanceChange = {
4
+ ins: TokenDiff[];
5
+ outs: TokenDiff[];
6
+ };
7
+ type TokenDiff = {
8
+ token: NetworkContractToken | NetworkToken;
9
+ items: TokenDiffItem[];
10
+ };
11
+ type TokenDiffItem = {
12
+ displayValue: string;
13
+ usdPrice: string | undefined;
14
+ };
15
+ type TokenApproval = {
16
+ token: NetworkContractToken;
17
+ spenderAddress: string;
18
+ value?: string;
19
+ usdPrice?: string;
20
+ logoUri?: string;
21
+ };
22
+ type TokenApprovals = {
23
+ isEditable: boolean;
24
+ approvals: TokenApproval[];
25
+ };
26
+
27
+ export { BalanceChange, TokenApproval, TokenApprovals, TokenDiff, TokenDiffItem };
@@ -0,0 +1,3 @@
1
+ import './chunk-P6AM7I3B.js';
2
+ //# sourceMappingURL=out.js.map
3
+ //# sourceMappingURL=transaction-simulation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@avalabs/vm-module-types",
3
- "version": "0.0.15",
3
+ "version": "0.0.17",
4
4
  "main": "dist/index.cjs",
5
5
  "module": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -18,7 +18,7 @@
18
18
  "@avalabs/glacier-sdk": "v2.8.0-alpha.193",
19
19
  "@avalabs/utils-sdk": "2.8.0-alpha.193",
20
20
  "@internal/tsup-config": "0.0.1",
21
- "eslint-config-custom": "0.0.3"
21
+ "eslint-config-custom": "0.0.1"
22
22
  },
23
23
  "peerDependencies": {
24
24
  "ethers": "^6.8.1"
package/src/index.ts CHANGED
@@ -7,3 +7,4 @@ export * from './network-fee';
7
7
  export * from './rpc';
8
8
  export * from './token';
9
9
  export * from './transaction-history';
10
+ export * from './transaction-simulation';
@@ -2,6 +2,6 @@ export type NetworkFees = {
2
2
  low: { maxFeePerGas: bigint; maxPriorityFeePerGas?: bigint };
3
3
  medium: { maxFeePerGas: bigint; maxPriorityFeePerGas?: bigint };
4
4
  high: { maxFeePerGas: bigint; maxPriorityFeePerGas?: bigint };
5
- baseFee: bigint;
5
+ baseFee?: bigint;
6
6
  isFixedFee: boolean;
7
7
  };
package/src/rpc.ts CHANGED
@@ -1,6 +1,7 @@
1
1
  import type { TransactionRequest } from 'ethers';
2
2
  import type { Caip2ChainId, Hex } from './common';
3
3
  import type { JsonRpcError, EthereumProviderError, OptionalDataWithOptionalCause } from '@metamask/rpc-errors';
4
+ import type { BalanceChange, TokenApprovals } from './transaction-simulation';
4
5
 
5
6
  export enum RpcMethod {
6
7
  /* EVM */
@@ -11,9 +12,6 @@ export enum RpcMethod {
11
12
  SIGN_TYPED_DATA = 'eth_signTypedData',
12
13
  PERSONAL_SIGN = 'personal_sign',
13
14
  ETH_SIGN = 'eth_sign',
14
- WALLET_ADD_ETHEREUM_CHAIN = 'wallet_addEthereumChain',
15
- WALLET_SWITCH_ETHEREUM_CHAIN = 'wallet_switchEthereumChain',
16
- WALLET_GET_ETHEREUM_CHAIN = 'wallet_getEthereumChain',
17
15
  }
18
16
 
19
17
  export type DappInfo = {
@@ -44,56 +42,98 @@ export type RpcResponse<R = unknown, E extends RpcError = JsonRpcError<OptionalD
44
42
  error: E;
45
43
  };
46
44
 
45
+ export interface MessageTypeProperty {
46
+ name: string;
47
+ type: string;
48
+ }
49
+
50
+ export interface MessageTypes {
51
+ EIP712Domain: MessageTypeProperty[];
52
+ [additionalProperties: string]: MessageTypeProperty[];
53
+ }
54
+
55
+ export interface TypedData<T extends MessageTypes> {
56
+ types: T;
57
+ primaryType: keyof T;
58
+ domain: Record<string, unknown>;
59
+ message: Record<string, unknown>;
60
+ }
61
+
62
+ export type TypedDataV1 = { name: string; type: string; value: unknown }[];
63
+
47
64
  export type DisplayData = {
48
65
  title: string;
66
+ dAppInfo?: {
67
+ name: string;
68
+ action: string;
69
+ logoUri?: string;
70
+ };
49
71
  network: {
50
72
  chainId: number;
51
73
  name: string;
52
74
  logoUri?: string;
53
75
  };
76
+ account?: string;
54
77
  messageDetails?: string;
55
78
  transactionDetails?: {
56
79
  website: string;
57
80
  from: string;
58
81
  to: string;
59
82
  data?: string;
83
+ type?: string;
60
84
  };
61
85
  networkFeeSelector?: boolean;
86
+ disclaimer?: string;
87
+ alert?: Alert;
88
+ balanceChange?: BalanceChange;
89
+ tokenApprovals?: TokenApprovals;
62
90
  };
63
91
 
64
- /**
65
- * Enum for different types of signing data.
66
- */
67
- export enum SigningDataType {
68
- // EVM signing data types
69
- EVM_TRANSACTION = 'evm_transaction',
70
- EVM_MESSAGE_ETH_SIGN = 'evm_message_eth_sign',
71
- EVM_MESSAGE_PERSONAL_SIGN = 'evm_message_personal_sign',
72
- EVM_MESSAGE_ETH_SIGN_TYPED_DATA = 'evm_message_eth_sign_typed_data',
73
- EVM_MESSAGE_ETH_SIGN_TYPED_DATA_V1 = 'evm_message_eth_sign_typed_data_v1',
74
- EVM_MESSAGE_ETH_SIGN_TYPED_DATA_V3 = 'evm_message_eth_sign_typed_data_v3',
75
- EVM_MESSAGE_ETH_SIGN_TYPED_DATA_V4 = 'evm_message_eth_sign_typed_data_v4',
76
-
77
- // Avalanche signing data types
78
- AVALANCHE_TRANSACTION = 'avalanche_transaction',
79
- AVALANCHE_MESSAGE = 'avalanche_message',
80
-
81
- // Bitcoin signing data types
82
- BTC_TRANSACTION = 'btc_transaction',
92
+ export enum AlertType {
93
+ WARNING = 'Warning',
94
+ DANGER = 'Danger',
95
+ INFO = 'Info',
83
96
  }
84
97
 
98
+ export type AlertDetails = {
99
+ title: string;
100
+ description: string;
101
+ detailedDescription?: string;
102
+ actionTitles?: {
103
+ proceed: string;
104
+ reject: string;
105
+ };
106
+ };
107
+
108
+ export type Alert = {
109
+ type: AlertType;
110
+ details: AlertDetails;
111
+ };
112
+
85
113
  export type SigningData =
86
114
  | {
87
- type: SigningDataType.EVM_TRANSACTION;
115
+ type: RpcMethod.ETH_SEND_TRANSACTION;
88
116
  account: string;
89
117
  chainId: number;
90
118
  data: TransactionRequest;
91
119
  }
92
120
  | {
93
- type: SigningDataType.EVM_MESSAGE_ETH_SIGN;
121
+ type: RpcMethod.ETH_SIGN | RpcMethod.PERSONAL_SIGN;
94
122
  account: string;
95
123
  chainId: number;
96
124
  data: string;
125
+ }
126
+ | {
127
+ type: RpcMethod.SIGN_TYPED_DATA | RpcMethod.SIGN_TYPED_DATA_V1;
128
+ account: string;
129
+ chainId: number;
130
+ data: TypedData<MessageTypes> | TypedDataV1;
131
+ }
132
+ | {
133
+ type: RpcMethod.SIGN_TYPED_DATA_V3 | RpcMethod.SIGN_TYPED_DATA_V4;
134
+ account: string;
135
+ chainId: number;
136
+ data: TypedData<MessageTypes>;
97
137
  };
98
138
 
99
139
  export type ApprovalParams = {