@metamask/client-utils 1.0.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.
Files changed (78) hide show
  1. package/CHANGELOG.md +27 -0
  2. package/LICENSE +6 -0
  3. package/LICENSE.APACHE2 +201 -0
  4. package/LICENSE.MIT +21 -0
  5. package/README.md +15 -0
  6. package/dist/index.cjs +10 -0
  7. package/dist/index.cjs.map +1 -0
  8. package/dist/index.d.cts +5 -0
  9. package/dist/index.d.cts.map +1 -0
  10. package/dist/index.d.mts +5 -0
  11. package/dist/index.d.mts.map +1 -0
  12. package/dist/index.mjs +4 -0
  13. package/dist/index.mjs.map +1 -0
  14. package/dist/mappers/api-transaction-mapper.cjs +300 -0
  15. package/dist/mappers/api-transaction-mapper.cjs.map +1 -0
  16. package/dist/mappers/api-transaction-mapper.d.cts +15 -0
  17. package/dist/mappers/api-transaction-mapper.d.cts.map +1 -0
  18. package/dist/mappers/api-transaction-mapper.d.mts +15 -0
  19. package/dist/mappers/api-transaction-mapper.d.mts.map +1 -0
  20. package/dist/mappers/api-transaction-mapper.mjs +296 -0
  21. package/dist/mappers/api-transaction-mapper.mjs.map +1 -0
  22. package/dist/mappers/constants.cjs +46 -0
  23. package/dist/mappers/constants.cjs.map +1 -0
  24. package/dist/mappers/constants.d.cts +25 -0
  25. package/dist/mappers/constants.d.cts.map +1 -0
  26. package/dist/mappers/constants.d.mts +25 -0
  27. package/dist/mappers/constants.d.mts.map +1 -0
  28. package/dist/mappers/constants.mjs +43 -0
  29. package/dist/mappers/constants.mjs.map +1 -0
  30. package/dist/mappers/helpers/caip.cjs +100 -0
  31. package/dist/mappers/helpers/caip.cjs.map +1 -0
  32. package/dist/mappers/helpers/caip.d.cts +32 -0
  33. package/dist/mappers/helpers/caip.d.cts.map +1 -0
  34. package/dist/mappers/helpers/caip.d.mts +32 -0
  35. package/dist/mappers/helpers/caip.d.mts.map +1 -0
  36. package/dist/mappers/helpers/caip.mjs +94 -0
  37. package/dist/mappers/helpers/caip.mjs.map +1 -0
  38. package/dist/mappers/helpers/token-metadata.cjs +31 -0
  39. package/dist/mappers/helpers/token-metadata.cjs.map +1 -0
  40. package/dist/mappers/helpers/token-metadata.d.cts +8 -0
  41. package/dist/mappers/helpers/token-metadata.d.cts.map +1 -0
  42. package/dist/mappers/helpers/token-metadata.d.mts +8 -0
  43. package/dist/mappers/helpers/token-metadata.d.mts.map +1 -0
  44. package/dist/mappers/helpers/token-metadata.mjs +31 -0
  45. package/dist/mappers/helpers/token-metadata.mjs.map +1 -0
  46. package/dist/mappers/helpers/transactions.cjs +240 -0
  47. package/dist/mappers/helpers/transactions.cjs.map +1 -0
  48. package/dist/mappers/helpers/transactions.d.cts +59 -0
  49. package/dist/mappers/helpers/transactions.d.cts.map +1 -0
  50. package/dist/mappers/helpers/transactions.d.mts +59 -0
  51. package/dist/mappers/helpers/transactions.d.mts.map +1 -0
  52. package/dist/mappers/helpers/transactions.mjs +228 -0
  53. package/dist/mappers/helpers/transactions.mjs.map +1 -0
  54. package/dist/mappers/keyring-transaction-mapper.cjs +143 -0
  55. package/dist/mappers/keyring-transaction-mapper.cjs.map +1 -0
  56. package/dist/mappers/keyring-transaction-mapper.d.cts +15 -0
  57. package/dist/mappers/keyring-transaction-mapper.d.cts.map +1 -0
  58. package/dist/mappers/keyring-transaction-mapper.d.mts +15 -0
  59. package/dist/mappers/keyring-transaction-mapper.d.mts.map +1 -0
  60. package/dist/mappers/keyring-transaction-mapper.mjs +139 -0
  61. package/dist/mappers/keyring-transaction-mapper.mjs.map +1 -0
  62. package/dist/mappers/local-transaction-mapper.cjs +420 -0
  63. package/dist/mappers/local-transaction-mapper.cjs.map +1 -0
  64. package/dist/mappers/local-transaction-mapper.d.cts +20 -0
  65. package/dist/mappers/local-transaction-mapper.d.cts.map +1 -0
  66. package/dist/mappers/local-transaction-mapper.d.mts +20 -0
  67. package/dist/mappers/local-transaction-mapper.d.mts.map +1 -0
  68. package/dist/mappers/local-transaction-mapper.mjs +416 -0
  69. package/dist/mappers/local-transaction-mapper.mjs.map +1 -0
  70. package/dist/types.cjs +3 -0
  71. package/dist/types.cjs.map +1 -0
  72. package/dist/types.d.cts +73 -0
  73. package/dist/types.d.cts.map +1 -0
  74. package/dist/types.d.mts +73 -0
  75. package/dist/types.d.mts.map +1 -0
  76. package/dist/types.mjs +2 -0
  77. package/dist/types.mjs.map +1 -0
  78. package/package.json +79 -0
