@avalabs/vm-module-types 0.11.14 → 0.12.1

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 (39) hide show
  1. package/dist/{chunk-4OOCVJIU.js → chunk-5R4OCUZW.js} +2 -2
  2. package/dist/chunk-5R4OCUZW.js.map +1 -0
  3. package/dist/{chunk-4ZJ3LCH6.js → chunk-GHQG4UY4.js} +1 -1
  4. package/dist/{chunk-JQSZ7QKK.cjs.map → chunk-GHQG4UY4.js.map} +1 -1
  5. package/dist/chunk-IMMJESZ3.cjs +9 -0
  6. package/dist/chunk-IMMJESZ3.cjs.map +1 -0
  7. package/dist/{chunk-JQSZ7QKK.cjs → chunk-JUQZNXAX.cjs} +1 -1
  8. package/dist/{chunk-4ZJ3LCH6.js.map → chunk-JUQZNXAX.cjs.map} +1 -1
  9. package/dist/{chunk-6I6K3HIC.cjs → chunk-RXEAQKSD.cjs} +2 -2
  10. package/dist/chunk-RXEAQKSD.cjs.map +1 -0
  11. package/dist/chunk-UN6P2KX4.js +5 -0
  12. package/dist/chunk-UN6P2KX4.js.map +1 -0
  13. package/dist/common.cjs +4 -4
  14. package/dist/common.d.cts +3 -1
  15. package/dist/common.d.ts +3 -1
  16. package/dist/common.js +1 -1
  17. package/dist/index.cjs +10 -10
  18. package/dist/index.d.cts +1 -0
  19. package/dist/index.d.ts +1 -0
  20. package/dist/index.js +3 -3
  21. package/dist/module.cjs +1 -1
  22. package/dist/module.d.cts +2 -1
  23. package/dist/module.d.ts +2 -1
  24. package/dist/module.js +1 -1
  25. package/dist/provider.cjs +2 -2
  26. package/dist/provider.d.cts +3 -3
  27. package/dist/provider.d.ts +3 -3
  28. package/dist/provider.js +1 -1
  29. package/dist/rpc.cjs +4 -4
  30. package/dist/rpc.d.cts +9 -1
  31. package/dist/rpc.d.ts +9 -1
  32. package/dist/rpc.js +1 -1
  33. package/package.json +5 -4
  34. package/dist/chunk-4OOCVJIU.js.map +0 -1
  35. package/dist/chunk-6I6K3HIC.cjs.map +0 -1
  36. package/dist/chunk-BG646JBC.cjs +0 -9
  37. package/dist/chunk-BG646JBC.cjs.map +0 -1
  38. package/dist/chunk-KKHXAIML.js +0 -5
  39. package/dist/chunk-KKHXAIML.js.map +0 -1
@@ -1,5 +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.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))(n||{}),i=(e=>(e.TEXT="text",e.ADDRESS="address",e.NODE_ID="nodeID",e.CURRENCY="currency",e.FUNDS_RECIPIENT="fundsRecipient",e.DATA="data",e.DATE="date",e.LINK="link",e))(i||{}),r=(a=>(a.WARNING="Warning",a.DANGER="Danger",a.INFO="Info",a))(r||{});
1
+ var n=(t=>(t.BITCOIN_SEND_TRANSACTION="bitcoin_sendTransaction",t.BITCOIN_SIGN_TRANSACTION="bitcoin_signTransaction",t.ETH_SEND_TRANSACTION="eth_sendTransaction",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))(n||{}),i=(e=>(e.TEXT="text",e.ADDRESS="address",e.NODE_ID="nodeID",e.CURRENCY="currency",e.FUNDS_RECIPIENT="fundsRecipient",e.DATA="data",e.DATE="date",e.LINK="link",e))(i||{}),r=(a=>(a.WARNING="Warning",a.DANGER="Danger",a.INFO="Info",a))(r||{});
2
2
 
3
3
  export { n as a, i as b, r as c };
4
4
  //# sourceMappingURL=out.js.map
