@avalabs/vm-module-types 0.0.0-token-unit-20240812141223 → 0.0.0-trigger-release-20260325154758

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 (116) hide show
  1. package/dist/account.cjs +2 -2
  2. package/dist/account.d.cts +38 -2
  3. package/dist/account.d.ts +38 -2
  4. package/dist/account.js +1 -1
  5. package/dist/balance.d.cts +48 -20
  6. package/dist/balance.d.ts +48 -20
  7. package/dist/chunk-4NMX4VK7.cjs +7 -0
  8. package/dist/chunk-4NMX4VK7.cjs.map +1 -0
  9. package/dist/chunk-6ZLXXGIV.js +5 -0
  10. package/dist/chunk-6ZLXXGIV.js.map +1 -0
  11. package/dist/{chunk-2SJQLDBB.js → chunk-FGMDBV23.js} +2 -2
  12. package/dist/chunk-FGMDBV23.js.map +1 -0
  13. package/dist/chunk-GF7C4PA6.js +3 -0
  14. package/dist/{chunk-7Y6UGMPZ.js → chunk-GMF7R4KJ.js} +2 -2
  15. package/dist/chunk-GMF7R4KJ.js.map +1 -0
  16. package/dist/chunk-H475FSAQ.js +5 -0
  17. package/dist/chunk-H475FSAQ.js.map +1 -0
  18. package/dist/chunk-LCSOMXO3.cjs +7 -0
  19. package/dist/chunk-LCSOMXO3.cjs.map +1 -0
  20. package/dist/chunk-M2ZWWM4H.js +5 -0
  21. package/dist/chunk-M2ZWWM4H.js.map +1 -0
  22. package/dist/{chunk-2KGTZTXY.cjs → chunk-N7PCIGVW.cjs} +2 -2
  23. package/dist/chunk-N7PCIGVW.cjs.map +1 -0
  24. package/dist/chunk-PKPUCHVR.cjs +9 -0
  25. package/dist/chunk-PKPUCHVR.cjs.map +1 -0
  26. package/dist/{chunk-IQNJXPS3.cjs → chunk-PX3B6TJZ.cjs} +2 -2
  27. package/dist/chunk-PX3B6TJZ.cjs.map +1 -0
  28. package/dist/chunk-REHORWPH.js +3 -0
  29. package/dist/{chunk-A4YEBDMG.js → chunk-RINP3JFP.js} +2 -2
  30. package/dist/chunk-RINP3JFP.js.map +1 -0
  31. package/dist/chunk-SAQJRAJ4.cjs +9 -0
  32. package/dist/chunk-SAQJRAJ4.cjs.map +1 -0
  33. package/dist/{chunk-74SNNWSF.cjs → chunk-SYE3TX4L.cjs} +2 -2
  34. package/dist/chunk-SYE3TX4L.cjs.map +1 -0
  35. package/dist/{chunk-OGQBQHLH.cjs → chunk-SYVNOFCV.cjs} +1 -1
  36. package/dist/chunk-SYVNOFCV.cjs.map +1 -0
  37. package/dist/{chunk-7JLXTNPE.js → chunk-V2MZKRLY.js} +3 -3
  38. package/dist/{chunk-7JLXTNPE.js.map → chunk-V2MZKRLY.js.map} +1 -1
  39. package/dist/chunk-WMOCBIRL.js +5 -0
  40. package/dist/chunk-WMOCBIRL.js.map +1 -0
  41. package/dist/chunk-YB5EN6FL.cjs +4 -0
  42. package/dist/chunk-YB5EN6FL.cjs.map +1 -0
  43. package/dist/{chunk-B6DAZDIA.cjs → chunk-YLE2VFJX.cjs} +5 -5
  44. package/dist/{chunk-B6DAZDIA.cjs.map → chunk-YLE2VFJX.cjs.map} +1 -1
  45. package/dist/common.cjs +7 -3
  46. package/dist/common.d.cts +16 -3
  47. package/dist/common.d.ts +16 -3
  48. package/dist/common.js +1 -1
  49. package/dist/error.cjs +6 -0
  50. package/dist/error.cjs.map +1 -0
  51. package/dist/error.d.cts +5 -0
  52. package/dist/error.d.ts +5 -0
  53. package/dist/error.js +3 -0
  54. package/dist/error.js.map +1 -0
  55. package/dist/index.cjs +37 -23
  56. package/dist/index.d.cts +14 -10
  57. package/dist/index.d.ts +14 -10
  58. package/dist/index.js +11 -9
  59. package/dist/manifest.cjs +2 -2
  60. package/dist/manifest.d.cts +7 -0
  61. package/dist/manifest.d.ts +7 -0
  62. package/dist/manifest.js +1 -1
  63. package/dist/module.cjs +2 -1
  64. package/dist/module.d.cts +32 -8
  65. package/dist/module.d.ts +32 -8
  66. package/dist/module.js +2 -1
  67. package/dist/network-fee.d.cts +14 -1
  68. package/dist/network-fee.d.ts +14 -1
  69. package/dist/provider.cjs +12 -0
  70. package/dist/provider.cjs.map +1 -0
  71. package/dist/provider.d.cts +62 -0
  72. package/dist/provider.d.ts +62 -0
  73. package/dist/provider.js +3 -0
  74. package/dist/provider.js.map +1 -0
  75. package/dist/rpc-a783406a.d.ts +384 -0
  76. package/dist/rpc-b2734d17.d.ts +384 -0
  77. package/dist/rpc.cjs +7 -3
  78. package/dist/rpc.d.cts +9 -150
  79. package/dist/rpc.d.ts +9 -150
  80. package/dist/rpc.js +1 -1
  81. package/dist/staking.cjs +2 -2
  82. package/dist/staking.d.cts +47 -2
  83. package/dist/staking.d.ts +47 -2
  84. package/dist/staking.js +1 -1
  85. package/dist/token.cjs +2 -2
  86. package/dist/token.d.cts +16 -3
  87. package/dist/token.d.ts +16 -3
  88. package/dist/token.js +1 -1
  89. package/dist/transaction-history.cjs +4 -4
  90. package/dist/transaction-history.d.cts +7 -2
  91. package/dist/transaction-history.d.ts +7 -2
  92. package/dist/transaction-history.js +1 -1
  93. package/dist/transaction-simulation.d.cts +10 -27
  94. package/dist/transaction-simulation.d.ts +10 -27
  95. package/package.json +18 -12
  96. package/dist/chunk-2KGTZTXY.cjs.map +0 -1
  97. package/dist/chunk-2SJQLDBB.js.map +0 -1
  98. package/dist/chunk-4BNYMHOY.js +0 -5
  99. package/dist/chunk-4BNYMHOY.js.map +0 -1
  100. package/dist/chunk-74SNNWSF.cjs.map +0 -1
  101. package/dist/chunk-7Y6UGMPZ.js.map +0 -1
  102. package/dist/chunk-A4YEBDMG.js.map +0 -1
  103. package/dist/chunk-CUVJNZP5.js +0 -3
  104. package/dist/chunk-HN4DUGTT.cjs +0 -8
  105. package/dist/chunk-HN4DUGTT.cjs.map +0 -1
  106. package/dist/chunk-IQNJXPS3.cjs.map +0 -1
  107. package/dist/chunk-OER2CERE.js +0 -5
  108. package/dist/chunk-OER2CERE.js.map +0 -1
  109. package/dist/chunk-RIBT5FN6.js +0 -5
  110. package/dist/chunk-RIBT5FN6.js.map +0 -1
  111. package/dist/chunk-TCBFAMPS.cjs +0 -7
  112. package/dist/chunk-TCBFAMPS.cjs.map +0 -1
  113. package/dist/chunk-VRQJHO4F.cjs +0 -8
  114. package/dist/chunk-VRQJHO4F.cjs.map +0 -1
  115. /package/dist/{chunk-CUVJNZP5.js.map → chunk-GF7C4PA6.js.map} +0 -0
  116. /package/dist/{chunk-OGQBQHLH.cjs.map → chunk-REHORWPH.js.map} +0 -0
package/dist/account.cjs CHANGED
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var chunkTCBFAMPS_cjs = require('./chunk-TCBFAMPS.cjs');
3
+ var chunkLCSOMXO3_cjs = require('./chunk-LCSOMXO3.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, 'WalletType', {
8
8
  enumerable: true,
9
- get: function () { return chunkTCBFAMPS_cjs.a; }
9
+ get: function () { return chunkLCSOMXO3_cjs.a; }
10
10
  });
11
11
  //# sourceMappingURL=out.js.map
12
12
  //# sourceMappingURL=account.cjs.map