@@ -0,0 +1,73 @@
1
+ import type { ValueTransfer as _ValueTransfer } from "@metamask/core-backend";
2
+ import type { CaipChainId } from "@metamask/utils";
3
+ export type ActivityKind = 'receive' | 'sell' | 'buy' | 'deposit' | 'swap' | 'claim' | 'claimMusdBonus' | 'send' | 'wrap' | 'unwrap' | 'approveSpendingCap' | 'revokeSpendingCap' | 'increaseSpendingCap' | 'contractInteraction' | 'contractDeployment' | 'bridge' | 'convert' | 'nftBuy' | 'nftMint' | 'nftSell' | 'smartAccountUpgrade' | 'lendingDeposit' | 'lendingWithdrawal' | 'predictionsAddFunds' | 'predictionsWithdrawFunds' | 'predictionClaimWinnings' | 'predictionCashedOut' | 'predictionPlaced' | 'perpsAddFunds' | 'perpsWithdraw' | 'perpsOpenLong' | 'perpsCloseLong' | 'perpsCloseLongLiquidated' | 'perpsCloseLongStopLoss' | 'perpsOpenShort' | 'perpsCloseShort' | 'perpsCloseShortLiquidated' | 'perpsCloseShortStopLoss' | 'perpsPaidFundingFees' | 'perpsReceivedFundingFees' | 'perpsCloseShortTakeProfit' | 'perpsCloseLongTakeProfit' | 'marketShort' | 'stopMarketCloseShort' | 'marketCloseShort';
4
+ export type Status = 'pending' | 'success' | 'failed' | 'cancelled';
5
+ export type TokenAmount = {
6
+ amount?: string;
7
+ decimals?: number;
8
+ symbol?: string;
9
+ assetId?: string;
10
+ direction: 'in' | 'out';
11
+ };
12
+ export type FiatAmount = {
13
+ amount: string;
14
+ currency?: string;
15
+ };
16
+ export type Fee = {
17
+ type: string;
18
+ amount?: string;
19
+ decimals?: number;
20
+ symbol?: string;
21
+ assetId?: string;
22
+ };
23
+ type ActivityData<Type extends ActivityKind, Data> = {
24
+ type: Type;
25
+ chainId: CaipChainId;
26
+ status: Status;
27
+ timestamp: number;
28
+ hash?: string;
29
+ data: Data;
30
+ };
31
+ export type ActivityItem = ActivityData<'approveSpendingCap' | 'revokeSpendingCap' | 'increaseSpendingCap', {
32
+ from?: string;
33
+ token?: TokenAmount;
34
+ fees?: Fee[];
35
+ }> | ActivityData<'send' | 'receive', {
36
+ from: string;
37
+ to: string;
38
+ token?: TokenAmount;
39
+ fees?: Fee[];
40
+ }> | ActivityData<'nftBuy' | 'nftMint' | 'nftSell', {
41
+ from?: string;
42
+ to?: string;
43
+ token?: TokenAmount;
44
+ paymentToken?: TokenAmount;
45
+ }> | ActivityData<'swap' | 'bridge' | 'convert' | 'lendingDeposit' | 'lendingWithdrawal' | 'wrap' | 'unwrap', {
46
+ from?: string;
47
+ sourceToken?: TokenAmount;
48
+ destinationToken?: TokenAmount;
49
+ fees?: Fee[];
50
+ }> | ActivityData<'buy' | 'claim' | 'deposit' | 'claimMusdBonus', {
51
+ from?: string;
52
+ token?: TokenAmount;
53
+ }> | ActivityData<'perpsAddFunds' | 'perpsWithdraw', {
54
+ from?: string;
55
+ fiat?: FiatAmount;
56
+ networkFee?: FiatAmount;
57
+ token?: TokenAmount;
58
+ }> | ActivityData<'contractInteraction', {
59
+ from: string;
60
+ to: string;
61
+ token?: TokenAmount;
62
+ fees?: Fee[];
63
+ methodId?: string;
64
+ transactionCategory?: string;
65
+ transactionProtocol?: string;
66
+ }>;
67
+ export type ValueTransfer = _ValueTransfer & {
68
+ contractAddress: string;
69
+ symbol: string;
70
+ name: string;
71
+ };
72
+ export {};
73
+ //# sourceMappingURL=types.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.mts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/dist/types.mjs ADDED
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=types.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.mjs","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"","sourcesContent":["import type { ValueTransfer as _ValueTransfer } from '@metamask/core-backend';\nimport type { CaipChainId } from '@metamask/utils';\n\nexport type ActivityKind =\n | 'receive'\n | 'sell'\n | 'buy'\n | 'deposit'\n | 'swap'\n | 'claim'\n | 'claimMusdBonus'\n | 'send'\n | 'wrap'\n | 'unwrap'\n | 'approveSpendingCap'\n | 'revokeSpendingCap'\n | 'increaseSpendingCap'\n | 'contractInteraction'\n | 'contractDeployment'\n | 'bridge'\n | 'convert'\n | 'nftBuy'\n | 'nftMint'\n | 'nftSell'\n | 'smartAccountUpgrade'\n | 'lendingDeposit'\n | 'lendingWithdrawal'\n | 'predictionsAddFunds'\n | 'predictionsWithdrawFunds'\n | 'predictionClaimWinnings'\n | 'predictionCashedOut'\n | 'predictionPlaced'\n | 'perpsAddFunds'\n | 'perpsWithdraw'\n | 'perpsOpenLong'\n | 'perpsCloseLong'\n | 'perpsCloseLongLiquidated'\n | 'perpsCloseLongStopLoss'\n | 'perpsOpenShort'\n | 'perpsCloseShort'\n | 'perpsCloseShortLiquidated'\n | 'perpsCloseShortStopLoss'\n | 'perpsPaidFundingFees'\n | 'perpsReceivedFundingFees'\n | 'perpsCloseShortTakeProfit'\n | 'perpsCloseLongTakeProfit'\n | 'marketShort'\n | 'stopMarketCloseShort'\n | 'marketCloseShort';\n\nexport type Status = 'pending' | 'success' | 'failed' | 'cancelled';\n\nexport type TokenAmount = {\n amount?: string;\n decimals?: number;\n symbol?: string;\n assetId?: string;\n direction: 'in' | 'out';\n};\n\nexport type FiatAmount = {\n amount: string;\n currency?: string;\n};\n\nexport type Fee = {\n type: string;\n amount?: string;\n decimals?: number;\n symbol?: string;\n assetId?: string;\n};\n\ntype ActivityData<Type extends ActivityKind, Data> = {\n type: Type;\n chainId: CaipChainId;\n status: Status;\n timestamp: number;\n hash?: string;\n data: Data;\n};\n\nexport type ActivityItem =\n | ActivityData<\n 'approveSpendingCap' | 'revokeSpendingCap' | 'increaseSpendingCap',\n {\n from?: string;\n token?: TokenAmount;\n fees?: Fee[];\n }\n >\n | ActivityData<\n 'send' | 'receive',\n {\n from: string;\n to: string;\n token?: TokenAmount;\n fees?: Fee[];\n }\n >\n | ActivityData<\n 'nftBuy' | 'nftMint' | 'nftSell',\n {\n from?: string;\n to?: string;\n token?: TokenAmount;\n paymentToken?: TokenAmount;\n }\n >\n | ActivityData<\n | 'swap'\n | 'bridge'\n | 'convert'\n | 'lendingDeposit'\n | 'lendingWithdrawal'\n | 'wrap'\n | 'unwrap',\n {\n from?: string;\n sourceToken?: TokenAmount;\n destinationToken?: TokenAmount;\n fees?: Fee[];\n }\n >\n | ActivityData<\n 'buy' | 'claim' | 'deposit' | 'claimMusdBonus',\n {\n from?: string;\n token?: TokenAmount;\n }\n >\n | ActivityData<\n 'perpsAddFunds' | 'perpsWithdraw',\n {\n from?: string;\n fiat?: FiatAmount;\n networkFee?: FiatAmount;\n token?: TokenAmount;\n }\n >\n | ActivityData<\n 'contractInteraction',\n {\n from: string;\n to: string;\n token?: TokenAmount;\n fees?: Fee[];\n methodId?: string;\n transactionCategory?: string;\n transactionProtocol?: string;\n }\n >;\n\n// Note: Update core-backend\nexport type ValueTransfer = _ValueTransfer & {\n contractAddress: string;\n symbol: string;\n name: string;\n};\n"]}
package/package.json ADDED
@@ -0,0 +1,79 @@
1
+ {
2
+ "name": "@metamask/client-utils",
3
+ "version": "1.0.0",
4
+ "description": "Shared functions and utilities used across MetaMask clients (extension and mobile)",
5
+ "keywords": [
6
+ "Ethereum",
7
+ "MetaMask"
8
+ ],
9
+ "homepage": "https://github.com/MetaMask/core/tree/main/packages/client-utils#readme",
10
+ "bugs": {
11
+ "url": "https://github.com/MetaMask/core/issues"
12
+ },
13
+ "license": "(MIT OR Apache-2.0)",
14
+ "repository": {
15
+ "type": "git",
16
+ "url": "https://github.com/MetaMask/core.git"
17
+ },
18
+ "files": [
19
+ "dist/"
20
+ ],
21
+ "sideEffects": false,
22
+ "main": "./dist/index.cjs",
23
+ "types": "./dist/index.d.cts",
24
+ "exports": {
25
+ ".": {
26
+ "import": {
27
+ "types": "./dist/index.d.mts",
28
+ "default": "./dist/index.mjs"
29
+ },
30
+ "require": {
31
+ "types": "./dist/index.d.cts",
32
+ "default": "./dist/index.cjs"
33
+ }
34
+ },
35
+ "./package.json": "./package.json"
36
+ },
37
+ "publishConfig": {
38
+ "access": "public",
39
+ "registry": "https://registry.npmjs.org/"
40
+ },
41
+ "scripts": {
42
+ "build": "ts-bridge --project tsconfig.build.json --verbose --clean --no-references",
43
+ "build:all": "ts-bridge --project tsconfig.build.json --verbose --clean",
44
+ "build:docs": "typedoc",
45
+ "changelog:update": "../../scripts/update-changelog.sh @metamask/client-utils",
46
+ "changelog:validate": "../../scripts/validate-changelog.sh @metamask/client-utils",
47
+ "messenger-action-types:check": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --check",
48
+ "messenger-action-types:generate": "tsx ../../packages/messenger-cli/src/cli.ts --formatter oxfmt --generate",
49
+ "since-latest-release": "../../scripts/since-latest-release.sh",
50
+ "test": "NODE_OPTIONS=--experimental-vm-modules jest --reporters=jest-silent-reporter",
51
+ "test:clean": "NODE_OPTIONS=--experimental-vm-modules jest --clearCache",
52
+ "test:verbose": "NODE_OPTIONS=--experimental-vm-modules jest --verbose",
53
+ "test:watch": "NODE_OPTIONS=--experimental-vm-modules jest --watch"
54
+ },
55
+ "dependencies": {
56
+ "@metamask/contract-metadata": "^2.4.0",
57
+ "@metamask/controller-utils": "^12.3.0",
58
+ "@metamask/core-backend": "^6.5.0",
59
+ "@metamask/keyring-api": "^23.5.0",
60
+ "@metamask/transaction-controller": "^68.3.0",
61
+ "@metamask/utils": "^11.11.0"
62
+ },
63
+ "devDependencies": {
64
+ "@ethersproject/abi": "^5.7.0",
65
+ "@metamask/auto-changelog": "^6.1.0",
66
+ "@ts-bridge/cli": "^0.6.4",
67
+ "@types/jest": "^29.5.14",
68
+ "deepmerge": "^4.2.2",
69
+ "jest": "^29.7.0",
70
+ "ts-jest": "^29.2.5",
71
+ "tsx": "^4.20.5",
72
+ "typedoc": "^0.25.13",
73
+ "typedoc-plugin-missing-exports": "^2.0.0",
74
+ "typescript": "~5.3.3"
75
+ },
76
+ "engines": {
77
+ "node": "^18.18 || >=20"
78
+ }
79
+ }