5
- //# sourceMappingURL=chunk-4OOCVJIU.js.map
5
+ //# sourceMappingURL=chunk-5R4OCUZW.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,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,sBApBbA,OAAA,IA+EAC,OACVA,EAAA,KAAO,OACPA,EAAA,QAAU,UACVA,EAAA,QAAU,SACVA,EAAA,SAAW,WACXA,EAAA,gBAAkB,iBAClBA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,KAAO,OARGA,OAAA,IA8FAC,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 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\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 NODE_ID = 'nodeID',\n CURRENCY = 'currency',\n FUNDS_RECIPIENT = 'fundsRecipient',\n DATA = 'data',\n DATE = 'date',\n LINK = 'link',\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 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 DetailItem =\n | string\n | TextItem\n | AddressItem\n | NodeIDItem\n | CurrencyItem\n | DataItem\n | DateItem\n | LinkItem\n | FundsRecipientItem;\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 disclaimer?: string;\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 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.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 | {\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 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 EvmTxUpdateFn = (data: {\n maxFeeRate?: bigint;\n maxTipRate?: bigint;\n approvalLimit?: Hex; // as hexadecimal, 0x-prefixed\n}) => { displayData: DisplayData; signingData: Extract<SigningData, { type: RpcMethod.ETH_SEND_TRANSACTION }> };\n\nexport type BtcTxUpdateFn = (data: { feeRate?: number }) => {\n displayData: DisplayData;\n signingData: Extract<SigningData, { type: RpcMethod.BITCOIN_SEND_TRANSACTION }>;\n};\n\nexport type ApprovalParams = {\n request: RpcRequest;\n displayData: DisplayData;\n signingData: SigningData;\n updateTx?: EvmTxUpdateFn | BtcTxUpdateFn;\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, requestId: string) => void;\n onTransactionReverted: (txHash: Hex, requestId: string) => void;\n}\n"]}
@@ -2,4 +2,4 @@ var t=(e=>(e.CORE_WALLET_ANNOUNCE_PROVIDER="core-wallet:announceProvider",e.CORE
2
2
 
3
3
  export { t as a };
4
4
  //# sourceMappingURL=out.js.map
5
- //# sourceMappingURL=chunk-4ZJ3LCH6.js.map
5
+ //# sourceMappingURL=chunk-GHQG4UY4.js.map
@@ -1 +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({\n data,\n sessionId,\n chainId,\n }: {\n data: PartialBy<JsonRpcRequestPayload<string>, 'id' | 'params'>;\n sessionId: string;\n chainId: string | null;\n }): Promise<unknown>;\n\n subscribeToMessage(callback: ({ method, params }: { method: string; params: unknown }) => void): void;\n}\n"]}
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({\n data,\n sessionId,\n scope,\n }: {\n data: PartialBy<JsonRpcRequestPayload<string>, 'id' | 'params'>;\n sessionId?: string;\n scope?: string | null;\n }): Promise<unknown>;\n\n subscribeToMessage(callback: ({ method, params }: { method: string; params: unknown }) => void): void;\n}\n"]}
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ var t=(r=>(r.EVM="EVM",r.BITCOIN="BITCOIN",r.AVM="AVM",r.PVM="PVM",r.CoreEth="CoreEth",r.HVM="HVM",r))(t||{}),o=(e=>(e.PRODUCTION="production",e.DEV="dev",e))(o||{}),i=(r=>(r.CORE_MOBILE_IOS="core-mobile-ios",r.CORE_MOBILE_ANDROID="core-mobile-android",r.CORE_WEB="core-web",r.CORE_EXTENSION="core-extension",r.EXPLORER="explorer",r.OTHER="other",r))(i||{});
4
+
5
+ exports.a = t;
6
+ exports.b = o;
7
+ exports.c = i;
8
+ //# sourceMappingURL=out.js.map
9
+ //# sourceMappingURL=chunk-IMMJESZ3.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common.ts"],"names":["NetworkVMType","Environment","AppName"],"mappings":"AAuBO,IAAKA,OACVA,EAAA,IAAM,MACNA,EAAA,QAAU,UACVA,EAAA,IAAM,MACNA,EAAA,IAAM,MACNA,EAAA,QAAU,UACVA,EAAA,IAAM,MANIA,OAAA,IAkBAC,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 { NetworkToken } from './token';\n\nexport type Network = {\n isTestnet?: boolean;\n chainId: number;\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 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}\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"]}
@@ -4,4 +4,4 @@ var t=(e=>(e.CORE_WALLET_ANNOUNCE_PROVIDER="core-wallet:announceProvider",e.CORE
4
4
 
5
5
  exports.a = t;
6
6
  //# sourceMappingURL=out.js.map
7
- //# sourceMappingURL=chunk-JQSZ7QKK.cjs.map
7
+ //# sourceMappingURL=chunk-JUQZNXAX.cjs.map
@@ -1 +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({\n data,\n sessionId,\n chainId,\n }: {\n data: PartialBy<JsonRpcRequestPayload<string>, 'id' | 'params'>;\n sessionId: string;\n chainId: string | null;\n }): Promise<unknown>;\n\n subscribeToMessage(callback: ({ method, params }: { method: string; params: unknown }) => void): void;\n}\n"]}
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({\n data,\n sessionId,\n scope,\n }: {\n data: PartialBy<JsonRpcRequestPayload<string>, 'id' | 'params'>;\n sessionId?: string;\n scope?: string | null;\n }): Promise<unknown>;\n\n subscribeToMessage(callback: ({ method, params }: { method: string; params: unknown }) => void): void;\n}\n"]}
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- var n=(t=>(t.BITCOIN_SEND_TRANSACTION="bitcoin_sendTransaction",t.BITCOIN_SIGN_TRANSACTION="bitcoin_signTransaction",t.ETH_SEND_TRANSACTION="eth_sendTransaction",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))(n||{}),i=(e=>(e.TEXT="text",e.ADDRESS="address",e.NODE_ID="nodeID",e.CURRENCY="currency",e.FUNDS_RECIPIENT="fundsRecipient",e.DATA="data",e.DATE="date",e.LINK="link",e))(i||{}),r=(a=>(a.WARNING="Warning",a.DANGER="Danger",a.INFO="Info",a))(r||{});
3
+ var n=(t=>(t.BITCOIN_SEND_TRANSACTION="bitcoin_sendTransaction",t.BITCOIN_SIGN_TRANSACTION="bitcoin_signTransaction",t.ETH_SEND_TRANSACTION="eth_sendTransaction",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))(n||{}),i=(e=>(e.TEXT="text",e.ADDRESS="address",e.NODE_ID="nodeID",e.CURRENCY="currency",e.FUNDS_RECIPIENT="fundsRecipient",e.DATA="data",e.DATE="date",e.LINK="link",e))(i||{}),r=(a=>(a.WARNING="Warning",a.DANGER="Danger",a.INFO="Info",a))(r||{});
4
4
 