@@ -1,3 +1,6 @@
1
+ import { Network, NetworkVMType } from './common.cjs';
2
+ import './token.cjs';
3
+
1
4
  declare enum WalletType {
2
5
  Mnemonic = "mnemonic",
3
6
  Ledger = "ledger",
@@ -9,10 +12,43 @@ type GetAddressParams = {
9
12
  walletType: WalletType;
10
13
  accountIndex: number;
11
14
  xpub: string;
15
+ network?: Network;
12
16
  xpubXP?: string;
13
- isTestnet?: boolean;
14
17
  };
15
18
  type GetAddressResponse = Record<string, string>;
19
+ type SimpleDeriveAddressParams = {
20
+ network: Omit<Network, 'tokens'>;
21
+ /**
22
+ * ID of the secret key to use for derivation.
23
+ */
24
+ secretId: string;
25
+ };
26
+ type DetailedDeriveAddressParams = SimpleDeriveAddressParams & {
27
+ /**
28
+ * Account index for which the public key is requested.
29
+ * Leave empty if requesting a public key for a single-account private key.
30
+ */
31
+ accountIndex: number;
32
+ /**
33
+ * Type of the derivation path to use.
34
+ * Useful when working with Ledger devices, which support BIP44 and Ledger Live derivation paths.
35
+ */
36
+ derivationPathType: DerivationPathType;
37
+ /**
38
+ * Address index for which the public key will be requested.
39
+ * This is NOT the same as {accountIndex}. Applicable mostly to X/P chain addresses.
40
+ */
41
+ addressIndex?: number;
42
+ };
43
+ type DeriveAddressParams = SimpleDeriveAddressParams | DetailedDeriveAddressParams;
44
+ type DeriveAddressResponse = Partial<Record<NetworkVMType, string>>;
45
+ type DerivationPathType = 'bip44' | 'ledger_live';
46
+ type BuildDerivationPathParams = {
47
+ accountIndex: number;
48
+ derivationPathType: DerivationPathType;
49
+ addressIndex?: number;
50
+ };
51
+ type BuildDerivationPathResponse = Partial<Record<NetworkVMType, string>>;
16
52
  type PubKeyType = {
17
53
  evm: string;
18
54
  /**
@@ -31,4 +67,4 @@ type BtcWalletPolicyDetails = {
31
67
  name: string;
32
68
  };
33
69
 
34
- export { BtcWalletPolicyDetails, GetAddressParams, GetAddressResponse, PubKeyType, WalletType };
70
+ export { BtcWalletPolicyDetails, BuildDerivationPathParams, BuildDerivationPathResponse, DerivationPathType, DeriveAddressParams, DeriveAddressResponse, DetailedDeriveAddressParams, GetAddressParams, GetAddressResponse, PubKeyType, SimpleDeriveAddressParams, WalletType };
package/dist/account.d.ts CHANGED
@@ -1,3 +1,6 @@
1
+ import { Network, NetworkVMType } from './common.js';
2
+ import './token.js';
3
+
1
4
  declare enum WalletType {
2
5
  Mnemonic = "mnemonic",
3
6
  Ledger = "ledger",
@@ -9,10 +12,43 @@ type GetAddressParams = {
9
12
  walletType: WalletType;
10
13
  accountIndex: number;
11
14
  xpub: string;
15
+ network?: Network;
12
16
  xpubXP?: string;
13
- isTestnet?: boolean;
14
17
  };
15
18
  type GetAddressResponse = Record<string, string>;
19
+ type SimpleDeriveAddressParams = {
20
+ network: Omit<Network, 'tokens'>;
21
+ /**
22
+ * ID of the secret key to use for derivation.
23
+ */
24
+ secretId: string;
25
+ };
26
+ type DetailedDeriveAddressParams = SimpleDeriveAddressParams & {
27
+ /**
28
+ * Account index for which the public key is requested.
29
+ * Leave empty if requesting a public key for a single-account private key.
30
+ */
31
+ accountIndex: number;
32
+ /**
33
+ * Type of the derivation path to use.
34
+ * Useful when working with Ledger devices, which support BIP44 and Ledger Live derivation paths.
35
+ */
36
+ derivationPathType: DerivationPathType;
37
+ /**
38
+ * Address index for which the public key will be requested.
39
+ * This is NOT the same as {accountIndex}. Applicable mostly to X/P chain addresses.
40
+ */
41
+ addressIndex?: number;
42
+ };
43
+ type DeriveAddressParams = SimpleDeriveAddressParams | DetailedDeriveAddressParams;
44
+ type DeriveAddressResponse = Partial<Record<NetworkVMType, string>>;
45
+ type DerivationPathType = 'bip44' | 'ledger_live';
46
+ type BuildDerivationPathParams = {
47
+ accountIndex: number;
48
+ derivationPathType: DerivationPathType;
49
+ addressIndex?: number;
50
+ };
51
+ type BuildDerivationPathResponse = Partial<Record<NetworkVMType, string>>;
16
52
  type PubKeyType = {
17
53
  evm: string;
18
54
  /**
@@ -31,4 +67,4 @@ type BtcWalletPolicyDetails = {
31
67
  name: string;
32
68
  };
33
69
 
34
- export { BtcWalletPolicyDetails, GetAddressParams, GetAddressResponse, PubKeyType, WalletType };
70
+ export { BtcWalletPolicyDetails, BuildDerivationPathParams, BuildDerivationPathResponse, DerivationPathType, DeriveAddressParams, DeriveAddressResponse, DetailedDeriveAddressParams, GetAddressParams, GetAddressResponse, PubKeyType, SimpleDeriveAddressParams, WalletType };
package/dist/account.js CHANGED
@@ -1,3 +1,3 @@
1
- export { a as WalletType } from './chunk-RIBT5FN6.js';
1
+ export { a as WalletType } from './chunk-WMOCBIRL.js';
2
2
  //# sourceMappingURL=out.js.map
3
3
  //# sourceMappingURL=account.js.map
@@ -1,10 +1,12 @@
1
1
  import { Network, Storage } from './common.cjs';
2
- import { NetworkContractToken, TokenType, NetworkToken } from './token.cjs';
3
- import { PChainBalance, XChainBalances } from '@avalabs/glacier-sdk';
2
+ import { Error } from './error.cjs';
3
+ import { TokenType, NetworkContractToken, NetworkToken } from './token.cjs';
4
+ import { Erc20TokenBalance, PChainBalance, XChainBalances, NftTokenMetadataStatus } from '@avalabs/glacier-sdk';
4
5
 
5
6
  type GetBalancesParams = {
6
7
  addresses: string[];
7
8
  network: Network;
9
+ tokenTypes?: TokenType[];
8
10
  customTokens?: NetworkContractToken[];
9
11
  currency: string;
10
12
  storage?: Storage;
@@ -40,8 +42,18 @@ interface TokenBalanceDataWithDecimals extends TokenBalanceData {
40
42
  */
41
43
  type TokenWithBalanceERC20 = TokenBalanceDataWithDecimals & TokenMarketData & NetworkContractToken & {
42
44
  type: TokenType.ERC20;
45
+ reputation: Erc20TokenBalance.tokenReputation | null;
43
46
  };
44
- type TokenWithBalanceEVM = NetworkTokenWithBalance | TokenWithBalanceERC20;
47
+ /**
48
+ * SPL TokenWithBalance interface.
49
+ */
50
+ type TokenWithBalanceSPL = TokenBalanceDataWithDecimals & TokenMarketData & {
51
+ address: string;
52
+ type: TokenType.SPL;
53
+ logoUri?: string;
54
+ reputation: null;
55
+ };
56
+ type TokenWithBalanceEVM = NetworkTokenWithBalance | TokenWithBalanceERC20 | NftTokenWithBalance;
45
57
  /**
46
58
  * Bitcoin TokenWithBalance interface.
47
59
  */
@@ -67,6 +79,9 @@ interface TokenWithBalanceBTC extends NetworkTokenWithBalance {
67
79
  unconfirmedBalanceCurrencyDisplayValue?: string;
68
80
  unconfirmedBalanceInCurrency?: number;
69
81
  }
82
+ interface TokenWithBalanceSVM extends NetworkTokenWithBalance {
83
+ logoUri: string;
84
+ }
70
85
  /**
71
86
  * Avalanche TokenWithBalance interface.
72
87
  */
@@ -76,15 +91,18 @@ interface TokenWithBalancePVM extends NetworkTokenWithBalance {
76
91
  availableDisplayValue?: string;
77
92
  availableCurrencyDisplayValue?: string;
78
93
  utxos?: PChainBalance;
94
+ /**
95
+ * All values are represented in `nAvax`
96
+ */
79
97
  balancePerType: {
80
- lockedStaked: number;
81
- lockedStakeable: number;
82
- lockedPlatform: number;
83
- atomicMemoryLocked: number;
84
- atomicMemoryUnlocked: number;
85
- unlockedUnstaked: number;
86
- unlockedStaked: number;
87
- pendingStaked: number;
98
+ lockedStaked?: bigint;
99
+ lockedStakeable?: bigint;
100
+ lockedPlatform?: bigint;
101
+ atomicMemoryLocked?: bigint;
102
+ atomicMemoryUnlocked?: bigint;
103
+ unlockedUnstaked?: bigint;
104
+ unlockedStaked?: bigint;
105
+ pendingStaked?: bigint;
88
106
  };
89
107
  }
90
108
  interface TokenWithBalanceAVM extends NetworkTokenWithBalance {
@@ -93,14 +111,17 @@ interface TokenWithBalanceAVM extends NetworkTokenWithBalance {
93
111
  availableDisplayValue?: string;
94
112
  availableCurrencyDisplayValue?: string;
95
113
  utxos?: XChainBalances;
114
+ /**
115
+ * All values are represented in `nAvax`
116
+ */
96
117
  balancePerType: {
97
- locked: number;
98
- unlocked: number;
99
- atomicMemoryUnlocked: number;
100
- atomicMemoryLocked: number;
118
+ locked?: bigint;
119
+ unlocked?: bigint;
120
+ atomicMemoryUnlocked?: bigint;
121
+ atomicMemoryLocked?: bigint;
101
122
  };
102
123
  }
103
- interface NftTokenWithBalance extends Omit<NetworkTokenWithBalance, 'type'> {
124
+ interface NftTokenWithBalance extends Omit<NetworkTokenWithBalance, 'type' | 'decimals' | 'coingeckoId'> {
104
125
  type: TokenType.ERC721 | TokenType.ERC1155;
105
126
  address: string;
106
127
  description: string;
@@ -109,15 +130,22 @@ interface NftTokenWithBalance extends Omit<NetworkTokenWithBalance, 'type'> {
109
130
  name: string;
110
131
  symbol: string;
111
132
  tokenId: string;
112
- attributes: TokenAttribute[];
133
+ chainId: number;
134
+ tokenUri: string;
113
135
  collectionName: string;
114
136
  updatedAt?: number;
137
+ metadata?: {
138
+ indexStatus?: NftTokenMetadataStatus;
139
+ description?: string;
140
+ lastUpdatedTimestamp?: number;
141
+ properties?: string;
142
+ };
115
143
  }
116
144
  interface TokenAttribute {
117
145
  name: string;
118
146
  value: string;
119
147
  }
120
- type TokenWithBalance = TokenWithBalanceEVM | TokenWithBalanceBTC | TokenWithBalancePVM | TokenWithBalanceAVM | NftTokenWithBalance;
121
- type GetBalancesResponse = Record<string, Record<string, TokenWithBalance>>;
148
+ type TokenWithBalance = TokenWithBalanceEVM | TokenWithBalanceBTC | TokenWithBalancePVM | TokenWithBalanceAVM | TokenWithBalanceSVM | TokenWithBalanceSPL;
149
+ type GetBalancesResponse = Record<string, Record<string, TokenWithBalance | Error> | Error>;
122
150
 
123
- export { GetBalancesParams, GetBalancesResponse, NetworkTokenWithBalance, NftTokenWithBalance, TokenAttribute, TokenBalanceData, TokenMarketData, TokenWithBalance, TokenWithBalanceAVM, TokenWithBalanceBTC, TokenWithBalanceERC20, TokenWithBalanceEVM, TokenWithBalancePVM };
151
+ export { GetBalancesParams, GetBalancesResponse, NetworkTokenWithBalance, NftTokenWithBalance, TokenAttribute, TokenBalanceData, TokenMarketData, TokenWithBalance, TokenWithBalanceAVM, TokenWithBalanceBTC, TokenWithBalanceERC20, TokenWithBalanceEVM, TokenWithBalancePVM, TokenWithBalanceSPL, TokenWithBalanceSVM };
package/dist/balance.d.ts CHANGED
@@ -1,10 +1,12 @@
1
1
  import { Network, Storage } from './common.js';
2
- import { NetworkContractToken, TokenType, NetworkToken } from './token.js';
3
- import { PChainBalance, XChainBalances } from '@avalabs/glacier-sdk';
2
+ import { Error } from './error.js';
3
+ import { TokenType, NetworkContractToken, NetworkToken } from './token.js';
4
+ import { Erc20TokenBalance, PChainBalance, XChainBalances, NftTokenMetadataStatus } from '@avalabs/glacier-sdk';
4
5
 
5
6
  type GetBalancesParams = {
6
7
  addresses: string[];
7
8
  network: Network;
9
+ tokenTypes?: TokenType[];
8
10
  customTokens?: NetworkContractToken[];
9
11
  currency: string;
10
12
  storage?: Storage;
@@ -40,8 +42,18 @@ interface TokenBalanceDataWithDecimals extends TokenBalanceData {
40
42
  */
41
43
  type TokenWithBalanceERC20 = TokenBalanceDataWithDecimals & TokenMarketData & NetworkContractToken & {
42
44
  type: TokenType.ERC20;
45
+ reputation: Erc20TokenBalance.tokenReputation | null;
43
46
  };
44
- type TokenWithBalanceEVM = NetworkTokenWithBalance | TokenWithBalanceERC20;
47
+ /**
48
+ * SPL TokenWithBalance interface.
49
+ */
50
+ type TokenWithBalanceSPL = TokenBalanceDataWithDecimals & TokenMarketData & {
51
+ address: string;
52
+ type: TokenType.SPL;
53
+ logoUri?: string;
54
+ reputation: null;
55
+ };
56
+ type TokenWithBalanceEVM = NetworkTokenWithBalance | TokenWithBalanceERC20 | NftTokenWithBalance;
45
57
  /**
46
58
  * Bitcoin TokenWithBalance interface.
47
59
  */
@@ -67,6 +79,9 @@ interface TokenWithBalanceBTC extends NetworkTokenWithBalance {
67
79
  unconfirmedBalanceCurrencyDisplayValue?: string;
68
80
  unconfirmedBalanceInCurrency?: number;
69
81
  }
82
+ interface TokenWithBalanceSVM extends NetworkTokenWithBalance {
83
+ logoUri: string;
84
+ }
70
85
  /**
71
86
  * Avalanche TokenWithBalance interface.
72
87
  */
@@ -76,15 +91,18 @@ interface TokenWithBalancePVM extends NetworkTokenWithBalance {
76
91
  availableDisplayValue?: string;
77
92
  availableCurrencyDisplayValue?: string;
78
93
  utxos?: PChainBalance;
94
+ /**
95
+ * All values are represented in `nAvax`
96
+ */
79
97
  balancePerType: {
80
- lockedStaked: number;
81
- lockedStakeable: number;
82
- lockedPlatform: number;
83
- atomicMemoryLocked: number;
84
- atomicMemoryUnlocked: number;
85
- unlockedUnstaked: number;
86
- unlockedStaked: number;
87
- pendingStaked: number;
98
+ lockedStaked?: bigint;
99
+ lockedStakeable?: bigint;
100
+ lockedPlatform?: bigint;
101
+ atomicMemoryLocked?: bigint;
102
+ atomicMemoryUnlocked?: bigint;
103
+ unlockedUnstaked?: bigint;
104
+ unlockedStaked?: bigint;
105
+ pendingStaked?: bigint;
88
106
  };
89
107
  }
90
108
  interface TokenWithBalanceAVM extends NetworkTokenWithBalance {
@@ -93,14 +111,17 @@ interface TokenWithBalanceAVM extends NetworkTokenWithBalance {
93
111
  availableDisplayValue?: string;
94
112
  availableCurrencyDisplayValue?: string;
95
113
  utxos?: XChainBalances;
114
+ /**
115
+ * All values are represented in `nAvax`
116
+ */
96
117
  balancePerType: {
97
- locked: number;
98
- unlocked: number;
99
- atomicMemoryUnlocked: number;
100
- atomicMemoryLocked: number;
118
+ locked?: bigint;
119
+ unlocked?: bigint;
120
+ atomicMemoryUnlocked?: bigint;
121
+ atomicMemoryLocked?: bigint;
101
122
  };
102
123
  }
103
- interface NftTokenWithBalance extends Omit<NetworkTokenWithBalance, 'type'> {
124
+ interface NftTokenWithBalance extends Omit<NetworkTokenWithBalance, 'type' | 'decimals' | 'coingeckoId'> {
104
125
  type: TokenType.ERC721 | TokenType.ERC1155;
105
126
  address: string;
106
127
  description: string;
@@ -109,15 +130,22 @@ interface NftTokenWithBalance extends Omit<NetworkTokenWithBalance, 'type'> {
109
130
  name: string;
110
131
  symbol: string;
111
132
  tokenId: string;
112
- attributes: TokenAttribute[];
133
+ chainId: number;
134
+ tokenUri: string;
113
135
  collectionName: string;
114
136
  updatedAt?: number;
137
+ metadata?: {
138
+ indexStatus?: NftTokenMetadataStatus;
139
+ description?: string;
140
+ lastUpdatedTimestamp?: number;
141
+ properties?: string;
142
+ };
115
143
  }
116
144
  interface TokenAttribute {
117
145
  name: string;
118
146
  value: string;
119
147
  }
120
- type TokenWithBalance = TokenWithBalanceEVM | TokenWithBalanceBTC | TokenWithBalancePVM | TokenWithBalanceAVM | NftTokenWithBalance;
121
- type GetBalancesResponse = Record<string, Record<string, TokenWithBalance>>;
148
+ type TokenWithBalance = TokenWithBalanceEVM | TokenWithBalanceBTC | TokenWithBalancePVM | TokenWithBalanceAVM | TokenWithBalanceSVM | TokenWithBalanceSPL;
149
+ type GetBalancesResponse = Record<string, Record<string, TokenWithBalance | Error> | Error>;
122
150
 
123
- export { GetBalancesParams, GetBalancesResponse, NetworkTokenWithBalance, NftTokenWithBalance, TokenAttribute, TokenBalanceData, TokenMarketData, TokenWithBalance, TokenWithBalanceAVM, TokenWithBalanceBTC, TokenWithBalanceERC20, TokenWithBalanceEVM, TokenWithBalancePVM };
151
+ export { GetBalancesParams, GetBalancesResponse, NetworkTokenWithBalance, NftTokenWithBalance, TokenAttribute, TokenBalanceData, TokenMarketData, TokenWithBalance, TokenWithBalanceAVM, TokenWithBalanceBTC, TokenWithBalanceERC20, TokenWithBalanceEVM, TokenWithBalancePVM, TokenWithBalanceSPL, TokenWithBalanceSVM };
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var t=(e=>(e.CORE_WALLET_ANNOUNCE_PROVIDER="core-wallet:announceProvider",e.CORE_WALLET_REQUEST_PROVIDER="core-wallet:requestProvider",e.EIP6963_ANNOUNCE_PROVIDER="eip6963:announceProvider",e.EIP6963_REQUEST_PROVIDER="eip6963:requestProvider",e))(t||{});
4
+
5
+ exports.a = t;
6
+ //# sourceMappingURL=out.js.map
7
+ //# sourceMappingURL=chunk-4NMX4VK7.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/provider.ts"],"names":["EventNames"],"mappings":"AA4BO,IAAKA,OACVA,EAAA,8BAAgC,+BAChCA,EAAA,6BAA+B,8BAC/BA,EAAA,0BAA4B,2BAC5BA,EAAA,yBAA2B,0BAJjBA,OAAA","sourcesContent":["import type { Eip1193Provider } from 'ethers';\nimport type EventEmitter from 'events';\n\nexport interface ChainChangedEventData {\n chainId: string;\n networkVersion: string;\n}\n\nexport type AccountsChangedEventData = string[];\n\nexport interface UnlockStateChangedEventData {\n accounts: string[];\n isUnlocked: boolean;\n}\n\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n icon: string;\n rdns: string;\n description: string;\n}\n\nexport interface EIP6963ProviderDetail {\n info: EIP6963ProviderInfo;\n provider: Eip1193Provider;\n}\n\nexport enum EventNames {\n CORE_WALLET_ANNOUNCE_PROVIDER = 'core-wallet:announceProvider',\n CORE_WALLET_REQUEST_PROVIDER = 'core-wallet:requestProvider',\n EIP6963_ANNOUNCE_PROVIDER = 'eip6963:announceProvider',\n EIP6963_REQUEST_PROVIDER = 'eip6963:requestProvider',\n}\n\nexport interface DomainMetadata {\n domain: string;\n name?: string;\n icon?: string;\n tabId?: number;\n}\n\ninterface JsonRpcRequestPayloadBase<Method extends string> {\n readonly id: string;\n readonly method: Method;\n readonly site?: DomainMetadata;\n readonly tabId?: number;\n}\n\ninterface JsonRpcRequestPayloadWithParams<Method extends string, Params = unknown>\n extends JsonRpcRequestPayloadBase<Method> {\n readonly params: Params;\n}\n\ninterface JsonRpcRequestPayloadWithoutParams<Method extends string> extends JsonRpcRequestPayloadBase<Method> {\n readonly params?: never;\n}\n\nexport type JsonRpcRequestPayload<Method extends string, Params = unknown> = Params extends undefined\n ? JsonRpcRequestPayloadWithoutParams<Method>\n : JsonRpcRequestPayloadWithParams<Method, Params>;\n\nexport type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\n\nexport interface ChainAgnosticProvider extends EventEmitter {\n request<T = unknown>({\n data,\n sessionId,\n scope,\n }: {\n data: PartialBy<JsonRpcRequestPayload<string>, 'id' | 'params'>;\n sessionId?: string;\n scope?: string | null;\n }): Promise<T>;\n\n subscribeToMessage(callback: ({ method, params }: { method: string; params: unknown }) => void): void;\n}\n"]}
@@ -0,0 +1,5 @@
1
+ var t=(e=>(e.CORE_WALLET_ANNOUNCE_PROVIDER="core-wallet:announceProvider",e.CORE_WALLET_REQUEST_PROVIDER="core-wallet:requestProvider",e.EIP6963_ANNOUNCE_PROVIDER="eip6963:announceProvider",e.EIP6963_REQUEST_PROVIDER="eip6963:requestProvider",e))(t||{});
2
+
3
+ export { t as a };
4
+ //# sourceMappingURL=out.js.map
5
+ //# sourceMappingURL=chunk-6ZLXXGIV.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/provider.ts"],"names":["EventNames"],"mappings":"AA4BO,IAAKA,OACVA,EAAA,8BAAgC,+BAChCA,EAAA,6BAA+B,8BAC/BA,EAAA,0BAA4B,2BAC5BA,EAAA,yBAA2B,0BAJjBA,OAAA","sourcesContent":["import type { Eip1193Provider } from 'ethers';\nimport type EventEmitter from 'events';\n\nexport interface ChainChangedEventData {\n chainId: string;\n networkVersion: string;\n}\n\nexport type AccountsChangedEventData = string[];\n\nexport interface UnlockStateChangedEventData {\n accounts: string[];\n isUnlocked: boolean;\n}\n\nexport interface EIP6963ProviderInfo {\n uuid: string;\n name: string;\n icon: string;\n rdns: string;\n description: string;\n}\n\nexport interface EIP6963ProviderDetail {\n info: EIP6963ProviderInfo;\n provider: Eip1193Provider;\n}\n\nexport enum EventNames {\n CORE_WALLET_ANNOUNCE_PROVIDER = 'core-wallet:announceProvider',\n CORE_WALLET_REQUEST_PROVIDER = 'core-wallet:requestProvider',\n EIP6963_ANNOUNCE_PROVIDER = 'eip6963:announceProvider',\n EIP6963_REQUEST_PROVIDER = 'eip6963:requestProvider',\n}\n\nexport interface DomainMetadata {\n domain: string;\n name?: string;\n icon?: string;\n tabId?: number;\n}\n\ninterface JsonRpcRequestPayloadBase<Method extends string> {\n readonly id: string;\n readonly method: Method;\n readonly site?: DomainMetadata;\n readonly tabId?: number;\n}\n\ninterface JsonRpcRequestPayloadWithParams<Method extends string, Params = unknown>\n extends JsonRpcRequestPayloadBase<Method> {\n readonly params: Params;\n}\n\ninterface JsonRpcRequestPayloadWithoutParams<Method extends string> extends JsonRpcRequestPayloadBase<Method> {\n readonly params?: never;\n}\n\nexport type JsonRpcRequestPayload<Method extends string, Params = unknown> = Params extends undefined\n ? JsonRpcRequestPayloadWithoutParams<Method>\n : JsonRpcRequestPayloadWithParams<Method, Params>;\n\nexport type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;\n\nexport interface ChainAgnosticProvider extends EventEmitter {\n request<T = unknown>({\n data,\n sessionId,\n scope,\n }: {\n data: PartialBy<JsonRpcRequestPayload<string>, 'id' | 'params'>;\n sessionId?: string;\n scope?: string | null;\n }): Promise<T>;\n\n subscribeToMessage(callback: ({ method, params }: { method: string; params: unknown }) => void): void;\n}\n"]}
@@ -1,5 +1,5 @@
1
- var e=(t=>(t.Base="base",t.AddValidator="add_validator",t.AddDelegator="add_delegator",t.Export="export",t.Import="import",t.CreateSubnet="create_subnet",t.CreateChain="create_chain",t.AddSubnetValidator="add_subnet_validator",t.RemoveSubnetValidator="remove_subnet_validator",t.AddPermissionlessValidator="add_permissionless_validator",t.AddPermissionlessDelegator="add_permissionless_delegator",t.TransformSubnet="transform_subnet",t.TransferSubnetOwnership="transfer_subnet_ownership",t.Unknown="unknown",t))(e||{});
1
+ var e=(t=>(t.Base="base",t.AddValidator="add_validator",t.AddDelegator="add_delegator",t.Export="export",t.Import="import",t.CreateSubnet="create_subnet",t.CreateChain="create_chain",t.AddSubnetValidator="add_subnet_validator",t.RemoveSubnetValidator="remove_subnet_validator",t.AddPermissionlessValidator="add_permissionless_validator",t.AddPermissionlessDelegator="add_permissionless_delegator",t.TransformSubnet="transform_subnet",t.TransferSubnetOwnership="transfer_subnet_ownership",t.ConvertSubnetToL1="convert_subnet_to_l1",t.RegisterL1Validator="register_l1_validator",t.SetL1ValidatorWeight="set_l1_validator_weight",t.IncreaseL1ValidatorBalance="increase_l1_validator_balance",t.DisableL1Validator="disable_l1_validator",t.Unknown="unknown",t))(e||{});
2
2
 
3
3
  export { e as a };
4
4
  //# sourceMappingURL=out.js.map
5
- //# sourceMappingURL=chunk-2SJQLDBB.js.map
5
+ //# sourceMappingURL=chunk-FGMDBV23.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/staking.ts"],"names":["TxType"],"mappings":"AAuKO,IAAKA,OACVA,EAAA,KAAO,OACPA,EAAA,aAAe,gBACfA,EAAA,aAAe,gBACfA,EAAA,OAAS,SACTA,EAAA,OAAS,SACTA,EAAA,aAAe,gBACfA,EAAA,YAAc,eACdA,EAAA,mBAAqB,uBACrBA,EAAA,sBAAwB,0BACxBA,EAAA,2BAA6B,+BAC7BA,EAAA,2BAA6B,+BAC7BA,EAAA,gBAAkB,mBAClBA,EAAA,wBAA0B,4BAC1BA,EAAA,kBAAoB,uBACpBA,EAAA,oBAAsB,wBACtBA,EAAA,qBAAuB,0BACvBA,EAAA,2BAA6B,gCAC7BA,EAAA,mBAAqB,uBACrBA,EAAA,QAAU,UAnBAA,OAAA","sourcesContent":["import type { NetworkVMType } from './common';\n\nexport type TxDetails =\n | StakingDetails\n | ExportImportTxDetails\n | ChainDetails\n | BlockchainDetails\n | SubnetDetails\n | L1Details;\n\nexport type StakingDetails =\n | AddPermissionlessDelegatorTx\n | AddPermissionlessValidatorTx\n | AddSubnetValidatorTx\n | RemoveSubnetValidatorTx;\nexport type ExportImportTxDetails = ExportTx | ImportTx;\nexport type ChainDetails = BaseTx;\nexport type BlockchainDetails = CreateChainTx;\nexport type SubnetDetails = CreateSubnetTx;\nexport type L1Details =\n | ConvertSubnetToL1Tx\n | RegisterL1ValidatorTx\n | SetL1ValidatorWeightTx\n | IncreaseL1ValidatorBalanceTx\n | DisableL1ValidatorTx;\n\nexport type VM = NetworkVMType.AVM | NetworkVMType.EVM | NetworkVMType.PVM;\n\nexport type AddPermissionlessDelegatorTx = {\n type: TxType.AddPermissionlessDelegator;\n nodeID: string;\n subnetID: string;\n stake: bigint;\n start: string;\n end: string;\n txFee: bigint;\n};\n\nexport type AddPermissionlessValidatorTx = {\n type: TxType.AddPermissionlessValidator;\n nodeID: string;\n subnetID: string;\n stake: bigint;\n delegationFee: number;\n start: string;\n end: string;\n txFee: bigint;\n publicKey?: string;\n signature?: string;\n};\n\nexport interface ExportTx {\n type: TxType.Export;\n destination: VM;\n amount: bigint;\n chain: VM;\n txFee: bigint;\n}\n\nexport interface ImportTx {\n type: TxType.Import;\n source: VM;\n amount: bigint;\n chain: VM;\n txFee: bigint;\n}\n\nexport interface BaseTx {\n type: TxType.Base;\n chain: VM;\n outputs: {\n assetId: string;\n locktime: bigint;\n threshold: bigint;\n amount: bigint;\n assetDescription?: {\n assetID: string;\n name: string;\n symbol: string;\n denomination: number;\n };\n owners: string[];\n isAvax: boolean;\n }[];\n memo?: string;\n txFee: bigint;\n}\n\nexport type AddSubnetValidatorTx = {\n type: TxType.AddSubnetValidator;\n nodeID: string;\n subnetID: string;\n stake: bigint;\n start: string;\n end: string;\n txFee: bigint;\n};\n\nexport type CreateChainTx = {\n type: TxType.CreateChain;\n chainName: string;\n chainID: string;\n vmID: string;\n genesisData: string;\n txFee: bigint;\n};\n\nexport type CreateSubnetTx = {\n type: TxType.CreateSubnet;\n threshold: number;\n controlKeys: string[];\n txFee: bigint;\n};\n\nexport type RemoveSubnetValidatorTx = {\n type: TxType.RemoveSubnetValidator;\n nodeID: string;\n subnetID: string;\n txFee: bigint;\n};\n\nexport type FeeData = {\n totalAvaxBurned: bigint;\n totalAvaxOutput: bigint;\n totalAvaxInput: bigint;\n isValidAvaxBurnedAmount: boolean;\n txFee: bigint;\n};\n\nexport type TxBase = FeeData & {\n chain: VM;\n};\n\nexport type ConvertSubnetToL1Tx = TxBase & {\n type: TxType.ConvertSubnetToL1;\n managerAddress: string;\n validators: {\n nodeId: string;\n stake: bigint;\n balance: bigint;\n remainingBalanceOwners: string[];\n deactivationOwners: string[];\n }[];\n subnetID: string;\n chainID: string;\n};\n\nexport type RegisterL1ValidatorTx = TxBase & {\n type: TxType.RegisterL1Validator;\n balance: bigint;\n};\n\nexport type SetL1ValidatorWeightTx = TxBase & {\n type: TxType.SetL1ValidatorWeight;\n};\n\nexport type IncreaseL1ValidatorBalanceTx = TxBase & {\n type: TxType.IncreaseL1ValidatorBalance;\n balance: bigint;\n validationId: string;\n};\n\nexport type DisableL1ValidatorTx = TxBase & {\n type: TxType.DisableL1Validator;\n validationId: string;\n};\n\nexport enum TxType {\n Base = 'base',\n AddValidator = 'add_validator',\n AddDelegator = 'add_delegator',\n Export = 'export',\n Import = 'import',\n CreateSubnet = 'create_subnet',\n CreateChain = 'create_chain',\n AddSubnetValidator = 'add_subnet_validator',\n RemoveSubnetValidator = 'remove_subnet_validator',\n AddPermissionlessValidator = 'add_permissionless_validator',\n AddPermissionlessDelegator = 'add_permissionless_delegator',\n TransformSubnet = 'transform_subnet',\n TransferSubnetOwnership = 'transfer_subnet_ownership',\n ConvertSubnetToL1 = 'convert_subnet_to_l1',\n RegisterL1Validator = 'register_l1_validator',\n SetL1ValidatorWeight = 'set_l1_validator_weight',\n IncreaseL1ValidatorBalance = 'increase_l1_validator_balance',\n DisableL1Validator = 'disable_l1_validator',\n Unknown = 'unknown',\n}\n"]}
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=out.js.map
3
+ //# sourceMappingURL=chunk-GF7C4PA6.js.map
@@ -1,5 +1,5 @@
1
- var e=(r=>(r.NATIVE="NATIVE",r.ERC20="ERC20",r.ERC721="ERC721",r.ERC1155="ERC1155",r.NONERC="NONERC",r))(e||{});
1
+ var e=(r=>(r.NATIVE="NATIVE",r.ERC20="ERC20",r.ERC721="ERC721",r.ERC1155="ERC1155",r.NONERC="NONERC",r.SPL="SPL",r))(e||{});
2
2
 
3
3
  export { e as a };
4
4
  //# sourceMappingURL=out.js.map
5
- //# sourceMappingURL=chunk-7Y6UGMPZ.js.map
5
+ //# sourceMappingURL=chunk-GMF7R4KJ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/token.ts"],"names":["TokenType"],"mappings":"AAAO,IAAKA,OACVA,EAAA,OAAS,SACTA,EAAA,MAAQ,QACRA,EAAA,OAAS,SACTA,EAAA,QAAU,UACVA,EAAA,OAAS,SACTA,EAAA,IAAM,MANIA,OAAA","sourcesContent":["export enum TokenType {\n NATIVE = 'NATIVE',\n ERC20 = 'ERC20',\n ERC721 = 'ERC721',\n ERC1155 = 'ERC1155',\n NONERC = 'NONERC',\n SPL = 'SPL',\n}\n\nexport interface NetworkToken {\n name: string;\n symbol: string;\n decimals: number;\n logoUri?: string;\n description?: string;\n}\n\nexport type NetworkContractToken = ERC20Token | ERC1155Token | ERC721Token | NONERCToken | SPLToken;\n\nexport interface ERC20Token {\n address: string;\n chainId?: number;\n color?: string;\n type: TokenType.ERC20;\n decimals: number;\n logoUri?: string;\n name: string;\n symbol: string;\n}\n\nexport interface SPLToken {\n address: string;\n name: string;\n symbol: string;\n // Discrepancy between what's returned by Proxy API and the other types here.\n // Proxy API returns `contractType`, but in VM Modules we populate `type`.\n contractType: TokenType.SPL;\n type: TokenType.SPL;\n caip2Id: string;\n decimals: number;\n chainId?: number;\n logoUri?: string;\n color?: string;\n}\n\nexport interface ERC1155Token {\n address: string;\n type: TokenType.ERC1155;\n logoUri?: string;\n name?: string;\n symbol?: string;\n}\n\nexport interface ERC721Token {\n address: string;\n type: TokenType.ERC721;\n logoUri?: string;\n name?: string;\n symbol?: string;\n}\n\nexport interface NONERCToken {\n address: string;\n type: TokenType.NONERC;\n logoUri?: string;\n name?: string;\n symbol?: string;\n}\n"]}
@@ -0,0 +1,5 @@
1
+ var n=(t=>(t.BITCOIN_SEND_TRANSACTION="bitcoin_sendTransaction",t.BITCOIN_SIGN_TRANSACTION="bitcoin_signTransaction",t.ETH_SEND_TRANSACTION="eth_sendTransaction",t.ETH_SEND_TRANSACTION_BATCH="eth_sendTransactionBatch",t.SIGN_TYPED_DATA_V3="eth_signTypedData_v3",t.SIGN_TYPED_DATA_V4="eth_signTypedData_v4",t.SIGN_TYPED_DATA_V1="eth_signTypedData_v1",t.SIGN_TYPED_DATA="eth_signTypedData",t.PERSONAL_SIGN="personal_sign",t.ETH_SIGN="eth_sign",t.AVALANCHE_SIGN_MESSAGE="avalanche_signMessage",t.AVALANCHE_SEND_TRANSACTION="avalanche_sendTransaction",t.AVALANCHE_SIGN_TRANSACTION="avalanche_signTransaction",t.HVM_SIGN_TRANSACTION="hvm_signTransaction",t.SOLANA_SIGN_TRANSACTION="solana_signTransaction",t.SOLANA_SIGN_AND_SEND_TRANSACTION="solana_signAndSendTransaction",t.SOLANA_SIGN_MESSAGE="solana_signMessage",t))(n||{}),i=(e=>(e.TEXT="text",e.ADDRESS="address",e.ADDRESS_LIST="addressList",e.NODE_ID="nodeID",e.CURRENCY="currency",e.FUNDS_RECIPIENT="fundsRecipient",e.DATA="data",e.DATE="date",e.LINK="link",e.NETWORK="network",e))(i||{}),r=(a=>(a.WARNING="Warning",a.DANGER="Danger",a.INFO="Info",a))(r||{});
2
+
3
+ export { n as a, i as b, r as c };
4
+ //# sourceMappingURL=out.js.map
5
+ //# sourceMappingURL=chunk-H475FSAQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/rpc.ts"],"names":["RpcMethod","DetailItemType","AlertType"],"mappings":"AAQO,IAAKA,OAEVA,EAAA,yBAA2B,0BAC3BA,EAAA,yBAA2B,0BAG3BA,EAAA,qBAAuB,sBACvBA,EAAA,2BAA6B,2BAC7BA,EAAA,mBAAqB,uBACrBA,EAAA,mBAAqB,uBACrBA,EAAA,mBAAqB,uBACrBA,EAAA,gBAAkB,oBAClBA,EAAA,cAAgB,gBAChBA,EAAA,SAAW,WAGXA,EAAA,uBAAyB,wBACzBA,EAAA,2BAA6B,4BAC7BA,EAAA,2BAA6B,4BAG7BA,EAAA,qBAAuB,sBAGvBA,EAAA,wBAA0B,yBAC1BA,EAAA,iCAAmC,gCACnCA,EAAA,oBAAsB,qBA1BZA,OAAA,IAqFAC,OACVA,EAAA,KAAO,OACPA,EAAA,QAAU,UACVA,EAAA,aAAe,cACfA,EAAA,QAAU,SACVA,EAAA,SAAW,WACXA,EAAA,gBAAkB,iBAClBA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,QAAU,UAVAA,OAAA,IAgHAC,OACVA,EAAA,QAAU,UACVA,EAAA,OAAS,SACTA,EAAA,KAAO,OAHGA,OAAA","sourcesContent":["import type { TransactionRequest } from 'ethers';\nimport type { Avalanche, BitcoinInputUTXO, BitcoinOutputUTXO } from '@avalabs/core-wallets-sdk';\nimport type { Caip2ChainId, Hex } from './common';\nimport type { JsonRpcError, EthereumProviderError, OptionalDataWithOptionalCause } from '@metamask/rpc-errors';\nimport type { BalanceChange, TokenApprovals } from './transaction-simulation';\nimport type { TokenWithBalanceBTC } from './balance';\nimport type { TransactionPayload, VMABI } from 'hypersdk-client';\n\nexport enum RpcMethod {\n /* BTC */\n BITCOIN_SEND_TRANSACTION = 'bitcoin_sendTransaction',\n BITCOIN_SIGN_TRANSACTION = 'bitcoin_signTransaction',\n\n /* EVM */\n ETH_SEND_TRANSACTION = 'eth_sendTransaction',\n ETH_SEND_TRANSACTION_BATCH = 'eth_sendTransactionBatch',\n SIGN_TYPED_DATA_V3 = 'eth_signTypedData_v3',\n SIGN_TYPED_DATA_V4 = 'eth_signTypedData_v4',\n SIGN_TYPED_DATA_V1 = 'eth_signTypedData_v1',\n SIGN_TYPED_DATA = 'eth_signTypedData',\n PERSONAL_SIGN = 'personal_sign',\n ETH_SIGN = 'eth_sign',\n\n /* AVALANCHE */\n AVALANCHE_SIGN_MESSAGE = 'avalanche_signMessage',\n AVALANCHE_SEND_TRANSACTION = 'avalanche_sendTransaction',\n AVALANCHE_SIGN_TRANSACTION = 'avalanche_signTransaction',\n\n /* HVM */\n HVM_SIGN_TRANSACTION = 'hvm_signTransaction',\n\n /* SOLANA */\n SOLANA_SIGN_TRANSACTION = 'solana_signTransaction',\n SOLANA_SIGN_AND_SEND_TRANSACTION = 'solana_signAndSendTransaction',\n SOLANA_SIGN_MESSAGE = 'solana_signMessage',\n}\n\nexport type DappInfo = {\n name: string;\n url: string;\n icon: string;\n};\n\nexport type RpcRequest = {\n requestId: string;\n sessionId: string;\n method: RpcMethod;\n chainId: Caip2ChainId;\n params: unknown;\n dappInfo: DappInfo;\n context?: Record<string, unknown>; // for storing additional context information that's only relevant to the consumer\n};\n\nexport type RpcError =\n | JsonRpcError<OptionalDataWithOptionalCause>\n | EthereumProviderError<OptionalDataWithOptionalCause>;\n\nexport type RpcResponse<R = unknown, E extends RpcError = JsonRpcError<OptionalDataWithOptionalCause>> =\n | {\n result: R;\n }\n | {\n error: E;\n };\n\nexport interface MessageTypeProperty {\n name: string;\n type: string;\n}\n\nexport interface MessageTypes {\n EIP712Domain: MessageTypeProperty[];\n [additionalProperties: string]: MessageTypeProperty[];\n}\n\nexport interface TypedData<T extends MessageTypes> {\n types: T;\n primaryType: keyof T;\n domain: Record<string, unknown>;\n message: Record<string, unknown>;\n}\n\nexport type TypedDataV1 = { name: string; type: string; value: unknown }[];\n\nexport type DetailSection = {\n title?: string;\n items: DetailItem[];\n};\n\nexport type BaseDetailItem = {\n label: string;\n};\n\nexport enum DetailItemType {\n TEXT = 'text',\n ADDRESS = 'address',\n ADDRESS_LIST = 'addressList',\n NODE_ID = 'nodeID',\n CURRENCY = 'currency',\n FUNDS_RECIPIENT = 'fundsRecipient',\n DATA = 'data',\n DATE = 'date',\n LINK = 'link',\n NETWORK = 'network',\n}\n\n// It's very similar as CurrencyItem, but we want the client apps\n// to treat the label as an address (recognize it if possible,\n// truncate otherwise).\nexport type FundsRecipientItem = BaseDetailItem & {\n type: DetailItemType.FUNDS_RECIPIENT;\n amount: bigint;\n maxDecimals: number;\n symbol: string;\n};\n\nexport type TextItem = BaseDetailItem & {\n type: DetailItemType.TEXT;\n value: string;\n alignment: 'vertical' | 'horizontal';\n};\n\nexport type AddressItem = BaseDetailItem & {\n type: DetailItemType.ADDRESS;\n value: string;\n};\n\nexport type AddressListItem = BaseDetailItem & {\n type: DetailItemType.ADDRESS_LIST;\n value: string[];\n};\n\nexport type NodeIDItem = BaseDetailItem & {\n type: DetailItemType.NODE_ID;\n value: string;\n};\n\nexport type CurrencyItem = BaseDetailItem & {\n type: DetailItemType.CURRENCY;\n value: bigint;\n maxDecimals: number;\n symbol: string;\n};\n\nexport type DataItem = BaseDetailItem & {\n type: DetailItemType.DATA;\n value: string;\n};\n\nexport type DateItem = BaseDetailItem & {\n type: DetailItemType.DATE;\n value: string;\n};\n\nexport type LinkItemValue = { url: string; name?: string; icon?: string };\n\nexport type LinkItem = BaseDetailItem & {\n type: DetailItemType.LINK;\n value: LinkItemValue;\n};\n\nexport type NetworkItemValue = {\n logoUri: string | undefined;\n name: string;\n};\n\nexport type NetworkItem = BaseDetailItem & {\n type: DetailItemType.NETWORK;\n value: NetworkItemValue;\n};\n\nexport type DetailItem =\n | string\n | TextItem\n | AddressItem\n | AddressListItem\n | NodeIDItem\n | CurrencyItem\n | DataItem\n | DateItem\n | LinkItem\n | FundsRecipientItem\n | NetworkItem;\n\nexport type DisplayData = {\n title: string;\n dAppInfo?: {\n name: string;\n action: string;\n logoUri?: string;\n };\n network?: {\n chainId: number;\n name: string;\n logoUri?: string;\n };\n account?: string;\n details: DetailSection[];\n networkFeeSelector?: boolean;\n alert?: Alert;\n balanceChange?: BalanceChange;\n tokenApprovals?: TokenApprovals;\n isSimulationSuccessful?: boolean;\n};\n\nexport enum AlertType {\n WARNING = 'Warning',\n DANGER = 'Danger',\n INFO = 'Info',\n}\n\nexport type AlertDetails = {\n title: string;\n description: string;\n detailedDescription?: string;\n body?: string[];\n actionTitles?: {\n proceed: string;\n reject: string;\n };\n};\n\nexport type Alert = {\n type: AlertType;\n details: AlertDetails;\n};\n\nexport type BitcoinExecuteTxData = {\n to: string;\n amount: number;\n feeRate: number;\n fee: number;\n gasLimit: number;\n balance: TokenWithBalanceBTC;\n inputs: BitcoinInputUTXO[];\n outputs: BitcoinOutputUTXO[];\n};\n\nexport type BitcoingSignTxData = {\n inputs: BitcoinInputUTXO[];\n outputs: BitcoinOutputUTXO[];\n};\n\nexport type SigningData =\n | {\n type: RpcMethod.SOLANA_SIGN_AND_SEND_TRANSACTION;\n account: string;\n data: string; // Base-64 encoded \"Wire Transaction\"\n }\n | {\n type: RpcMethod.SOLANA_SIGN_TRANSACTION;\n account: string;\n data: string; // Base-64 encoded \"Wire Transaction\"\n }\n | {\n type: RpcMethod.SOLANA_SIGN_MESSAGE;\n account: string;\n data: string; // Base-64 encoded message\n }\n | {\n type: RpcMethod.BITCOIN_SEND_TRANSACTION;\n account: string;\n data: BitcoinExecuteTxData;\n }\n | {\n type: RpcMethod.BITCOIN_SIGN_TRANSACTION;\n account: string;\n data: BitcoingSignTxData;\n }\n | SigningData_EthSendTx\n | {\n type: RpcMethod.ETH_SIGN | RpcMethod.PERSONAL_SIGN;\n account: string;\n data: string;\n }\n | {\n type: RpcMethod.SIGN_TYPED_DATA | RpcMethod.SIGN_TYPED_DATA_V1;\n account: string;\n data: TypedData<MessageTypes> | TypedDataV1;\n }\n | {\n type: RpcMethod.SIGN_TYPED_DATA_V3 | RpcMethod.SIGN_TYPED_DATA_V4;\n account: string;\n data: TypedData<MessageTypes>;\n }\n | {\n type: RpcMethod.AVALANCHE_SIGN_MESSAGE;\n data: string;\n accountIndex?: number;\n }\n | {\n type: RpcMethod.AVALANCHE_SEND_TRANSACTION;\n unsignedTxJson: string;\n data: Avalanche.Tx;\n vm: 'EVM' | 'AVM' | 'PVM';\n externalIndices?: number[];\n internalIndices?: number[];\n }\n | {\n type: RpcMethod.AVALANCHE_SIGN_TRANSACTION;\n unsignedTxJson: string;\n data: Avalanche.Tx;\n vm: 'EVM' | 'AVM' | 'PVM';\n ownSignatureIndices: [number, number][];\n }\n | {\n type: RpcMethod.HVM_SIGN_TRANSACTION;\n data: {\n abi: VMABI;\n txPayload: TransactionPayload;\n };\n };\n\nexport type SigningData_EthSendTx = {\n type: RpcMethod.ETH_SEND_TRANSACTION;\n account: string;\n data: TransactionRequest;\n};\n\nexport type EvmTxBatchUpdateFn = (\n data: { maxFeeRate?: bigint; maxTipRate?: bigint },\n txIndex: number,\n) => {\n displayData: DisplayData;\n signingRequests: {\n displayData: DisplayData;\n signingData: SigningData_EthSendTx;\n }[];\n};\n\nexport type EvmTxUpdateFn = (data: {\n maxFeeRate?: bigint;\n maxTipRate?: bigint;\n gasLimit?: number;\n approvalLimit?: Hex; // as hexadecimal, 0x-prefixed\n}) => { displayData: DisplayData; signingData: SigningData_EthSendTx };\n\nexport type BtcTxUpdateFn = (data: { feeRate?: number }) => {\n displayData: DisplayData;\n signingData: Extract<SigningData, { type: RpcMethod.BITCOIN_SEND_TRANSACTION }>;\n};\n\nexport type SigningRequest<Data = SigningData> = {\n displayData: DisplayData;\n signingData: Data;\n updateTx?: EvmTxUpdateFn | BtcTxUpdateFn;\n};\n\nexport type ApprovalParams = {\n request: RpcRequest;\n} & SigningRequest;\n\nexport type BatchApprovalParams = {\n request: RpcRequest;\n signingRequests: SigningRequest<SigningData_EthSendTx>[];\n displayData: DisplayData;\n updateTx: EvmTxBatchUpdateFn;\n};\n\nexport type RequestPublicKeyParams = {\n secretId: string;\n curve: 'secp256k1' | 'ed25519';\n derivationPath?: string;\n};\n\n/**\n * We want to accept both a signed data (tx/message) and a tx hash as a response\n * coming in from the client apps, hence the XORs here.\n *\n * The reason we need to support both is because extension allows importing\n * external software wallets, such as Fireblocks or other apps that support\n * the WalletConnect protocol.\n *\n * My experience is that WalletConnect apps rarely, if ever, support\n * \"eth_signTransaction\" requests and more often only allow sending\n * \"eth_sendTransaction\" calls, which means that all we'll get in response\n * from them is the transaction hash (not a signed tx).\n */\ntype SignedData = { signedData: string };\ntype BroadcastedTx = { txHash: string };\n\nexport type SigningResult = SignedData | BroadcastedTx;\n\nexport type ApprovalResponse =\n | {\n error: RpcError;\n }\n | SigningResult;\n\nexport type BatchApprovalResponse =\n | { error: RpcError }\n | {\n result: SignedData[];\n };\nexport interface ApprovalController {\n requestApproval: (params: ApprovalParams) => Promise<ApprovalResponse>;\n requestPublicKey: (params: RequestPublicKeyParams) => Promise<string>;\n onTransactionPending: ({\n txHash,\n request,\n explorerLink,\n }: {\n txHash: string;\n request: RpcRequest;\n explorerLink: string;\n }) => void;\n onTransactionConfirmed: ({\n txHash,\n explorerLink,\n request,\n }: {\n txHash: string;\n explorerLink: string;\n request: RpcRequest;\n }) => void;\n onTransactionReverted: ({ txHash, request }: { txHash: string; request: RpcRequest }) => void;\n}\n\nexport interface BatchApprovalController extends ApprovalController {\n requestBatchApproval: (params: BatchApprovalParams) => Promise<BatchApprovalResponse>;\n}\n"]}
@@ -0,0 +1,7 @@
1
+ 'use strict';
2
+
3
+ var r=(e=>(e.Mnemonic="mnemonic",e.Ledger="ledger",e.LedgerLive="ledger-live",e.Keystone="keystone",e.Seedless="seedless",e))(r||{});
4
+
5
+ exports.a = r;
6
+ //# sourceMappingURL=out.js.map
7
+ //# sourceMappingURL=chunk-LCSOMXO3.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/account.ts"],"names":["WalletType"],"mappings":"AAEO,IAAKA,OAEVA,EAAA,SAAW,WACXA,EAAA,OAAS,SACTA,EAAA,WAAa,cACbA,EAAA,SAAW,WACXA,EAAA,SAAW,WANDA,OAAA","sourcesContent":["import type { Network, NetworkVMType } from './common';\n\nexport enum WalletType {\n // Primary wallet types\n Mnemonic = 'mnemonic',\n Ledger = 'ledger',\n LedgerLive = 'ledger-live',\n Keystone = 'keystone',\n Seedless = 'seedless',\n}\n\nexport type GetAddressParams = {\n walletType: WalletType;\n accountIndex: number;\n xpub: string;\n network?: Network;\n xpubXP?: string;\n};\n\nexport type GetAddressResponse = Record<string, string>;\n\nexport type SimpleDeriveAddressParams = {\n network: Omit<Network, 'tokens'>;\n /**\n * ID of the secret key to use for derivation.\n */\n secretId: string;\n};\nexport type DetailedDeriveAddressParams = SimpleDeriveAddressParams & {\n /**\n * Account index for which the public key is requested.\n * Leave empty if requesting a public key for a single-account private key.\n */\n accountIndex: number;\n /**\n * Type of the derivation path to use.\n * Useful when working with Ledger devices, which support BIP44 and Ledger Live derivation paths.\n */\n derivationPathType: DerivationPathType;\n\n /**\n * Address index for which the public key will be requested.\n * This is NOT the same as {accountIndex}. Applicable mostly to X/P chain addresses.\n */\n addressIndex?: number;\n};\n\nexport type DeriveAddressParams = SimpleDeriveAddressParams | DetailedDeriveAddressParams;\n\nexport type DeriveAddressResponse = Partial<Record<NetworkVMType, string>>;\n\nexport type DerivationPathType = 'bip44' | 'ledger_live';\nexport type BuildDerivationPathParams = {\n accountIndex: number;\n derivationPathType: DerivationPathType;\n addressIndex?: number;\n};\nexport type BuildDerivationPathResponse = Partial<Record<NetworkVMType, string>>;\n\nexport type PubKeyType = {\n evm: string;\n /**\n * Public keys used for X/P chain are from a different derivation path.\n */\n xp?: string;\n btcWalletPolicyDetails?: BtcWalletPolicyDetails;\n};\n\nexport type BtcWalletPolicyDetails = {\n hmacHex: string;\n /**\n * Extended public key of m/44'/60'/n\n */\n xpub: string;\n masterFingerprint: string;\n name: string;\n};\n"]}
@@ -0,0 +1,5 @@
1
+ var o=(r=>(r.EVM="EVM",r.BITCOIN="BITCOIN",r.AVM="AVM",r.PVM="PVM",r.CoreEth="CoreEth",r.HVM="HVM",r.SVM="SVM",r))(o||{}),i=(e=>(e.PRODUCTION="production",e.DEV="dev",e))(i||{}),n=(t=>(t.CORE_MOBILE_IOS="core-mobile-ios",t.CORE_MOBILE_ANDROID="core-mobile-android",t.CORE_WEB="core-web",t.CORE_EXTENSION="core-extension",t.EXPLORER="explorer",t.OTHER="other",t))(n||{});
2
+
3
+ export { o as a, i as b, n as c };
4
+ //# sourceMappingURL=out.js.map
5
+ //# sourceMappingURL=chunk-M2ZWWM4H.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common.ts"],"names":["NetworkVMType","Environment","AppName"],"mappings":"AAyBO,IAAKA,OACVA,EAAA,IAAM,MACNA,EAAA,QAAU,UACVA,EAAA,IAAM,MACNA,EAAA,IAAM,MACNA,EAAA,QAAU,UACVA,EAAA,IAAM,MACNA,EAAA,IAAM,MAPIA,OAAA,IAmBAC,OACVA,EAAA,WAAa,aACbA,EAAA,IAAM,MAFIA,OAAA,IAKAC,OACVA,EAAA,gBAAkB,kBAClBA,EAAA,oBAAsB,sBACtBA,EAAA,SAAW,WACXA,EAAA,eAAiB,iBACjBA,EAAA,SAAW,WACXA,EAAA,MAAQ,QANEA,OAAA","sourcesContent":["import type { NetworkContractToken, NetworkToken } from './token';\n\nexport type Network = {\n isTestnet?: boolean;\n chainId: number;\n caipId?: string;\n chainName: string;\n rpcUrl: string;\n utilityAddresses?: {\n multicall: string;\n };\n networkToken: NetworkToken;\n pricingProviders?: {\n coingecko: {\n assetPlatformId?: string;\n nativeTokenId?: string;\n };\n };\n tokens?: NetworkContractToken[];\n explorerUrl?: string;\n logoUri?: string;\n vmName: NetworkVMType;\n vmRpcPrefix?: string;\n};\n\nexport enum NetworkVMType {\n EVM = 'EVM',\n BITCOIN = 'BITCOIN',\n AVM = 'AVM',\n PVM = 'PVM',\n CoreEth = 'CoreEth',\n HVM = 'HVM',\n SVM = 'SVM',\n}\n\nexport type Storage = {\n get: <T>(id: string) => T | undefined;\n set: <T>(id: string, data: T) => void;\n};\n\nexport type Caip2ChainId = string;\n\nexport type Hex = `0x${string}`;\n\nexport enum Environment {\n PRODUCTION = 'production',\n DEV = 'dev',\n}\n\nexport enum AppName {\n CORE_MOBILE_IOS = 'core-mobile-ios',\n CORE_MOBILE_ANDROID = 'core-mobile-android',\n CORE_WEB = 'core-web',\n CORE_EXTENSION = 'core-extension',\n EXPLORER = 'explorer',\n OTHER = 'other',\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var e=(r=>(r.NATIVE="NATIVE",r.ERC20="ERC20",r.ERC721="ERC721",r.ERC1155="ERC1155",r.NONERC="NONERC",r))(e||{});
3
+ var e=(r=>(r.NATIVE="NATIVE",r.ERC20="ERC20",r.ERC721="ERC721",r.ERC1155="ERC1155",r.NONERC="NONERC",r.SPL="SPL",r))(e||{});
4
4
 
5
5
  exports.a = e;
6
6
  //# sourceMappingURL=out.js.map
7
- //# sourceMappingURL=chunk-2KGTZTXY.cjs.map
7
+ //# sourceMappingURL=chunk-N7PCIGVW.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/token.ts"],"names":["TokenType"],"mappings":"AAAO,IAAKA,OACVA,EAAA,OAAS,SACTA,EAAA,MAAQ,QACRA,EAAA,OAAS,SACTA,EAAA,QAAU,UACVA,EAAA,OAAS,SACTA,EAAA,IAAM,MANIA,OAAA","sourcesContent":["export enum TokenType {\n NATIVE = 'NATIVE',\n ERC20 = 'ERC20',\n ERC721 = 'ERC721',\n ERC1155 = 'ERC1155',\n NONERC = 'NONERC',\n SPL = 'SPL',\n}\n\nexport interface NetworkToken {\n name: string;\n symbol: string;\n decimals: number;\n logoUri?: string;\n description?: string;\n}\n\nexport type NetworkContractToken = ERC20Token | ERC1155Token | ERC721Token | NONERCToken | SPLToken;\n\nexport interface ERC20Token {\n address: string;\n chainId?: number;\n color?: string;\n type: TokenType.ERC20;\n decimals: number;\n logoUri?: string;\n name: string;\n symbol: string;\n}\n\nexport interface SPLToken {\n address: string;\n name: string;\n symbol: string;\n // Discrepancy between what's returned by Proxy API and the other types here.\n // Proxy API returns `contractType`, but in VM Modules we populate `type`.\n contractType: TokenType.SPL;\n type: TokenType.SPL;\n caip2Id: string;\n decimals: number;\n chainId?: number;\n logoUri?: string;\n color?: string;\n}\n\nexport interface ERC1155Token {\n address: string;\n type: TokenType.ERC1155;\n logoUri?: string;\n name?: string;\n symbol?: string;\n}\n\nexport interface ERC721Token {\n address: string;\n type: TokenType.ERC721;\n logoUri?: string;\n name?: string;\n symbol?: string;\n}\n\nexport interface NONERCToken {\n address: string;\n type: TokenType.NONERC;\n logoUri?: string;\n name?: string;\n symbol?: string;\n}\n"]}
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var n=(t=>(t.BITCOIN_SEND_TRANSACTION="bitcoin_sendTransaction",t.BITCOIN_SIGN_TRANSACTION="bitcoin_signTransaction",t.ETH_SEND_TRANSACTION="eth_sendTransaction",t.ETH_SEND_TRANSACTION_BATCH="eth_sendTransactionBatch",t.SIGN_TYPED_DATA_V3="eth_signTypedData_v3",t.SIGN_TYPED_DATA_V4="eth_signTypedData_v4",t.SIGN_TYPED_DATA_V1="eth_signTypedData_v1",t.SIGN_TYPED_DATA="eth_signTypedData",t.PERSONAL_SIGN="personal_sign",t.ETH_SIGN="eth_sign",t.AVALANCHE_SIGN_MESSAGE="avalanche_signMessage",t.AVALANCHE_SEND_TRANSACTION="avalanche_sendTransaction",t.AVALANCHE_SIGN_TRANSACTION="avalanche_signTransaction",t.HVM_SIGN_TRANSACTION="hvm_signTransaction",t.SOLANA_SIGN_TRANSACTION="solana_signTransaction",t.SOLANA_SIGN_AND_SEND_TRANSACTION="solana_signAndSendTransaction",t.SOLANA_SIGN_MESSAGE="solana_signMessage",t))(n||{}),i=(e=>(e.TEXT="text",e.ADDRESS="address",e.ADDRESS_LIST="addressList",e.NODE_ID="nodeID",e.CURRENCY="currency",e.FUNDS_RECIPIENT="fundsRecipient",e.DATA="data",e.DATE="date",e.LINK="link",e.NETWORK="network",e))(i||{}),r=(a=>(a.WARNING="Warning",a.DANGER="Danger",a.INFO="Info",a))(r||{});
4
+
5
+ exports.a = n;
6
+ exports.b = i;
7
+ exports.c = r;
8
+ //# sourceMappingURL=out.js.map
9
+ //# sourceMappingURL=chunk-PKPUCHVR.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/rpc.ts"],"names":["RpcMethod","DetailItemType","AlertType"],"mappings":"AAQO,IAAKA,OAEVA,EAAA,yBAA2B,0BAC3BA,EAAA,yBAA2B,0BAG3BA,EAAA,qBAAuB,sBACvBA,EAAA,2BAA6B,2BAC7BA,EAAA,mBAAqB,uBACrBA,EAAA,mBAAqB,uBACrBA,EAAA,mBAAqB,uBACrBA,EAAA,gBAAkB,oBAClBA,EAAA,cAAgB,gBAChBA,EAAA,SAAW,WAGXA,EAAA,uBAAyB,wBACzBA,EAAA,2BAA6B,4BAC7BA,EAAA,2BAA6B,4BAG7BA,EAAA,qBAAuB,sBAGvBA,EAAA,wBAA0B,yBAC1BA,EAAA,iCAAmC,gCACnCA,EAAA,oBAAsB,qBA1BZA,OAAA,IAqFAC,OACVA,EAAA,KAAO,OACPA,EAAA,QAAU,UACVA,EAAA,aAAe,cACfA,EAAA,QAAU,SACVA,EAAA,SAAW,WACXA,EAAA,gBAAkB,iBAClBA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,QAAU,UAVAA,OAAA,IAgHAC,OACVA,EAAA,QAAU,UACVA,EAAA,OAAS,SACTA,EAAA,KAAO,OAHGA,OAAA","sourcesContent":["import type { TransactionRequest } from 'ethers';\nimport type { Avalanche, BitcoinInputUTXO, BitcoinOutputUTXO } from '@avalabs/core-wallets-sdk';\nimport type { Caip2ChainId, Hex } from './common';\nimport type { JsonRpcError, EthereumProviderError, OptionalDataWithOptionalCause } from '@metamask/rpc-errors';\nimport type { BalanceChange, TokenApprovals } from './transaction-simulation';\nimport type { TokenWithBalanceBTC } from './balance';\nimport type { TransactionPayload, VMABI } from 'hypersdk-client';\n\nexport enum RpcMethod {\n /* BTC */\n BITCOIN_SEND_TRANSACTION = 'bitcoin_sendTransaction',\n BITCOIN_SIGN_TRANSACTION = 'bitcoin_signTransaction',\n\n /* EVM */\n ETH_SEND_TRANSACTION = 'eth_sendTransaction',\n ETH_SEND_TRANSACTION_BATCH = 'eth_sendTransactionBatch',\n SIGN_TYPED_DATA_V3 = 'eth_signTypedData_v3',\n SIGN_TYPED_DATA_V4 = 'eth_signTypedData_v4',\n SIGN_TYPED_DATA_V1 = 'eth_signTypedData_v1',\n SIGN_TYPED_DATA = 'eth_signTypedData',\n PERSONAL_SIGN = 'personal_sign',\n ETH_SIGN = 'eth_sign',\n\n /* AVALANCHE */\n AVALANCHE_SIGN_MESSAGE = 'avalanche_signMessage',\n AVALANCHE_SEND_TRANSACTION = 'avalanche_sendTransaction',\n AVALANCHE_SIGN_TRANSACTION = 'avalanche_signTransaction',\n\n /* HVM */\n HVM_SIGN_TRANSACTION = 'hvm_signTransaction',\n\n /* SOLANA */\n SOLANA_SIGN_TRANSACTION = 'solana_signTransaction',\n SOLANA_SIGN_AND_SEND_TRANSACTION = 'solana_signAndSendTransaction',\n SOLANA_SIGN_MESSAGE = 'solana_signMessage',\n}\n\nexport type DappInfo = {\n name: string;\n url: string;\n icon: string;\n};\n\nexport type RpcRequest = {\n requestId: string;\n sessionId: string;\n method: RpcMethod;\n chainId: Caip2ChainId;\n params: unknown;\n dappInfo: DappInfo;\n context?: Record<string, unknown>; // for storing additional context information that's only relevant to the consumer\n};\n\nexport type RpcError =\n | JsonRpcError<OptionalDataWithOptionalCause>\n | EthereumProviderError<OptionalDataWithOptionalCause>;\n\nexport type RpcResponse<R = unknown, E extends RpcError = JsonRpcError<OptionalDataWithOptionalCause>> =\n | {\n result: R;\n }\n | {\n error: E;\n };\n\nexport interface MessageTypeProperty {\n name: string;\n type: string;\n}\n\nexport interface MessageTypes {\n EIP712Domain: MessageTypeProperty[];\n [additionalProperties: string]: MessageTypeProperty[];\n}\n\nexport interface TypedData<T extends MessageTypes> {\n types: T;\n primaryType: keyof T;\n domain: Record<string, unknown>;\n message: Record<string, unknown>;\n}\n\nexport type TypedDataV1 = { name: string; type: string; value: unknown }[];\n\nexport type DetailSection = {\n title?: string;\n items: DetailItem[];\n};\n\nexport type BaseDetailItem = {\n label: string;\n};\n\nexport enum DetailItemType {\n TEXT = 'text',\n ADDRESS = 'address',\n ADDRESS_LIST = 'addressList',\n NODE_ID = 'nodeID',\n CURRENCY = 'currency',\n FUNDS_RECIPIENT = 'fundsRecipient',\n DATA = 'data',\n DATE = 'date',\n LINK = 'link',\n NETWORK = 'network',\n}\n\n// It's very similar as CurrencyItem, but we want the client apps\n// to treat the label as an address (recognize it if possible,\n// truncate otherwise).\nexport type FundsRecipientItem = BaseDetailItem & {\n type: DetailItemType.FUNDS_RECIPIENT;\n amount: bigint;\n maxDecimals: number;\n symbol: string;\n};\n\nexport type TextItem = BaseDetailItem & {\n type: DetailItemType.TEXT;\n value: string;\n alignment: 'vertical' | 'horizontal';\n};\n\nexport type AddressItem = BaseDetailItem & {\n type: DetailItemType.ADDRESS;\n value: string;\n};\n\nexport type AddressListItem = BaseDetailItem & {\n type: DetailItemType.ADDRESS_LIST;\n value: string[];\n};\n\nexport type NodeIDItem = BaseDetailItem & {\n type: DetailItemType.NODE_ID;\n value: string;\n};\n\nexport type CurrencyItem = BaseDetailItem & {\n type: DetailItemType.CURRENCY;\n value: bigint;\n maxDecimals: number;\n symbol: string;\n};\n\nexport type DataItem = BaseDetailItem & {\n type: DetailItemType.DATA;\n value: string;\n};\n\nexport type DateItem = BaseDetailItem & {\n type: DetailItemType.DATE;\n value: string;\n};\n\nexport type LinkItemValue = { url: string; name?: string; icon?: string };\n\nexport type LinkItem = BaseDetailItem & {\n type: DetailItemType.LINK;\n value: LinkItemValue;\n};\n\nexport type NetworkItemValue = {\n logoUri: string | undefined;\n name: string;\n};\n\nexport type NetworkItem = BaseDetailItem & {\n type: DetailItemType.NETWORK;\n value: NetworkItemValue;\n};\n\nexport type DetailItem =\n | string\n | TextItem\n | AddressItem\n | AddressListItem\n | NodeIDItem\n | CurrencyItem\n | DataItem\n | DateItem\n | LinkItem\n | FundsRecipientItem\n | NetworkItem;\n\nexport type DisplayData = {\n title: string;\n dAppInfo?: {\n name: string;\n action: string;\n logoUri?: string;\n };\n network?: {\n chainId: number;\n name: string;\n logoUri?: string;\n };\n account?: string;\n details: DetailSection[];\n networkFeeSelector?: boolean;\n alert?: Alert;\n balanceChange?: BalanceChange;\n tokenApprovals?: TokenApprovals;\n isSimulationSuccessful?: boolean;\n};\n\nexport enum AlertType {\n WARNING = 'Warning',\n DANGER = 'Danger',\n INFO = 'Info',\n}\n\nexport type AlertDetails = {\n title: string;\n description: string;\n detailedDescription?: string;\n body?: string[];\n actionTitles?: {\n proceed: string;\n reject: string;\n };\n};\n\nexport type Alert = {\n type: AlertType;\n details: AlertDetails;\n};\n\nexport type BitcoinExecuteTxData = {\n to: string;\n amount: number;\n feeRate: number;\n fee: number;\n gasLimit: number;\n balance: TokenWithBalanceBTC;\n inputs: BitcoinInputUTXO[];\n outputs: BitcoinOutputUTXO[];\n};\n\nexport type BitcoingSignTxData = {\n inputs: BitcoinInputUTXO[];\n outputs: BitcoinOutputUTXO[];\n};\n\nexport type SigningData =\n | {\n type: RpcMethod.SOLANA_SIGN_AND_SEND_TRANSACTION;\n account: string;\n data: string; // Base-64 encoded \"Wire Transaction\"\n }\n | {\n type: RpcMethod.SOLANA_SIGN_TRANSACTION;\n account: string;\n data: string; // Base-64 encoded \"Wire Transaction\"\n }\n | {\n type: RpcMethod.SOLANA_SIGN_MESSAGE;\n account: string;\n data: string; // Base-64 encoded message\n }\n | {\n type: RpcMethod.BITCOIN_SEND_TRANSACTION;\n account: string;\n data: BitcoinExecuteTxData;\n }\n | {\n type: RpcMethod.BITCOIN_SIGN_TRANSACTION;\n account: string;\n data: BitcoingSignTxData;\n }\n | SigningData_EthSendTx\n | {\n type: RpcMethod.ETH_SIGN | RpcMethod.PERSONAL_SIGN;\n account: string;\n data: string;\n }\n | {\n type: RpcMethod.SIGN_TYPED_DATA | RpcMethod.SIGN_TYPED_DATA_V1;\n account: string;\n data: TypedData<MessageTypes> | TypedDataV1;\n }\n | {\n type: RpcMethod.SIGN_TYPED_DATA_V3 | RpcMethod.SIGN_TYPED_DATA_V4;\n account: string;\n data: TypedData<MessageTypes>;\n }\n | {\n type: RpcMethod.AVALANCHE_SIGN_MESSAGE;\n data: string;\n accountIndex?: number;\n }\n | {\n type: RpcMethod.AVALANCHE_SEND_TRANSACTION;\n unsignedTxJson: string;\n data: Avalanche.Tx;\n vm: 'EVM' | 'AVM' | 'PVM';\n externalIndices?: number[];\n internalIndices?: number[];\n }\n | {\n type: RpcMethod.AVALANCHE_SIGN_TRANSACTION;\n unsignedTxJson: string;\n data: Avalanche.Tx;\n vm: 'EVM' | 'AVM' | 'PVM';\n ownSignatureIndices: [number, number][];\n }\n | {\n type: RpcMethod.HVM_SIGN_TRANSACTION;\n data: {\n abi: VMABI;\n txPayload: TransactionPayload;\n };\n };\n\nexport type SigningData_EthSendTx = {\n type: RpcMethod.ETH_SEND_TRANSACTION;\n account: string;\n data: TransactionRequest;\n};\n\nexport type EvmTxBatchUpdateFn = (\n data: { maxFeeRate?: bigint; maxTipRate?: bigint },\n txIndex: number,\n) => {\n displayData: DisplayData;\n signingRequests: {\n displayData: DisplayData;\n signingData: SigningData_EthSendTx;\n }[];\n};\n\nexport type EvmTxUpdateFn = (data: {\n maxFeeRate?: bigint;\n maxTipRate?: bigint;\n gasLimit?: number;\n approvalLimit?: Hex; // as hexadecimal, 0x-prefixed\n}) => { displayData: DisplayData; signingData: SigningData_EthSendTx };\n\nexport type BtcTxUpdateFn = (data: { feeRate?: number }) => {\n displayData: DisplayData;\n signingData: Extract<SigningData, { type: RpcMethod.BITCOIN_SEND_TRANSACTION }>;\n};\n\nexport type SigningRequest<Data = SigningData> = {\n displayData: DisplayData;\n signingData: Data;\n updateTx?: EvmTxUpdateFn | BtcTxUpdateFn;\n};\n\nexport type ApprovalParams = {\n request: RpcRequest;\n} & SigningRequest;\n\nexport type BatchApprovalParams = {\n request: RpcRequest;\n signingRequests: SigningRequest<SigningData_EthSendTx>[];\n displayData: DisplayData;\n updateTx: EvmTxBatchUpdateFn;\n};\n\nexport type RequestPublicKeyParams = {\n secretId: string;\n curve: 'secp256k1' | 'ed25519';\n derivationPath?: string;\n};\n\n/**\n * We want to accept both a signed data (tx/message) and a tx hash as a response\n * coming in from the client apps, hence the XORs here.\n *\n * The reason we need to support both is because extension allows importing\n * external software wallets, such as Fireblocks or other apps that support\n * the WalletConnect protocol.\n *\n * My experience is that WalletConnect apps rarely, if ever, support\n * \"eth_signTransaction\" requests and more often only allow sending\n * \"eth_sendTransaction\" calls, which means that all we'll get in response\n * from them is the transaction hash (not a signed tx).\n */\ntype SignedData = { signedData: string };\ntype BroadcastedTx = { txHash: string };\n\nexport type SigningResult = SignedData | BroadcastedTx;\n\nexport type ApprovalResponse =\n | {\n error: RpcError;\n }\n | SigningResult;\n\nexport type BatchApprovalResponse =\n | { error: RpcError }\n | {\n result: SignedData[];\n };\nexport interface ApprovalController {\n requestApproval: (params: ApprovalParams) => Promise<ApprovalResponse>;\n requestPublicKey: (params: RequestPublicKeyParams) => Promise<string>;\n onTransactionPending: ({\n txHash,\n request,\n explorerLink,\n }: {\n txHash: string;\n request: RpcRequest;\n explorerLink: string;\n }) => void;\n onTransactionConfirmed: ({\n txHash,\n explorerLink,\n request,\n }: {\n txHash: string;\n explorerLink: string;\n request: RpcRequest;\n }) => void;\n onTransactionReverted: ({ txHash, request }: { txHash: string; request: RpcRequest }) => void;\n}\n\nexport interface BatchApprovalController extends ApprovalController {\n requestBatchApproval: (params: BatchApprovalParams) => Promise<BatchApprovalResponse>;\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var e=(t=>(t.Base="base",t.AddValidator="add_validator",t.AddDelegator="add_delegator",t.Export="export",t.Import="import",t.CreateSubnet="create_subnet",t.CreateChain="create_chain",t.AddSubnetValidator="add_subnet_validator",t.RemoveSubnetValidator="remove_subnet_validator",t.AddPermissionlessValidator="add_permissionless_validator",t.AddPermissionlessDelegator="add_permissionless_delegator",t.TransformSubnet="transform_subnet",t.TransferSubnetOwnership="transfer_subnet_ownership",t.Unknown="unknown",t))(e||{});
3
+ var e=(t=>(t.Base="base",t.AddValidator="add_validator",t.AddDelegator="add_delegator",t.Export="export",t.Import="import",t.CreateSubnet="create_subnet",t.CreateChain="create_chain",t.AddSubnetValidator="add_subnet_validator",t.RemoveSubnetValidator="remove_subnet_validator",t.AddPermissionlessValidator="add_permissionless_validator",t.AddPermissionlessDelegator="add_permissionless_delegator",t.TransformSubnet="transform_subnet",t.TransferSubnetOwnership="transfer_subnet_ownership",t.ConvertSubnetToL1="convert_subnet_to_l1",t.RegisterL1Validator="register_l1_validator",t.SetL1ValidatorWeight="set_l1_validator_weight",t.IncreaseL1ValidatorBalance="increase_l1_validator_balance",t.DisableL1Validator="disable_l1_validator",t.Unknown="unknown",t))(e||{});
4
4
 
5
5
  exports.a = e;
6
6
  //# sourceMappingURL=out.js.map
7
- //# sourceMappingURL=chunk-IQNJXPS3.cjs.map
7
+ //# sourceMappingURL=chunk-PX3B6TJZ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/staking.ts"],"names":["TxType"],"mappings":"AAuKO,IAAKA,OACVA,EAAA,KAAO,OACPA,EAAA,aAAe,gBACfA,EAAA,aAAe,gBACfA,EAAA,OAAS,SACTA,EAAA,OAAS,SACTA,EAAA,aAAe,gBACfA,EAAA,YAAc,eACdA,EAAA,mBAAqB,uBACrBA,EAAA,sBAAwB,0BACxBA,EAAA,2BAA6B,+BAC7BA,EAAA,2BAA6B,+BAC7BA,EAAA,gBAAkB,mBAClBA,EAAA,wBAA0B,4BAC1BA,EAAA,kBAAoB,uBACpBA,EAAA,oBAAsB,wBACtBA,EAAA,qBAAuB,0BACvBA,EAAA,2BAA6B,gCAC7BA,EAAA,mBAAqB,uBACrBA,EAAA,QAAU,UAnBAA,OAAA","sourcesContent":["import type { NetworkVMType } from './common';\n\nexport type TxDetails =\n | StakingDetails\n | ExportImportTxDetails\n | ChainDetails\n | BlockchainDetails\n | SubnetDetails\n | L1Details;\n\nexport type StakingDetails =\n | AddPermissionlessDelegatorTx\n | AddPermissionlessValidatorTx\n | AddSubnetValidatorTx\n | RemoveSubnetValidatorTx;\nexport type ExportImportTxDetails = ExportTx | ImportTx;\nexport type ChainDetails = BaseTx;\nexport type BlockchainDetails = CreateChainTx;\nexport type SubnetDetails = CreateSubnetTx;\nexport type L1Details =\n | ConvertSubnetToL1Tx\n | RegisterL1ValidatorTx\n | SetL1ValidatorWeightTx\n | IncreaseL1ValidatorBalanceTx\n | DisableL1ValidatorTx;\n\nexport type VM = NetworkVMType.AVM | NetworkVMType.EVM | NetworkVMType.PVM;\n\nexport type AddPermissionlessDelegatorTx = {\n type: TxType.AddPermissionlessDelegator;\n nodeID: string;\n subnetID: string;\n stake: bigint;\n start: string;\n end: string;\n txFee: bigint;\n};\n\nexport type AddPermissionlessValidatorTx = {\n type: TxType.AddPermissionlessValidator;\n nodeID: string;\n subnetID: string;\n stake: bigint;\n delegationFee: number;\n start: string;\n end: string;\n txFee: bigint;\n publicKey?: string;\n signature?: string;\n};\n\nexport interface ExportTx {\n type: TxType.Export;\n destination: VM;\n amount: bigint;\n chain: VM;\n txFee: bigint;\n}\n\nexport interface ImportTx {\n type: TxType.Import;\n source: VM;\n amount: bigint;\n chain: VM;\n txFee: bigint;\n}\n\nexport interface BaseTx {\n type: TxType.Base;\n chain: VM;\n outputs: {\n assetId: string;\n locktime: bigint;\n threshold: bigint;\n amount: bigint;\n assetDescription?: {\n assetID: string;\n name: string;\n symbol: string;\n denomination: number;\n };\n owners: string[];\n isAvax: boolean;\n }[];\n memo?: string;\n txFee: bigint;\n}\n\nexport type AddSubnetValidatorTx = {\n type: TxType.AddSubnetValidator;\n nodeID: string;\n subnetID: string;\n stake: bigint;\n start: string;\n end: string;\n txFee: bigint;\n};\n\nexport type CreateChainTx = {\n type: TxType.CreateChain;\n chainName: string;\n chainID: string;\n vmID: string;\n genesisData: string;\n txFee: bigint;\n};\n\nexport type CreateSubnetTx = {\n type: TxType.CreateSubnet;\n threshold: number;\n controlKeys: string[];\n txFee: bigint;\n};\n\nexport type RemoveSubnetValidatorTx = {\n type: TxType.RemoveSubnetValidator;\n nodeID: string;\n subnetID: string;\n txFee: bigint;\n};\n\nexport type FeeData = {\n totalAvaxBurned: bigint;\n totalAvaxOutput: bigint;\n totalAvaxInput: bigint;\n isValidAvaxBurnedAmount: boolean;\n txFee: bigint;\n};\n\nexport type TxBase = FeeData & {\n chain: VM;\n};\n\nexport type ConvertSubnetToL1Tx = TxBase & {\n type: TxType.ConvertSubnetToL1;\n managerAddress: string;\n validators: {\n nodeId: string;\n stake: bigint;\n balance: bigint;\n remainingBalanceOwners: string[];\n deactivationOwners: string[];\n }[];\n subnetID: string;\n chainID: string;\n};\n\nexport type RegisterL1ValidatorTx = TxBase & {\n type: TxType.RegisterL1Validator;\n balance: bigint;\n};\n\nexport type SetL1ValidatorWeightTx = TxBase & {\n type: TxType.SetL1ValidatorWeight;\n};\n\nexport type IncreaseL1ValidatorBalanceTx = TxBase & {\n type: TxType.IncreaseL1ValidatorBalance;\n balance: bigint;\n validationId: string;\n};\n\nexport type DisableL1ValidatorTx = TxBase & {\n type: TxType.DisableL1Validator;\n validationId: string;\n};\n\nexport enum TxType {\n Base = 'base',\n AddValidator = 'add_validator',\n AddDelegator = 'add_delegator',\n Export = 'export',\n Import = 'import',\n CreateSubnet = 'create_subnet',\n CreateChain = 'create_chain',\n AddSubnetValidator = 'add_subnet_validator',\n RemoveSubnetValidator = 'remove_subnet_validator',\n AddPermissionlessValidator = 'add_permissionless_validator',\n AddPermissionlessDelegator = 'add_permissionless_delegator',\n TransformSubnet = 'transform_subnet',\n TransferSubnetOwnership = 'transfer_subnet_ownership',\n ConvertSubnetToL1 = 'convert_subnet_to_l1',\n RegisterL1Validator = 'register_l1_validator',\n SetL1ValidatorWeight = 'set_l1_validator_weight',\n IncreaseL1ValidatorBalance = 'increase_l1_validator_balance',\n DisableL1Validator = 'disable_l1_validator',\n Unknown = 'unknown',\n}\n"]}
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=out.js.map
3
+ //# sourceMappingURL=chunk-REHORWPH.js.map