@avalabs/vm-module-types 0.1.9 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,5 @@
1
1
  import { Network, Storage } from './common.cjs';
2
+ import { Error } from './error.cjs';
2
3
  import { NetworkContractToken, TokenType, NetworkToken } from './token.cjs';
3
4
  import { PChainBalance, XChainBalances } from '@avalabs/glacier-sdk';
4
5
 
@@ -118,6 +119,6 @@ interface TokenAttribute {
118
119
  value: string;
119
120
  }
120
121
  type TokenWithBalance = TokenWithBalanceEVM | TokenWithBalanceBTC | TokenWithBalancePVM | TokenWithBalanceAVM | NftTokenWithBalance;
121
- type GetBalancesResponse = Record<string, Record<string, TokenWithBalance>>;
122
+ type GetBalancesResponse = Record<string, Record<string, TokenWithBalance | Error> | Error>;
122
123
 
123
124
  export { GetBalancesParams, GetBalancesResponse, NetworkTokenWithBalance, NftTokenWithBalance, TokenAttribute, TokenBalanceData, TokenMarketData, TokenWithBalance, TokenWithBalanceAVM, TokenWithBalanceBTC, TokenWithBalanceERC20, TokenWithBalanceEVM, TokenWithBalancePVM };
package/dist/balance.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  import { Network, Storage } from './common.js';
2
+ import { Error } from './error.js';
2
3
  import { NetworkContractToken, TokenType, NetworkToken } from './token.js';
3
4
  import { PChainBalance, XChainBalances } from '@avalabs/glacier-sdk';
4
5
 
@@ -118,6 +119,6 @@ interface TokenAttribute {
118
119
  value: string;
119
120
  }
120
121
  type TokenWithBalance = TokenWithBalanceEVM | TokenWithBalanceBTC | TokenWithBalancePVM | TokenWithBalanceAVM | NftTokenWithBalance;
121
- type GetBalancesResponse = Record<string, Record<string, TokenWithBalance>>;
122
+ type GetBalancesResponse = Record<string, Record<string, TokenWithBalance | Error> | Error>;
122
123
 
123
124
  export { GetBalancesParams, GetBalancesResponse, NetworkTokenWithBalance, NftTokenWithBalance, TokenAttribute, TokenBalanceData, TokenMarketData, TokenWithBalance, TokenWithBalanceAVM, TokenWithBalanceBTC, TokenWithBalanceERC20, TokenWithBalanceEVM, TokenWithBalancePVM };