5
5
  exports.a = n;
6
6
  exports.b = i;
7
7
  exports.c = r;
8
8
  //# sourceMappingURL=out.js.map
9
- //# sourceMappingURL=chunk-6I6K3HIC.cjs.map
9
+ //# sourceMappingURL=chunk-RXEAQKSD.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,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,sBApBbA,OAAA,IA+EAC,OACVA,EAAA,KAAO,OACPA,EAAA,QAAU,UACVA,EAAA,QAAU,SACVA,EAAA,SAAW,WACXA,EAAA,gBAAkB,iBAClBA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,KAAO,OARGA,OAAA,IA8FAC,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 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\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 NODE_ID = 'nodeID',\n CURRENCY = 'currency',\n FUNDS_RECIPIENT = 'fundsRecipient',\n DATA = 'data',\n DATE = 'date',\n LINK = 'link',\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 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 DetailItem =\n | string\n | TextItem\n | AddressItem\n | NodeIDItem\n | CurrencyItem\n | DataItem\n | DateItem\n | LinkItem\n | FundsRecipientItem;\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 disclaimer?: string;\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 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.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 | {\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 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 EvmTxUpdateFn = (data: {\n maxFeeRate?: bigint;\n maxTipRate?: bigint;\n approvalLimit?: Hex; // as hexadecimal, 0x-prefixed\n}) => { displayData: DisplayData; signingData: Extract<SigningData, { type: RpcMethod.ETH_SEND_TRANSACTION }> };\n\nexport type BtcTxUpdateFn = (data: { feeRate?: number }) => {\n displayData: DisplayData;\n signingData: Extract<SigningData, { type: RpcMethod.BITCOIN_SEND_TRANSACTION }>;\n};\n\nexport type ApprovalParams = {\n request: RpcRequest;\n displayData: DisplayData;\n signingData: SigningData;\n updateTx?: EvmTxUpdateFn | BtcTxUpdateFn;\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, requestId: string) => void;\n onTransactionReverted: (txHash: Hex, requestId: string) => void;\n}\n"]}
@@ -0,0 +1,5 @@
1
+ var t=(r=>(r.EVM="EVM",r.BITCOIN="BITCOIN",r.AVM="AVM",r.PVM="PVM",r.CoreEth="CoreEth",r.HVM="HVM",r))(t||{}),o=(e=>(e.PRODUCTION="production",e.DEV="dev",e))(o||{}),i=(r=>(r.CORE_MOBILE_IOS="core-mobile-ios",r.CORE_MOBILE_ANDROID="core-mobile-android",r.CORE_WEB="core-web",r.CORE_EXTENSION="core-extension",r.EXPLORER="explorer",r.OTHER="other",r))(i||{});
2
+
3
+ export { t as a, o as b, i as c };
4
+ //# sourceMappingURL=out.js.map
5
+ //# sourceMappingURL=chunk-UN6P2KX4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/common.ts"],"names":["NetworkVMType","Environment","AppName"],"mappings":"AAuBO,IAAKA,OACVA,EAAA,IAAM,MACNA,EAAA,QAAU,UACVA,EAAA,IAAM,MACNA,EAAA,IAAM,MACNA,EAAA,QAAU,UACVA,EAAA,IAAM,MANIA,OAAA,IAkBAC,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 { NetworkToken } from './token';\n\nexport type Network = {\n isTestnet?: boolean;\n chainId: number;\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 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}\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"]}
package/dist/common.cjs CHANGED
@@ -1,20 +1,20 @@
1
1
  'use strict';
2
2
 
3
- var chunkBG646JBC_cjs = require('./chunk-BG646JBC.cjs');
3
+ var chunkIMMJESZ3_cjs = require('./chunk-IMMJESZ3.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, 'AppName', {
8
8
  enumerable: true,
9
- get: function () { return chunkBG646JBC_cjs.c; }
9
+ get: function () { return chunkIMMJESZ3_cjs.c; }
10
10
  });
11
11
  Object.defineProperty(exports, 'Environment', {
12
12
  enumerable: true,
13
- get: function () { return chunkBG646JBC_cjs.b; }
13
+ get: function () { return chunkIMMJESZ3_cjs.b; }
14
14
  });
15
15
  Object.defineProperty(exports, 'NetworkVMType', {
16
16
  enumerable: true,
17
- get: function () { return chunkBG646JBC_cjs.a; }
17
+ get: function () { return chunkIMMJESZ3_cjs.a; }
18
18
  });
19
19
  //# sourceMappingURL=out.js.map
20
20
  //# sourceMappingURL=common.cjs.map
package/dist/common.d.cts CHANGED
@@ -18,13 +18,15 @@ type Network = {
18
18
  explorerUrl?: string;
19
19
  logoUri?: string;
20
20
  vmName: NetworkVMType;
21
+ vmRpcPrefix?: string;
21
22
  };
22
23
  declare enum NetworkVMType {
23
24
  EVM = "EVM",
24
25
  BITCOIN = "BITCOIN",
25
26
  AVM = "AVM",
26
27
  PVM = "PVM",
27
- CoreEth = "CoreEth"
28
+ CoreEth = "CoreEth",
29
+ HVM = "HVM"
28
30
  }