@@ -5,4 +5,4 @@ var a=(t=>(t.BITCOIN_SEND_TRANSACTION="bitcoin_sendTransaction",t.ETH_SEND_TRANS
5
5
  exports.a = a;
6
6
  exports.b = n;
7
7
  //# sourceMappingURL=out.js.map
8
- //# sourceMappingURL=chunk-HSGN5OZW.cjs.map
8
+ //# sourceMappingURL=chunk-7Z4WA2P6.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/rpc.ts"],"names":["RpcMethod","AlertType"],"mappings":"AAQO,IAAKA,OAEVA,EAAA,yBAA2B,0BAG3BA,EAAA,qBAAuB,sBACvBA,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,4BAhBnBA,OAAA,IAoGAC,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 { StakingDetails, ExportImportTxDetails, ChainDetails, BlockchainDetails, SubnetDetails } from './staking';\nimport type { TokenWithBalanceBTC } from './balance';\n\nexport enum RpcMethod {\n /* BTC */\n BITCOIN_SEND_TRANSACTION = 'bitcoin_sendTransaction',\n\n /* EVM */\n ETH_SEND_TRANSACTION = 'eth_sendTransaction',\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\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 TransactionDetails = {\n website: string;\n from: string;\n to: string;\n data?: string;\n type?: string;\n};\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 messageDetails?: string;\n transactionDetails?: TransactionDetails | ExportImportTxDetails;\n stakingDetails?: StakingDetails;\n chainDetails?: ChainDetails;\n blockchainDetails?: BlockchainDetails;\n subnetDetails?: SubnetDetails;\n networkFeeSelector?: boolean;\n disclaimer?: string;\n alert?: Alert;\n balanceChange?: BalanceChange;\n tokenApprovals?: TokenApprovals;\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 actionTitles?: {\n proceed: string;\n reject: string;\n };\n};\n\nexport type Alert = {\n type: AlertType;\n details: AlertDetails;\n};\n\nexport type BitcoinTransactionData = {\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 SigningData =\n | {\n type: RpcMethod.BITCOIN_SEND_TRANSACTION;\n account: string;\n data: BitcoinTransactionData;\n }\n | {\n type: RpcMethod.ETH_SEND_TRANSACTION;\n account: string;\n data: TransactionRequest;\n }\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 }\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\nexport type ApprovalParams = {\n request: RpcRequest;\n displayData: DisplayData;\n signingData: SigningData;\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 */\nexport type SigningResult = { signedData: string } | { txHash: string };\n\nexport type ApprovalResponse =\n | {\n error: RpcError;\n }\n | SigningResult;\n\nexport interface ApprovalController {\n requestApproval: (params: ApprovalParams) => Promise<ApprovalResponse>;\n onTransactionConfirmed: (txHash: Hex) => void;\n onTransactionReverted: (txHash: Hex) => void;\n}\n"]}
@@ -0,0 +1,3 @@
1
+
2
+ //# sourceMappingURL=out.js.map
3
+ //# sourceMappingURL=chunk-REHORWPH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,4 @@
1
+ 'use strict';
2
+
3
+ //# sourceMappingURL=out.js.map
4
+ //# sourceMappingURL=chunk-SYVNOFCV.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -2,4 +2,4 @@ var a=(t=>(t.BITCOIN_SEND_TRANSACTION="bitcoin_sendTransaction",t.ETH_SEND_TRANS
2
2
 
3
3
  export { a, n as b };
4
4
  //# sourceMappingURL=out.js.map
5
- //# sourceMappingURL=chunk-BNOZJ4QS.js.map
5
+ //# sourceMappingURL=chunk-ZVCTHYAU.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/rpc.ts"],"names":["RpcMethod","AlertType"],"mappings":"AAQO,IAAKA,OAEVA,EAAA,yBAA2B,0BAG3BA,EAAA,qBAAuB,sBACvBA,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,4BAhBnBA,OAAA,IAoGAC,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 { StakingDetails, ExportImportTxDetails, ChainDetails, BlockchainDetails, SubnetDetails } from './staking';\nimport type { TokenWithBalanceBTC } from './balance';\n\nexport enum RpcMethod {\n /* BTC */\n BITCOIN_SEND_TRANSACTION = 'bitcoin_sendTransaction',\n\n /* EVM */\n ETH_SEND_TRANSACTION = 'eth_sendTransaction',\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\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 TransactionDetails = {\n website: string;\n from: string;\n to: string;\n data?: string;\n type?: string;\n};\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 messageDetails?: string;\n transactionDetails?: TransactionDetails | ExportImportTxDetails;\n stakingDetails?: StakingDetails;\n chainDetails?: ChainDetails;\n blockchainDetails?: BlockchainDetails;\n subnetDetails?: SubnetDetails;\n networkFeeSelector?: boolean;\n disclaimer?: string;\n alert?: Alert;\n balanceChange?: BalanceChange;\n tokenApprovals?: TokenApprovals;\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 actionTitles?: {\n proceed: string;\n reject: string;\n };\n};\n\nexport type Alert = {\n type: AlertType;\n details: AlertDetails;\n};\n\nexport type BitcoinTransactionData = {\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 SigningData =\n | {\n type: RpcMethod.BITCOIN_SEND_TRANSACTION;\n account: string;\n data: BitcoinTransactionData;\n }\n | {\n type: RpcMethod.ETH_SEND_TRANSACTION;\n account: string;\n data: TransactionRequest;\n }\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 }\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\nexport type ApprovalParams = {\n request: RpcRequest;\n displayData: DisplayData;\n signingData: SigningData;\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 */\nexport type SigningResult = { signedData: string } | { txHash: string };\n\nexport type ApprovalResponse =\n | {\n error: RpcError;\n }\n | SigningResult;\n\nexport interface ApprovalController {\n requestApproval: (params: ApprovalParams) => Promise<ApprovalResponse>;\n onTransactionConfirmed: (txHash: Hex) => void;\n onTransactionReverted: (txHash: Hex) => void;\n}\n"]}
@@ -6,15 +6,15 @@ declare const SimplePriceResponseSchema: z.ZodRecord<z.ZodString, z.ZodRecord<z.
6
6
  marketCap: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
7
7
  vol24: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
8
8
  }, "strip", z.ZodTypeAny, {
9
- marketCap?: number | null | undefined;
9
+ price?: number | null | undefined;
10
10
  change24?: number | null | undefined;
11
+ marketCap?: number | null | undefined;
11
12
  vol24?: number | null | undefined;
12
- price?: number | null | undefined;
13
13
  }, {
14
- marketCap?: number | null | undefined;
14
+ price?: number | null | undefined;
15
15
  change24?: number | null | undefined;
16
+ marketCap?: number | null | undefined;
16
17
  vol24?: number | null | undefined;
17
- price?: number | null | undefined;
18
18
  }>>>;
19
19
  type SimplePriceResponse = z.infer<typeof SimplePriceResponseSchema>;
20
20
  declare const RawSimplePriceResponseSchema: z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodNullable<z.ZodNumber>>>>;
@@ -6,15 +6,15 @@ declare const SimplePriceResponseSchema: z.ZodRecord<z.ZodString, z.ZodRecord<z.
6
6
  marketCap: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
7
7
  vol24: z.ZodNullable<z.ZodOptional<z.ZodNumber>>;
8
8
  }, "strip", z.ZodTypeAny, {
9
- marketCap?: number | null | undefined;
9
+ price?: number | null | undefined;
10
10
  change24?: number | null | undefined;
11
+ marketCap?: number | null | undefined;
11
12
  vol24?: number | null | undefined;
12
- price?: number | null | undefined;
13
13
  }, {
14
- marketCap?: number | null | undefined;
14
+ price?: number | null | undefined;
15
15
  change24?: number | null | undefined;
16
+ marketCap?: number | null | undefined;
16
17
  vol24?: number | null | undefined;
17
- price?: number | null | undefined;
18
18
  }>>>;
19
19
  type SimplePriceResponse = z.infer<typeof SimplePriceResponseSchema>;
20
20
  declare const RawSimplePriceResponseSchema: z.ZodRecord<z.ZodString, z.ZodRecord<z.ZodString, z.ZodOptional<z.ZodNullable<z.ZodNumber>>>>;
package/dist/error.cjs ADDED
@@ -0,0 +1,6 @@
1
+ 'use strict';
2
+
3
+ require('./chunk-SYVNOFCV.cjs');
4
+
5
+ //# sourceMappingURL=out.js.map
6
+ //# sourceMappingURL=error.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
@@ -0,0 +1,5 @@
1
+ type Error = {
2
+ error: string;
3
+ };
4
+
5
+ export { Error };
@@ -0,0 +1,5 @@
1
+ type Error = {
2
+ error: string;
3
+ };
4
+
5
+ export { Error };
package/dist/error.js ADDED
@@ -0,0 +1,3 @@
1
+ import './chunk-REHORWPH.js';
2
+ //# sourceMappingURL=out.js.map
3
+ //# sourceMappingURL=error.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":""}
package/dist/index.cjs CHANGED
@@ -1,6 +1,7 @@
1
1
  'use strict';
2
2
 
3
- var chunkHSGN5OZW_cjs = require('./chunk-HSGN5OZW.cjs');
3
+ require('./chunk-AILYKQEY.cjs');
4
+ var chunk7Z4WA2P6_cjs = require('./chunk-7Z4WA2P6.cjs');
4
5
  var chunkIQNJXPS3_cjs = require('./chunk-IQNJXPS3.cjs');
5
6
  var chunk2KGTZTXY_cjs = require('./chunk-2KGTZTXY.cjs');
6
7
  var chunkB6DAZDIA_cjs = require('./chunk-B6DAZDIA.cjs');
@@ -9,19 +10,19 @@ var chunkTCBFAMPS_cjs = require('./chunk-TCBFAMPS.cjs');
9
10
  require('./chunk-JUV577XH.cjs');
10
11
  var chunk4PGCXP4C_cjs = require('./chunk-4PGCXP4C.cjs');
11
12
  var chunkVRQJHO4F_cjs = require('./chunk-VRQJHO4F.cjs');
13
+ require('./chunk-SYVNOFCV.cjs');
12
14
  var chunk74SNNWSF_cjs = require('./chunk-74SNNWSF.cjs');
13
15
  require('./chunk-OGQBQHLH.cjs');
14
- require('./chunk-AILYKQEY.cjs');
15
16
 
16
17
 
17
18
 
18
19
  Object.defineProperty(exports, 'AlertType', {
19
20
  enumerable: true,
20
- get: function () { return chunkHSGN5OZW_cjs.b; }
21
+ get: function () { return chunk7Z4WA2P6_cjs.b; }
21
22
  });
22
23
  Object.defineProperty(exports, 'RpcMethod', {
23
24
  enumerable: true,
24
- get: function () { return chunkHSGN5OZW_cjs.a; }
25
+ get: function () { return chunk7Z4WA2P6_cjs.a; }
25
26
  });