29
31
  type Storage = {
30
32
  get: <T>(id: string) => T | undefined;
package/dist/common.d.ts CHANGED
@@ -18,13 +18,15 @@ type Network = {
18
18
  explorerUrl?: string;
19
19
  logoUri?: string;
20
20
  vmName: NetworkVMType;
21
+ vmRpcPrefix?: string;
21
22
  };
22
23
  declare enum NetworkVMType {
23
24
  EVM = "EVM",
24
25
  BITCOIN = "BITCOIN",
25
26
  AVM = "AVM",
26
27
  PVM = "PVM",
27
- CoreEth = "CoreEth"
28
+ CoreEth = "CoreEth",
29
+ HVM = "HVM"
28
30
  }
29
31
  type Storage = {
30
32
  get: <T>(id: string) => T | undefined;
package/dist/common.js CHANGED
@@ -1,3 +1,3 @@
1
- export { c as AppName, b as Environment, a as NetworkVMType } from './chunk-KKHXAIML.js';
1
+ export { c as AppName, b as Environment, a as NetworkVMType } from './chunk-UN6P2KX4.js';
2
2
  //# sourceMappingURL=out.js.map
3
3
  //# sourceMappingURL=common.js.map
package/dist/index.cjs CHANGED
@@ -1,8 +1,8 @@
1
1
  'use strict';
2
2
 
3
3
  require('./chunk-AILYKQEY.cjs');
4
- var chunkJQSZ7QKK_cjs = require('./chunk-JQSZ7QKK.cjs');
5
- var chunk6I6K3HIC_cjs = require('./chunk-6I6K3HIC.cjs');
4
+ var chunkJUQZNXAX_cjs = require('./chunk-JUQZNXAX.cjs');
5
+ var chunkRXEAQKSD_cjs = require('./chunk-RXEAQKSD.cjs');
6
6
  var chunkPX3B6TJZ_cjs = require('./chunk-PX3B6TJZ.cjs');
7
7
  var chunk2KGTZTXY_cjs = require('./chunk-2KGTZTXY.cjs');
8
8
  var chunkB6DAZDIA_cjs = require('./chunk-B6DAZDIA.cjs');
@@ -13,25 +13,25 @@ var chunk4PGCXP4C_cjs = require('./chunk-4PGCXP4C.cjs');
13
13
  require('./chunk-SYVNOFCV.cjs');
14
14
  var chunk74SNNWSF_cjs = require('./chunk-74SNNWSF.cjs');
15
15
  require('./chunk-YB5EN6FL.cjs');
16
- var chunkBG646JBC_cjs = require('./chunk-BG646JBC.cjs');
16
+ var chunkIMMJESZ3_cjs = require('./chunk-IMMJESZ3.cjs');
17
17
 
18
18
 
19
19
 
20
20
  Object.defineProperty(exports, 'EventNames', {
21
21
  enumerable: true,
22
- get: function () { return chunkJQSZ7QKK_cjs.a; }
22
+ get: function () { return chunkJUQZNXAX_cjs.a; }
23
23
  });
24
24
  Object.defineProperty(exports, 'AlertType', {
25
25
  enumerable: true,
26
- get: function () { return chunk6I6K3HIC_cjs.c; }
26
+ get: function () { return chunkRXEAQKSD_cjs.c; }
27
27
  });
28
28
  Object.defineProperty(exports, 'DetailItemType', {
29
29
  enumerable: true,
30
- get: function () { return chunk6I6K3HIC_cjs.b; }
30
+ get: function () { return chunkRXEAQKSD_cjs.b; }
31
31
  });
32
32
  Object.defineProperty(exports, 'RpcMethod', {
33
33
  enumerable: true,
34
- get: function () { return chunk6I6K3HIC_cjs.a; }
34
+ get: function () { return chunkRXEAQKSD_cjs.a; }
35
35
  });
36
36
  Object.defineProperty(exports, 'TxType', {
37
37
  enumerable: true,
@@ -71,15 +71,15 @@ Object.defineProperty(exports, 'parseManifest', {
71
71
  });
72
72
  Object.defineProperty(exports, 'AppName', {
73
73
  enumerable: true,
74
- get: function () { return chunkBG646JBC_cjs.c; }
74
+ get: function () { return chunkIMMJESZ3_cjs.c; }
75
75
  });
76
76
  Object.defineProperty(exports, 'Environment', {
77
77
  enumerable: true,
78
- get: function () { return chunkBG646JBC_cjs.b; }
78
+ get: function () { return chunkIMMJESZ3_cjs.b; }
79
79
  });
80
80
  Object.defineProperty(exports, 'NetworkVMType', {
81
81
  enumerable: true,
82
- get: function () { return chunkBG646JBC_cjs.a; }
82
+ get: function () { return chunkIMMJESZ3_cjs.a; }
83
83
  });
84
84
  //# sourceMappingURL=out.js.map
85
85
  //# sourceMappingURL=index.cjs.map
package/dist/index.d.cts CHANGED
@@ -15,6 +15,7 @@ export { AccountsChangedEventData, ChainAgnosticProvider, ChainChangedEventData,
15
15
  import 'zod';
16
16
  import '@avalabs/glacier-sdk';
17
17
  import '@avalabs/core-wallets-sdk';
18
+ import 'hypersdk-client';
18
19
  import 'ethers';
19
20
  import '@metamask/rpc-errors';
20
21
  import 'events';
package/dist/index.d.ts CHANGED
@@ -15,6 +15,7 @@ export { AccountsChangedEventData, ChainAgnosticProvider, ChainChangedEventData,
15
15
  import 'zod';
16
16
  import '@avalabs/glacier-sdk';
17
17
  import '@avalabs/core-wallets-sdk';
18
+ import 'hypersdk-client';
18
19
  import 'ethers';
19
20
  import '@metamask/rpc-errors';
20
21
  import 'events';
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import './chunk-7U2R34EQ.js';
2
- export { a as EventNames } from './chunk-4ZJ3LCH6.js';
3
- export { c as AlertType, b as DetailItemType, a as RpcMethod } from './chunk-4OOCVJIU.js';
2
+ export { a as EventNames } from './chunk-GHQG4UY4.js';
3
+ export { c as AlertType, b as DetailItemType, a as RpcMethod } from './chunk-5R4OCUZW.js';
4
4
  export { a as TxType } from './chunk-FGMDBV23.js';
5
5
  export { a as TokenType } from './chunk-7Y6UGMPZ.js';
6
6
  export { b as PChainTransactionType, a as TransactionType, c as XChainTransactionType } from './chunk-7JLXTNPE.js';
@@ -11,6 +11,6 @@ export { b as RawSimplePriceResponseSchema, a as SimplePriceResponseSchema } fro
11
11
  import './chunk-REHORWPH.js';
12
12
  export { a as parseManifest } from './chunk-A4YEBDMG.js';
13
13
  import './chunk-GF7C4PA6.js';
14
- export { c as AppName, b as Environment, a as NetworkVMType } from './chunk-KKHXAIML.js';
14
+ export { c as AppName, b as Environment, a as NetworkVMType } from './chunk-UN6P2KX4.js';
15
15
  //# sourceMappingURL=out.js.map
16
16
  //# sourceMappingURL=index.js.map
package/dist/module.cjs CHANGED
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  require('./chunk-YB5EN6FL.cjs');
4
- require('./chunk-BG646JBC.cjs');
4
+ require('./chunk-IMMJESZ3.cjs');
5
5
 
6
6
  //# sourceMappingURL=out.js.map
7
7
  //# sourceMappingURL=module.cjs.map
package/dist/module.d.cts CHANGED
@@ -7,6 +7,7 @@ import { NetworkFees } from './network-fee.cjs';
7
7
  import { ApprovalController, RpcRequest, RpcResponse } from './rpc.cjs';
8
8
  import { NetworkContractToken } from './token.cjs';
9
9
  import { GetTransactionHistory, TransactionHistoryResponse } from './transaction-history.cjs';
10
+ import { HyperSDKClient } from 'hypersdk-client';
10
11
  import './error.cjs';
11
12
  import '@avalabs/glacier-sdk';
12
13
  import 'zod';
@@ -27,7 +28,7 @@ type NetworkFeeParam = Network & {
27
28
  caipId?: string;
28
29
  };
29
30
  interface Module {
30
- getProvider: (network: Network) => Promise<JsonRpcBatchInternal | BitcoinProvider | Avalanche.JsonRpcProvider>;
31
+ getProvider: (network: Network) => Promise<JsonRpcBatchInternal | BitcoinProvider | Avalanche.JsonRpcProvider | HyperSDKClient>;
31
32
  getManifest: () => Manifest | undefined;
32
33
  getBalances: (params: GetBalancesParams) => Promise<GetBalancesResponse>;
33
34
  getTransactionHistory: (params: GetTransactionHistory) => Promise<TransactionHistoryResponse>;
package/dist/module.d.ts CHANGED
@@ -7,6 +7,7 @@ import { NetworkFees } from './network-fee.js';
7
7
  import { ApprovalController, RpcRequest, RpcResponse } from './rpc.js';
8
8
  import { NetworkContractToken } from './token.js';
9
9
  import { GetTransactionHistory, TransactionHistoryResponse } from './transaction-history.js';
10
+ import { HyperSDKClient } from 'hypersdk-client';
10
11
  import './error.js';
11
12
  import '@avalabs/glacier-sdk';
12
13
  import 'zod';
@@ -27,7 +28,7 @@ type NetworkFeeParam = Network & {
27
28
  caipId?: string;
28
29
  };
29
30
  interface Module {
30
- getProvider: (network: Network) => Promise<JsonRpcBatchInternal | BitcoinProvider | Avalanche.JsonRpcProvider>;
31
+ getProvider: (network: Network) => Promise<JsonRpcBatchInternal | BitcoinProvider | Avalanche.JsonRpcProvider | HyperSDKClient>;
31
32
  getManifest: () => Manifest | undefined;
32
33
  getBalances: (params: GetBalancesParams) => Promise<GetBalancesResponse>;
33
34
  getTransactionHistory: (params: GetTransactionHistory) => Promise<TransactionHistoryResponse>;
package/dist/module.js CHANGED
@@ -1,4 +1,4 @@
1
1
  import './chunk-GF7C4PA6.js';
2
- import './chunk-KKHXAIML.js';
2
+ import './chunk-UN6P2KX4.js';
3
3
  //# sourceMappingURL=out.js.map
4
4
  //# sourceMappingURL=module.js.map
package/dist/provider.cjs CHANGED
@@ -1,12 +1,12 @@
1
1
  'use strict';
2
2
 
3
- var chunkJQSZ7QKK_cjs = require('./chunk-JQSZ7QKK.cjs');
3
+ var chunkJUQZNXAX_cjs = require('./chunk-JUQZNXAX.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, 'EventNames', {
8
8
  enumerable: true,
9
- get: function () { return chunkJQSZ7QKK_cjs.a; }
9
+ get: function () { return chunkJUQZNXAX_cjs.a; }
10
10
  });
11
11
  //# sourceMappingURL=out.js.map
12
12
  //# sourceMappingURL=provider.cjs.map
@@ -48,10 +48,10 @@ interface JsonRpcRequestPayloadWithoutParams<Method extends string> extends Json
48
48
  type JsonRpcRequestPayload<Method extends string, Params = unknown> = Params extends undefined ? JsonRpcRequestPayloadWithoutParams<Method> : JsonRpcRequestPayloadWithParams<Method, Params>;
49
49
  type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
50
50
  interface ChainAgnosticProvider extends EventEmitter {
51
- request({ data, sessionId, chainId, }: {
51
+ request({ data, sessionId, scope, }: {
52
52
  data: PartialBy<JsonRpcRequestPayload<string>, 'id' | 'params'>;
53
- sessionId: string;
54
- chainId: string | null;
53
+ sessionId?: string;
54
+ scope?: string | null;
55
55
  }): Promise<unknown>;
56
56
  subscribeToMessage(callback: ({ method, params }: {
57
57
  method: string;
@@ -48,10 +48,10 @@ interface JsonRpcRequestPayloadWithoutParams<Method extends string> extends Json
48
48
  type JsonRpcRequestPayload<Method extends string, Params = unknown> = Params extends undefined ? JsonRpcRequestPayloadWithoutParams<Method> : JsonRpcRequestPayloadWithParams<Method, Params>;
49
49
  type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
50
50
  interface ChainAgnosticProvider extends EventEmitter {
51
- request({ data, sessionId, chainId, }: {
51
+ request({ data, sessionId, scope, }: {
52
52
  data: PartialBy<JsonRpcRequestPayload<string>, 'id' | 'params'>;
53
- sessionId: string;
54
- chainId: string | null;
53
+ sessionId?: string;
54
+ scope?: string | null;
55
55
  }): Promise<unknown>;
56
56
  subscribeToMessage(callback: ({ method, params }: {
57
57
  method: string;
package/dist/provider.js CHANGED
@@ -1,3 +1,3 @@
1
- export { a as EventNames } from './chunk-4ZJ3LCH6.js';
1
+ export { a as EventNames } from './chunk-GHQG4UY4.js';
2
2
  //# sourceMappingURL=out.js.map
3
3
  //# sourceMappingURL=provider.js.map
package/dist/rpc.cjs CHANGED
@@ -1,20 +1,20 @@
1
1
  'use strict';
2
2
 
3
- var chunk6I6K3HIC_cjs = require('./chunk-6I6K3HIC.cjs');
3
+ var chunkRXEAQKSD_cjs = require('./chunk-RXEAQKSD.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, 'AlertType', {
8
8
  enumerable: true,
9
- get: function () { return chunk6I6K3HIC_cjs.c; }
9
+ get: function () { return chunkRXEAQKSD_cjs.c; }
10
10
  });
11
11
  Object.defineProperty(exports, 'DetailItemType', {
12
12
  enumerable: true,
13
- get: function () { return chunk6I6K3HIC_cjs.b; }
13
+ get: function () { return chunkRXEAQKSD_cjs.b; }
14
14
  });
15
15
  Object.defineProperty(exports, 'RpcMethod', {
16
16
  enumerable: true,
17
- get: function () { return chunk6I6K3HIC_cjs.a; }
17
+ get: function () { return chunkRXEAQKSD_cjs.a; }
18
18
  });
19
19
  //# sourceMappingURL=out.js.map
20
20
  //# sourceMappingURL=rpc.cjs.map
package/dist/rpc.d.cts CHANGED
@@ -4,6 +4,7 @@ import { Caip2ChainId, Hex } from './common.cjs';
4
4
  import { JsonRpcError, OptionalDataWithOptionalCause, EthereumProviderError } from '@metamask/rpc-errors';
5
5
  import { BalanceChange, TokenApprovals } from './transaction-simulation.cjs';
6
6
  import { TokenWithBalanceBTC } from './balance.cjs';
7
+ import { VMABI, TransactionPayload } from 'hypersdk-client';
7
8
  import './token.cjs';
8
9
  import './error.cjs';
9
10
  import '@avalabs/glacier-sdk';
@@ -20,7 +21,8 @@ declare enum RpcMethod {
20
21
  ETH_SIGN = "eth_sign",
21
22
  AVALANCHE_SIGN_MESSAGE = "avalanche_signMessage",
22
23
  AVALANCHE_SEND_TRANSACTION = "avalanche_sendTransaction",
23
- AVALANCHE_SIGN_TRANSACTION = "avalanche_signTransaction"
24
+ AVALANCHE_SIGN_TRANSACTION = "avalanche_signTransaction",
25
+ HVM_SIGN_TRANSACTION = "hvm_signTransaction"
24
26
  }
25
27
  type DappInfo = {
26
28
  name: string;
@@ -215,6 +217,12 @@ type SigningData = {
215
217
  data: Avalanche.Tx;
216
218
  vm: 'EVM' | 'AVM' | 'PVM';
217
219
  ownSignatureIndices: [number, number][];
220
+ } | {
221
+ type: RpcMethod.HVM_SIGN_TRANSACTION;
222
+ data: {
223
+ abi: VMABI;
224
+ txPayload: TransactionPayload;
225
+ };
218
226
  };
219
227
  type EvmTxUpdateFn = (data: {
220
228
  maxFeeRate?: bigint;
package/dist/rpc.d.ts CHANGED
@@ -4,6 +4,7 @@ import { Caip2ChainId, Hex } from './common.js';
4
4
  import { JsonRpcError, OptionalDataWithOptionalCause, EthereumProviderError } from '@metamask/rpc-errors';
5
5
  import { BalanceChange, TokenApprovals } from './transaction-simulation.js';
6
6
  import { TokenWithBalanceBTC } from './balance.js';
7
+ import { VMABI, TransactionPayload } from 'hypersdk-client';
7
8
  import './token.js';
8
9
  import './error.js';
9
10
  import '@avalabs/glacier-sdk';
@@ -20,7 +21,8 @@ declare enum RpcMethod {
20
21
  ETH_SIGN = "eth_sign",
21
22
  AVALANCHE_SIGN_MESSAGE = "avalanche_signMessage",
22
23
  AVALANCHE_SEND_TRANSACTION = "avalanche_sendTransaction",
23
- AVALANCHE_SIGN_TRANSACTION = "avalanche_signTransaction"
24
+ AVALANCHE_SIGN_TRANSACTION = "avalanche_signTransaction",
25
+ HVM_SIGN_TRANSACTION = "hvm_signTransaction"
24
26
  }
25
27
  type DappInfo = {
26
28
  name: string;
@@ -215,6 +217,12 @@ type SigningData = {
215
217
  data: Avalanche.Tx;
216
218
  vm: 'EVM' | 'AVM' | 'PVM';
217
219
  ownSignatureIndices: [number, number][];
220
+ } | {
221
+ type: RpcMethod.HVM_SIGN_TRANSACTION;
222
+ data: {
223
+ abi: VMABI;
224
+ txPayload: TransactionPayload;
225
+ };
218
226
  };
219
227
  type EvmTxUpdateFn = (data: {
220
228
  maxFeeRate?: bigint;
package/dist/rpc.js CHANGED
@@ -1,3 +1,3 @@
1
- export { c as AlertType, b as DetailItemType, a as RpcMethod } from './chunk-4OOCVJIU.js';
1
+ export { c as AlertType, b as DetailItemType, a as RpcMethod } from './chunk-5R4OCUZW.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.11.14",
3
+ "version": "0.12.1",
4
4
  "main": "dist/index.cjs",
5
5
  "module": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -11,11 +11,12 @@
11
11
  ],
12
12
  "license": "Limited Ecosystem License",
13
13
  "dependencies": {
14
- "@avalabs/core-wallets-sdk": "3.1.0-alpha.26",
15
- "@avalabs/glacier-sdk": "3.1.0-alpha.26",
14
+ "@avalabs/core-wallets-sdk": "3.1.0-alpha.30",
15
+ "@avalabs/glacier-sdk": "3.1.0-alpha.30",
16
16
  "@metamask/rpc-errors": "6.3.0",
17
17
  "bitcoinjs-lib": "5.2.0",
18
- "zod": "3.23.8"
18
+ "zod": "3.23.8",
19
+ "hypersdk-client": "0.4.16"
19
20
  },
20
21
  "devDependencies": {
21
22
  "@types/bn.js": "5.1.5",
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/rpc.ts"],"names":["RpcMethod","DetailItemType","AlertType"],"mappings":"AAOO,IAAKA,OAEVA,EAAA,yBAA2B,0BAC3BA,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,4BAjBnBA,OAAA,IA4EAC,OACVA,EAAA,KAAO,OACPA,EAAA,QAAU,UACVA,EAAA,QAAU,SACVA,EAAA,SAAW,WACXA,EAAA,gBAAkB,iBAClBA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,KAAO,OARGA,OAAA,IA8FAC,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';\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 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 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 NODE_ID = 'nodeID',\n CURRENCY = 'currency',\n FUNDS_RECIPIENT = 'fundsRecipient',\n DATA = 'data',\n DATE = 'date',\n LINK = 'link',\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 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 DetailItem =\n | string\n | TextItem\n | AddressItem\n | NodeIDItem\n | CurrencyItem\n | DataItem\n | DateItem\n | LinkItem\n | FundsRecipientItem;\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 disclaimer?: string;\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 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.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 | {\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 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\nexport type EvmTxUpdateFn = (data: {\n maxFeeRate?: bigint;\n maxTipRate?: bigint;\n approvalLimit?: Hex; // as hexadecimal, 0x-prefixed\n}) => { displayData: DisplayData; signingData: Extract<SigningData, { type: RpcMethod.ETH_SEND_TRANSACTION }> };\n\nexport type BtcTxUpdateFn = (data: { feeRate?: number }) => {\n displayData: DisplayData;\n signingData: Extract<SigningData, { type: RpcMethod.BITCOIN_SEND_TRANSACTION }>;\n};\n\nexport type ApprovalParams = {\n request: RpcRequest;\n displayData: DisplayData;\n signingData: SigningData;\n updateTx?: EvmTxUpdateFn | BtcTxUpdateFn;\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, requestId: string) => void;\n onTransactionReverted: (txHash: Hex, requestId: string) => void;\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/rpc.ts"],"names":["RpcMethod","DetailItemType","AlertType"],"mappings":"AAOO,IAAKA,OAEVA,EAAA,yBAA2B,0BAC3BA,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,4BAjBnBA,OAAA,IA4EAC,OACVA,EAAA,KAAO,OACPA,EAAA,QAAU,UACVA,EAAA,QAAU,SACVA,EAAA,SAAW,WACXA,EAAA,gBAAkB,iBAClBA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,KAAO,OARGA,OAAA,IA8FAC,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';\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 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 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 NODE_ID = 'nodeID',\n CURRENCY = 'currency',\n FUNDS_RECIPIENT = 'fundsRecipient',\n DATA = 'data',\n DATE = 'date',\n LINK = 'link',\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 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 DetailItem =\n | string\n | TextItem\n | AddressItem\n | NodeIDItem\n | CurrencyItem\n | DataItem\n | DateItem\n | LinkItem\n | FundsRecipientItem;\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 disclaimer?: string;\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 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.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 | {\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 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\nexport type EvmTxUpdateFn = (data: {\n maxFeeRate?: bigint;\n maxTipRate?: bigint;\n approvalLimit?: Hex; // as hexadecimal, 0x-prefixed\n}) => { displayData: DisplayData; signingData: Extract<SigningData, { type: RpcMethod.ETH_SEND_TRANSACTION }> };\n\nexport type BtcTxUpdateFn = (data: { feeRate?: number }) => {\n displayData: DisplayData;\n signingData: Extract<SigningData, { type: RpcMethod.BITCOIN_SEND_TRANSACTION }>;\n};\n\nexport type ApprovalParams = {\n request: RpcRequest;\n displayData: DisplayData;\n signingData: SigningData;\n updateTx?: EvmTxUpdateFn | BtcTxUpdateFn;\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, requestId: string) => void;\n onTransactionReverted: (txHash: Hex, requestId: string) => void;\n}\n"]}
@@ -1,9 +0,0 @@
1
- 'use strict';
2
-
3
- var o=(r=>(r.EVM="EVM",r.BITCOIN="BITCOIN",r.AVM="AVM",r.PVM="PVM",r.CoreEth="CoreEth",r))(o||{}),i=(t=>(t.PRODUCTION="production",t.DEV="dev",t))(i||{}),n=(e=>(e.CORE_MOBILE_IOS="core-mobile-ios",e.CORE_MOBILE_ANDROID="core-mobile-android",e.CORE_WEB="core-web",e.CORE_EXTENSION="core-extension",e.EXPLORER="explorer",e.OTHER="other",e))(n||{});
4
-
5
- exports.a = o;
6
- exports.b = i;
7
- exports.c = n;
8
- //# sourceMappingURL=out.js.map
9
- //# sourceMappingURL=chunk-BG646JBC.cjs.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/common.ts"],"names":["NetworkVMType","Environment","AppName"],"mappings":"AAsBO,IAAKA,OACVA,EAAA,IAAM,MACNA,EAAA,QAAU,UACVA,EAAA,IAAM,MACNA,EAAA,IAAM,MACNA,EAAA,QAAU,UALAA,OAAA,IAiBAC,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 { NetworkToken } from './token';\n\nexport type Network = {\n isTestnet?: boolean;\n chainId: number;\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 explorerUrl?: string;\n logoUri?: string;\n vmName: NetworkVMType;\n};\n\nexport enum NetworkVMType {\n EVM = 'EVM',\n BITCOIN = 'BITCOIN',\n AVM = 'AVM',\n PVM = 'PVM',\n CoreEth = 'CoreEth',\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,5 +0,0 @@
1
- var o=(r=>(r.EVM="EVM",r.BITCOIN="BITCOIN",r.AVM="AVM",r.PVM="PVM",r.CoreEth="CoreEth",r))(o||{}),i=(t=>(t.PRODUCTION="production",t.DEV="dev",t))(i||{}),n=(e=>(e.CORE_MOBILE_IOS="core-mobile-ios",e.CORE_MOBILE_ANDROID="core-mobile-android",e.CORE_WEB="core-web",e.CORE_EXTENSION="core-extension",e.EXPLORER="explorer",e.OTHER="other",e))(n||{});
2
-
3
- export { o as a, i as b, n as c };
4
- //# sourceMappingURL=out.js.map
5
- //# sourceMappingURL=chunk-KKHXAIML.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/common.ts"],"names":["NetworkVMType","Environment","AppName"],"mappings":"AAsBO,IAAKA,OACVA,EAAA,IAAM,MACNA,EAAA,QAAU,UACVA,EAAA,IAAM,MACNA,EAAA,IAAM,MACNA,EAAA,QAAU,UALAA,OAAA,IAiBAC,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 { NetworkToken } from './token';\n\nexport type Network = {\n isTestnet?: boolean;\n chainId: number;\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 explorerUrl?: string;\n logoUri?: string;\n vmName: NetworkVMType;\n};\n\nexport enum NetworkVMType {\n EVM = 'EVM',\n BITCOIN = 'BITCOIN',\n AVM = 'AVM',\n PVM = 'PVM',\n CoreEth = 'CoreEth',\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"]}