26
27
  Object.defineProperty(exports, 'TxType', {
27
28
  enumerable: true,
package/dist/index.d.cts CHANGED
@@ -1,10 +1,11 @@
1
1
  export { Caip2ChainId, Environment, Hex, Network, NetworkVMType, Storage } from './common.cjs';
2
2
  export { RawSimplePriceResponse, RawSimplePriceResponseSchema, SimplePriceResponse, SimplePriceResponseSchema } from './coingecko.cjs';
3
3
  export { GetBalancesParams, GetBalancesResponse, NetworkTokenWithBalance, NftTokenWithBalance, TokenAttribute, TokenBalanceData, TokenMarketData, TokenWithBalance, TokenWithBalanceAVM, TokenWithBalanceBTC, TokenWithBalanceERC20, TokenWithBalanceEVM, TokenWithBalancePVM } from './balance.cjs';
4
+ export { Error } from './error.cjs';
4
5
  export { Manifest, parseManifest } from './manifest.cjs';
5
6
  export { Module } from './module.cjs';
6
7
  export { NetworkFees } from './network-fee.cjs';
7
- export { Alert, AlertDetails, AlertType, ApprovalController, ApprovalParams, ApprovalResponse, DappInfo, DisplayData, MessageTypeProperty, MessageTypes, RpcError, RpcMethod, RpcRequest, RpcResponse, SigningData, SigningResult, TransactionDetails, TypedData, TypedDataV1 } from './rpc.cjs';
8
+ export { Alert, AlertDetails, AlertType, ApprovalController, ApprovalParams, ApprovalResponse, BitcoinTransactionData, DappInfo, DisplayData, MessageTypeProperty, MessageTypes, RpcError, RpcMethod, RpcRequest, RpcResponse, SigningData, SigningResult, TransactionDetails, TypedData, TypedDataV1 } from './rpc.cjs';
8
9
  export { ERC1155Token, ERC20Token, ERC721Token, NONERCToken, NetworkContractToken, NetworkToken, TokenType } from './token.cjs';
9
10
  export { GetTransactionHistory, PChainTransactionType, Transaction, TransactionHistoryResponse, TransactionType, TxToken, XChainTransactionType } from './transaction-history.cjs';
10
11
  export { BalanceChange, TokenApproval, TokenApprovals, TokenDiff, TokenDiffItem } from './transaction-simulation.cjs';
@@ -12,6 +13,6 @@ export { BtcWalletPolicyDetails, GetAddressParams, GetAddressResponse, PubKeyTyp
12
13
  export { AddPermissionlessDelegatorTx, AddPermissionlessValidatorTx, AddSubnetValidatorTx, BaseTx, BlockchainDetails, ChainDetails, CreateChainTx, CreateSubnetTx, ExportImportTxDetails, ExportTx, ImportTx, RemoveSubnetValidatorTx, StakingDetails, SubnetDetails, TxDetails, TxType, VM } from './staking.cjs';
13
14
  import 'zod';
14
15
  import '@avalabs/glacier-sdk';
16
+ import '@avalabs/core-wallets-sdk';
15
17
  import 'ethers';
16
18
  import '@metamask/rpc-errors';
17
- import '@avalabs/core-wallets-sdk';
package/dist/index.d.ts CHANGED
@@ -1,10 +1,11 @@
1
1
  export { Caip2ChainId, Environment, Hex, Network, NetworkVMType, Storage } from './common.js';
2
2
  export { RawSimplePriceResponse, RawSimplePriceResponseSchema, SimplePriceResponse, SimplePriceResponseSchema } from './coingecko.js';
3
3
  export { GetBalancesParams, GetBalancesResponse, NetworkTokenWithBalance, NftTokenWithBalance, TokenAttribute, TokenBalanceData, TokenMarketData, TokenWithBalance, TokenWithBalanceAVM, TokenWithBalanceBTC, TokenWithBalanceERC20, TokenWithBalanceEVM, TokenWithBalancePVM } from './balance.js';
4
+ export { Error } from './error.js';
4
5
  export { Manifest, parseManifest } from './manifest.js';
5
6
  export { Module } from './module.js';
6
7
  export { NetworkFees } from './network-fee.js';
7
- export { Alert, AlertDetails, AlertType, ApprovalController, ApprovalParams, ApprovalResponse, DappInfo, DisplayData, MessageTypeProperty, MessageTypes, RpcError, RpcMethod, RpcRequest, RpcResponse, SigningData, SigningResult, TransactionDetails, TypedData, TypedDataV1 } from './rpc.js';
8
+ export { Alert, AlertDetails, AlertType, ApprovalController, ApprovalParams, ApprovalResponse, BitcoinTransactionData, DappInfo, DisplayData, MessageTypeProperty, MessageTypes, RpcError, RpcMethod, RpcRequest, RpcResponse, SigningData, SigningResult, TransactionDetails, TypedData, TypedDataV1 } from './rpc.js';
8
9
  export { ERC1155Token, ERC20Token, ERC721Token, NONERCToken, NetworkContractToken, NetworkToken, TokenType } from './token.js';
9
10
  export { GetTransactionHistory, PChainTransactionType, Transaction, TransactionHistoryResponse, TransactionType, TxToken, XChainTransactionType } from './transaction-history.js';
10
11
  export { BalanceChange, TokenApproval, TokenApprovals, TokenDiff, TokenDiffItem } from './transaction-simulation.js';
@@ -12,6 +13,6 @@ export { BtcWalletPolicyDetails, GetAddressParams, GetAddressResponse, PubKeyTyp
12
13
  export { AddPermissionlessDelegatorTx, AddPermissionlessValidatorTx, AddSubnetValidatorTx, BaseTx, BlockchainDetails, ChainDetails, CreateChainTx, CreateSubnetTx, ExportImportTxDetails, ExportTx, ImportTx, RemoveSubnetValidatorTx, StakingDetails, SubnetDetails, TxDetails, TxType, VM } from './staking.js';
13
14
  import 'zod';
14
15
  import '@avalabs/glacier-sdk';
16
+ import '@avalabs/core-wallets-sdk';
15
17
  import 'ethers';
16
18
  import '@metamask/rpc-errors';
17
- import '@avalabs/core-wallets-sdk';
package/dist/index.js CHANGED
@@ -1,4 +1,5 @@
1
- export { b as AlertType, a as RpcMethod } from './chunk-BNOZJ4QS.js';
1
+ import './chunk-7U2R34EQ.js';
2
+ export { b as AlertType, a as RpcMethod } from './chunk-ZVCTHYAU.js';
2
3
  export { a as TxType } from './chunk-2SJQLDBB.js';
3
4
  export { a as TokenType } from './chunk-7Y6UGMPZ.js';
4
5
  export { b as PChainTransactionType, a as TransactionType, c as XChainTransactionType } from './chunk-7JLXTNPE.js';
@@ -7,8 +8,8 @@ export { a as WalletType } from './chunk-RIBT5FN6.js';
7
8
  import './chunk-BHB5UV3J.js';
8
9
  export { b as RawSimplePriceResponseSchema, a as SimplePriceResponseSchema } from './chunk-WOO6UGSQ.js';
9
10
  export { b as Environment, a as NetworkVMType } from './chunk-4BNYMHOY.js';
11
+ import './chunk-REHORWPH.js';
10
12
  export { a as parseManifest } from './chunk-A4YEBDMG.js';
11
13
  import './chunk-CUVJNZP5.js';
12
- import './chunk-7U2R34EQ.js';
13
14
  //# sourceMappingURL=out.js.map
14
15
  //# sourceMappingURL=index.js.map
package/dist/module.d.cts CHANGED
@@ -1,3 +1,4 @@
1
+ import { JsonRpcBatchInternal, BitcoinProvider, Avalanche } from '@avalabs/core-wallets-sdk';
1
2
  import { GetAddressParams, GetAddressResponse } from './account.cjs';
2
3
  import { GetBalancesParams, GetBalancesResponse } from './balance.cjs';
3
4
  import { Network } from './common.cjs';
@@ -6,15 +7,16 @@ import { NetworkFees } from './network-fee.cjs';
6
7
  import { RpcRequest, RpcResponse } from './rpc.cjs';
7
8
  import { NetworkContractToken } from './token.cjs';
8
9
  import { GetTransactionHistory, TransactionHistoryResponse } from './transaction-history.cjs';
10
+ import './error.cjs';
9
11
  import '@avalabs/glacier-sdk';
10
12
  import 'zod';
11
13
  import 'ethers';
12
14
  import '@metamask/rpc-errors';
13
15
  import './transaction-simulation.cjs';
14
- import '@avalabs/core-wallets-sdk';
15
16
  import './staking.cjs';
16
17
 
17
18
  interface Module {
19
+ getProvider: (network: Network) => JsonRpcBatchInternal | BitcoinProvider | Avalanche.JsonRpcProvider;
18
20
  getManifest: () => Manifest | undefined;
19
21
  getBalances: (params: GetBalancesParams) => Promise<GetBalancesResponse>;
20
22
  getTransactionHistory: (params: GetTransactionHistory) => Promise<TransactionHistoryResponse>;
package/dist/module.d.ts CHANGED
@@ -1,3 +1,4 @@
1
+ import { JsonRpcBatchInternal, BitcoinProvider, Avalanche } from '@avalabs/core-wallets-sdk';
1
2
  import { GetAddressParams, GetAddressResponse } from './account.js';
2
3
  import { GetBalancesParams, GetBalancesResponse } from './balance.js';
3
4
  import { Network } from './common.js';
@@ -6,15 +7,16 @@ import { NetworkFees } from './network-fee.js';
6
7
  import { RpcRequest, RpcResponse } from './rpc.js';
7
8
  import { NetworkContractToken } from './token.js';
8
9
  import { GetTransactionHistory, TransactionHistoryResponse } from './transaction-history.js';
10
+ import './error.js';
9
11
  import '@avalabs/glacier-sdk';
10
12
  import 'zod';
11
13
  import 'ethers';
12
14
  import '@metamask/rpc-errors';
13
15
  import './transaction-simulation.js';
14
- import '@avalabs/core-wallets-sdk';
15
16
  import './staking.js';
16
17
 
17
18
  interface Module {
19
+ getProvider: (network: Network) => JsonRpcBatchInternal | BitcoinProvider | Avalanche.JsonRpcProvider;
18
20
  getManifest: () => Manifest | undefined;
19
21
  getBalances: (params: GetBalancesParams) => Promise<GetBalancesResponse>;
20
22
  getTransactionHistory: (params: GetTransactionHistory) => Promise<TransactionHistoryResponse>;
package/dist/rpc.cjs CHANGED
@@ -1,16 +1,16 @@
1
1
  'use strict';
2
2
 
3
- var chunkHSGN5OZW_cjs = require('./chunk-HSGN5OZW.cjs');
3
+ var chunk7Z4WA2P6_cjs = require('./chunk-7Z4WA2P6.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, 'AlertType', {
8
8
  enumerable: true,
9
- get: function () { return chunkHSGN5OZW_cjs.b; }
9
+ get: function () { return chunk7Z4WA2P6_cjs.b; }
10
10
  });
11
11
  Object.defineProperty(exports, 'RpcMethod', {
12
12
  enumerable: true,
13
- get: function () { return chunkHSGN5OZW_cjs.a; }
13
+ get: function () { return chunk7Z4WA2P6_cjs.a; }
14
14
  });
15
15
  //# sourceMappingURL=out.js.map
16
16
  //# sourceMappingURL=rpc.cjs.map
package/dist/rpc.d.cts CHANGED
@@ -1,10 +1,13 @@
1
1
  import { TransactionRequest } from 'ethers';
2
+ import { BitcoinInputUTXO, BitcoinOutputUTXO, Avalanche } from '@avalabs/core-wallets-sdk';
2
3
  import { Caip2ChainId, Hex } from './common.cjs';
3
4
  import { JsonRpcError, OptionalDataWithOptionalCause, EthereumProviderError } from '@metamask/rpc-errors';
4
5
  import { BalanceChange, TokenApprovals } from './transaction-simulation.cjs';
5
- import { Avalanche } from '@avalabs/core-wallets-sdk';
6
6
  import { ExportImportTxDetails, StakingDetails, ChainDetails, BlockchainDetails, SubnetDetails } from './staking.cjs';
7
+ import { TokenWithBalanceBTC } from './balance.cjs';
7
8
  import './token.cjs';
9
+ import './error.cjs';
10
+ import '@avalabs/glacier-sdk';
8
11
 
9
12
  declare enum RpcMethod {
10
13
  BITCOIN_SEND_TRANSACTION = "bitcoin_sendTransaction",
@@ -108,7 +111,21 @@ type Alert = {
108
111
  type: AlertType;
109
112
  details: AlertDetails;
110
113
  };
114
+ type BitcoinTransactionData = {
115
+ to: string;
116
+ amount: number;
117
+ feeRate: number;
118
+ fee: number;
119
+ gasLimit: number;
120
+ balance: TokenWithBalanceBTC;
121
+ inputs: BitcoinInputUTXO[];
122
+ outputs: BitcoinOutputUTXO[];
123
+ };
111
124
  type SigningData = {
125
+ type: RpcMethod.BITCOIN_SEND_TRANSACTION;
126
+ account: string;
127
+ data: BitcoinTransactionData;
128
+ } | {
112
129
  type: RpcMethod.ETH_SEND_TRANSACTION;
113
130
  account: string;
114
131
  data: TransactionRequest;
@@ -172,4 +189,4 @@ interface ApprovalController {
172
189
  onTransactionReverted: (txHash: Hex) => void;
173
190
  }
174
191
 
175
- export { Alert, AlertDetails, AlertType, ApprovalController, ApprovalParams, ApprovalResponse, DappInfo, DisplayData, MessageTypeProperty, MessageTypes, RpcError, RpcMethod, RpcRequest, RpcResponse, SigningData, SigningResult, TransactionDetails, TypedData, TypedDataV1 };
192
+ export { Alert, AlertDetails, AlertType, ApprovalController, ApprovalParams, ApprovalResponse, BitcoinTransactionData, DappInfo, DisplayData, MessageTypeProperty, MessageTypes, RpcError, RpcMethod, RpcRequest, RpcResponse, SigningData, SigningResult, TransactionDetails, TypedData, TypedDataV1 };
package/dist/rpc.d.ts CHANGED
@@ -1,10 +1,13 @@
1
1
  import { TransactionRequest } from 'ethers';
2
+ import { BitcoinInputUTXO, BitcoinOutputUTXO, Avalanche } from '@avalabs/core-wallets-sdk';
2
3
  import { Caip2ChainId, Hex } from './common.js';
3
4
  import { JsonRpcError, OptionalDataWithOptionalCause, EthereumProviderError } from '@metamask/rpc-errors';
4
5
  import { BalanceChange, TokenApprovals } from './transaction-simulation.js';
5
- import { Avalanche } from '@avalabs/core-wallets-sdk';
6
6
  import { ExportImportTxDetails, StakingDetails, ChainDetails, BlockchainDetails, SubnetDetails } from './staking.js';
7
+ import { TokenWithBalanceBTC } from './balance.js';
7
8
  import './token.js';
9
+ import './error.js';
10
+ import '@avalabs/glacier-sdk';
8
11
 
9
12
  declare enum RpcMethod {
10
13
  BITCOIN_SEND_TRANSACTION = "bitcoin_sendTransaction",
@@ -108,7 +111,21 @@ type Alert = {
108
111
  type: AlertType;
109
112
  details: AlertDetails;
110
113
  };
114
+ type BitcoinTransactionData = {
115
+ to: string;
116
+ amount: number;
117
+ feeRate: number;
118
+ fee: number;
119
+ gasLimit: number;
120
+ balance: TokenWithBalanceBTC;
121
+ inputs: BitcoinInputUTXO[];
122
+ outputs: BitcoinOutputUTXO[];
123
+ };
111
124
  type SigningData = {
125
+ type: RpcMethod.BITCOIN_SEND_TRANSACTION;
126
+ account: string;
127
+ data: BitcoinTransactionData;
128
+ } | {
112
129
  type: RpcMethod.ETH_SEND_TRANSACTION;
113
130
  account: string;
114
131
  data: TransactionRequest;
@@ -172,4 +189,4 @@ interface ApprovalController {
172
189
  onTransactionReverted: (txHash: Hex) => void;
173
190
  }
174
191
 
175
- export { Alert, AlertDetails, AlertType, ApprovalController, ApprovalParams, ApprovalResponse, DappInfo, DisplayData, MessageTypeProperty, MessageTypes, RpcError, RpcMethod, RpcRequest, RpcResponse, SigningData, SigningResult, TransactionDetails, TypedData, TypedDataV1 };
192
+ export { Alert, AlertDetails, AlertType, ApprovalController, ApprovalParams, ApprovalResponse, BitcoinTransactionData, DappInfo, DisplayData, MessageTypeProperty, MessageTypes, RpcError, RpcMethod, RpcRequest, RpcResponse, SigningData, SigningResult, TransactionDetails, TypedData, TypedDataV1 };
package/dist/rpc.js CHANGED
@@ -1,3 +1,3 @@
1
- export { b as AlertType, a as RpcMethod } from './chunk-BNOZJ4QS.js';
1
+ export { b as AlertType, a as RpcMethod } from './chunk-ZVCTHYAU.js';
2
2
  //# sourceMappingURL=out.js.map
3
3
  //# sourceMappingURL=rpc.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@avalabs/vm-module-types",
3
- "version": "0.1.9",
3
+ "version": "0.1.11",
4
4
  "main": "dist/index.cjs",
5
5
  "module": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/rpc.ts"],"names":["RpcMethod","AlertType"],"mappings":"AAOO,IAAKA,OAEVA,EAAA,yBAA2B,0BAG3BA,EAAA,qBAAuB,sBACvBA,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,4BAhBnBA,OAAA,IAoGAC,OACVA,EAAA,QAAU,UACVA,EAAA,OAAS,SACTA,EAAA,KAAO,OAHGA,OAAA","sourcesContent":["import type { TransactionRequest } from 'ethers';\nimport type { Caip2ChainId, Hex } from './common';\nimport type { JsonRpcError, EthereumProviderError, OptionalDataWithOptionalCause } from '@metamask/rpc-errors';\nimport type { BalanceChange, TokenApprovals } from './transaction-simulation';\nimport type { Avalanche } from '@avalabs/core-wallets-sdk';\nimport type { BlockchainDetails, ChainDetails, ExportImportTxDetails, StakingDetails, SubnetDetails } from './staking';\n\nexport enum RpcMethod {\n /* BTC */\n BITCOIN_SEND_TRANSACTION = 'bitcoin_sendTransaction',\n\n /* EVM */\n ETH_SEND_TRANSACTION = 'eth_sendTransaction',\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\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 TransactionDetails = {\n website: string;\n from: string;\n to: string;\n data?: string;\n type?: string;\n};\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 messageDetails?: string;\n transactionDetails?: TransactionDetails | ExportImportTxDetails;\n stakingDetails?: StakingDetails;\n chainDetails?: ChainDetails;\n blockchainDetails?: BlockchainDetails;\n subnetDetails?: SubnetDetails;\n networkFeeSelector?: boolean;\n disclaimer?: string;\n alert?: Alert;\n balanceChange?: BalanceChange;\n tokenApprovals?: TokenApprovals;\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 actionTitles?: {\n proceed: string;\n reject: string;\n };\n};\n\nexport type Alert = {\n type: AlertType;\n details: AlertDetails;\n};\n\nexport type SigningData =\n | {\n type: RpcMethod.ETH_SEND_TRANSACTION;\n account: string;\n data: TransactionRequest;\n }\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 }\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\nexport type ApprovalParams = {\n request: RpcRequest;\n displayData: DisplayData;\n signingData: SigningData;\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 */\nexport type SigningResult = { signedData: string } | { txHash: string };\n\nexport type ApprovalResponse =\n | {\n error: RpcError;\n }\n | SigningResult;\n\nexport interface ApprovalController {\n requestApproval: (params: ApprovalParams) => Promise<ApprovalResponse>;\n onTransactionConfirmed: (txHash: Hex) => void;\n onTransactionReverted: (txHash: Hex) => void;\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/rpc.ts"],"names":["RpcMethod","AlertType"],"mappings":"AAOO,IAAKA,OAEVA,EAAA,yBAA2B,0BAG3BA,EAAA,qBAAuB,sBACvBA,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,4BAhBnBA,OAAA,IAoGAC,OACVA,EAAA,QAAU,UACVA,EAAA,OAAS,SACTA,EAAA,KAAO,OAHGA,OAAA","sourcesContent":["import type { TransactionRequest } from 'ethers';\nimport type { Caip2ChainId, Hex } from './common';\nimport type { JsonRpcError, EthereumProviderError, OptionalDataWithOptionalCause } from '@metamask/rpc-errors';\nimport type { BalanceChange, TokenApprovals } from './transaction-simulation';\nimport type { Avalanche } from '@avalabs/core-wallets-sdk';\nimport type { BlockchainDetails, ChainDetails, ExportImportTxDetails, StakingDetails, SubnetDetails } from './staking';\n\nexport enum RpcMethod {\n /* BTC */\n BITCOIN_SEND_TRANSACTION = 'bitcoin_sendTransaction',\n\n /* EVM */\n ETH_SEND_TRANSACTION = 'eth_sendTransaction',\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\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 TransactionDetails = {\n website: string;\n from: string;\n to: string;\n data?: string;\n type?: string;\n};\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 messageDetails?: string;\n transactionDetails?: TransactionDetails | ExportImportTxDetails;\n stakingDetails?: StakingDetails;\n chainDetails?: ChainDetails;\n blockchainDetails?: BlockchainDetails;\n subnetDetails?: SubnetDetails;\n networkFeeSelector?: boolean;\n disclaimer?: string;\n alert?: Alert;\n balanceChange?: BalanceChange;\n tokenApprovals?: TokenApprovals;\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 actionTitles?: {\n proceed: string;\n reject: string;\n };\n};\n\nexport type Alert = {\n type: AlertType;\n details: AlertDetails;\n};\n\nexport type SigningData =\n | {\n type: RpcMethod.ETH_SEND_TRANSACTION;\n account: string;\n data: TransactionRequest;\n }\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 }\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\nexport type ApprovalParams = {\n request: RpcRequest;\n displayData: DisplayData;\n signingData: SigningData;\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 */\nexport type SigningResult = { signedData: string } | { txHash: string };\n\nexport type ApprovalResponse =\n | {\n error: RpcError;\n }\n | SigningResult;\n\nexport interface ApprovalController {\n requestApproval: (params: ApprovalParams) => Promise<ApprovalResponse>;\n onTransactionConfirmed: (txHash: Hex) => void;\n onTransactionReverted: (txHash: Hex) => void;\n}\n"]}