@avalabs/vm-module-types 0.0.0-refactor-params-20240711144718 → 0.0.0-refactor-params-20240711152250

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.
@@ -12,21 +12,21 @@
12
12
  ESM Build start
13
13
  CJS dist/index.cjs 748.00 B
14
14
  CJS dist/types.cjs 748.00 B
15
- CJS dist/chunk-ZEYSSEII.cjs 1.57 KB
15
+ CJS dist/chunk-BIY73MWZ.cjs 1.57 KB
16
16
  CJS dist/index.cjs.map 51.00 B
17
17
  CJS dist/types.cjs.map 51.00 B
18
- CJS dist/chunk-ZEYSSEII.cjs.map 6.62 KB
19
- CJS ⚡️ Build success in 599ms
18
+ CJS dist/chunk-BIY73MWZ.cjs.map 6.64 KB
19
+ CJS ⚡️ Build success in 649ms
20
20
  ESM dist/index.js 195.00 B
21
21
  ESM dist/types.js 195.00 B
22
- ESM dist/chunk-NR7FSFOY.js 1.47 KB
22
+ ESM dist/chunk-MMBK5YXH.js 1.47 KB
23
23
  ESM dist/index.js.map 51.00 B
24
24
  ESM dist/types.js.map 51.00 B
25
- ESM dist/chunk-NR7FSFOY.js.map 6.62 KB
26
- ESM ⚡️ Build success in 600ms
25
+ ESM dist/chunk-MMBK5YXH.js.map 6.64 KB
26
+ ESM ⚡️ Build success in 650ms
27
27
  DTS Build start
28
- DTS ⚡️ Build success in 7420ms
29
- DTS dist/types.d.cts 11.47 KB
28
+ DTS ⚡️ Build success in 6775ms
29
+ DTS dist/types.d.cts 11.49 KB
30
30
  DTS dist/index.d.cts 355.00 B
31
- DTS dist/types.d.ts 11.47 KB
31
+ DTS dist/types.d.ts 11.49 KB
32
32
  DTS dist/index.d.ts 354.00 B
package/CHANGELOG.md CHANGED
@@ -1,10 +1,11 @@
1
1
  # @avalabs/vm-module-types
2
2
 
3
- ## 0.0.0-refactor-params-20240711144718
3
+ ## 0.0.0-refactor-params-20240711152250
4
4
 
5
5
  ### Patch Changes
6
6
 
7
7
  - cd97708: fix: build types package
8
+ - e0c3f2b: make module interface more consistent
8
9
 
9
10
  ## 0.0.11
10
11
 
@@ -2,12 +2,12 @@
2
2
 
3
3
  var zod = require('zod');
4
4
 
5
- var p=(e=>(e.BRIDGE="Bridge",e.SWAP="Swap",e.SEND="Send",e.RECEIVE="Receive",e.NFT_BUY="NFTBuy",e.APPROVE="Approve",e.TRANSFER="Transfer",e.NFT_SEND="NFTSend",e.NFT_RECEIVE="NFTReceive",e.AIRDROP="Airdrop",e.FILL_ORDER="FillOrder",e.UNWRAP="Unwrap",e.UNKNOWN="UNKNOWN",e))(p||{}),m=(s=>(s.NATIVE="NATIVE",s.ERC20="ERC20",s.ERC721="ERC721",s.ERC1155="ERC1155",s))(m||{}),l=(t=>(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.WALLET_ADD_ETHEREUM_CHAIN="wallet_addEthereumChain",t.WALLET_SWITCH_ETHEREUM_CHAIN="wallet_switchEthereumChain",t.WALLET_GET_ETHEREUM_CHAIN="wallet_getEthereumChain",t))(l||{}),o=zod.object({checksum:zod.string(),location:zod.object({npm:zod.object({filePath:zod.string(),packageName:zod.string(),registry:zod.string()})})}),d=zod.object({name:zod.string(),version:zod.string(),description:zod.string(),sources:zod.object({module:o,provider:o.optional()}),network:zod.object({chainIds:zod.string().array(),namespaces:zod.string().array()}),cointype:zod.string(),permissions:zod.object({rpc:zod.object({dapps:zod.boolean(),methods:zod.string().array()})}),manifestVersion:zod.string()}),u=a=>d.safeParse(a),E=(i=>(i.PRODUCTION="production",i.DEV="dev",i))(E||{});
5
+ var p=(e=>(e.BRIDGE="Bridge",e.SWAP="Swap",e.SEND="Send",e.RECEIVE="Receive",e.NFT_BUY="NFTBuy",e.APPROVE="Approve",e.TRANSFER="Transfer",e.NFT_SEND="NFTSend",e.NFT_RECEIVE="NFTReceive",e.AIRDROP="Airdrop",e.FILL_ORDER="FillOrder",e.UNWRAP="Unwrap",e.UNKNOWN="UNKNOWN",e))(p||{}),m=(s=>(s.NATIVE="NATIVE",s.ERC20="ERC20",s.ERC721="ERC721",s.ERC1155="ERC1155",s))(m||{}),l=(t=>(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.WALLET_ADD_ETHEREUM_CHAIN="wallet_addEthereumChain",t.WALLET_SWITCH_ETHEREUM_CHAIN="wallet_switchEthereumChain",t.WALLET_GET_ETHEREUM_CHAIN="wallet_getEthereumChain",t))(l||{}),o=zod.object({checksum:zod.string(),location:zod.object({npm:zod.object({filePath:zod.string(),packageName:zod.string(),registry:zod.string()})})}),E=zod.object({name:zod.string(),version:zod.string(),description:zod.string(),sources:zod.object({module:o,provider:o.optional()}),network:zod.object({chainIds:zod.string().array(),namespaces:zod.string().array()}),cointype:zod.string(),permissions:zod.object({rpc:zod.object({dapps:zod.boolean(),methods:zod.string().array()})}),manifestVersion:zod.string()}),N=a=>E.safeParse(a),c=(i=>(i.PRODUCTION="production",i.DEV="dev",i))(c||{});
6
6
 
7
7
  exports.a = p;
8
8
  exports.b = m;
9
9
  exports.c = l;
10
- exports.d = u;
11
- exports.e = E;
10
+ exports.d = N;
11
+ exports.e = c;
12
12
  //# sourceMappingURL=out.js.map
13
- //# sourceMappingURL=chunk-ZEYSSEII.cjs.map
13
+ //# sourceMappingURL=chunk-BIY73MWZ.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types.ts"],"names":["object","string","boolean","TransactionType","TokenType","RpcMethod","sourceSchema","manifestSchema","parseManifest","params","Environment"],"mappings":"AAAA,OAAS,UAAAA,EAAQ,UAAAC,EAAQ,WAAAC,MAAkB,MAGpC,IAAKC,OACVA,EAAA,OAAS,SACTA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,QAAU,UACVA,EAAA,QAAU,SACVA,EAAA,QAAU,UACVA,EAAA,SAAW,WACXA,EAAA,SAAW,UACXA,EAAA,YAAc,aACdA,EAAA,QAAU,UACVA,EAAA,WAAa,YACbA,EAAA,OAAS,SACTA,EAAA,QAAU,UAbAA,OAAA,IAgBAC,OACVA,EAAA,OAAS,SACTA,EAAA,MAAQ,QACRA,EAAA,OAAS,SACTA,EAAA,QAAU,UAJAA,OAAA,IAcAC,OAEVA,EAAA,qBAAuB,sBACvBA,EAAA,mBAAqB,uBACrBA,EAAA,mBAAqB,uBACrBA,EAAA,mBAAqB,uBACrBA,EAAA,gBAAkB,oBAClBA,EAAA,cAAgB,gBAChBA,EAAA,SAAW,WACXA,EAAA,0BAA4B,0BAC5BA,EAAA,6BAA+B,6BAC/BA,EAAA,0BAA4B,0BAXlBA,OAAA,IAoJNC,EAAeN,EAAO,CAC1B,SAAUC,EAAO,EACjB,SAAUD,EAAO,CACf,IAAKA,EAAO,CACV,SAAUC,EAAO,EACjB,YAAaA,EAAO,EACpB,SAAUA,EAAO,CACnB,CAAC,CACH,CAAC,CACH,CAAC,EAEKM,EAAiBP,EAAO,CAC5B,KAAMC,EAAO,EACb,QAASA,EAAO,EAChB,YAAaA,EAAO,EACpB,QAASD,EAAO,CACd,OAAQM,EACR,SAAUA,EAAa,SAAS,CAClC,CAAC,EACD,QAASN,EAAO,CACd,SAAUC,EAAO,EAAE,MAAM,EACzB,WAAYA,EAAO,EAAE,MAAM,CAC7B,CAAC,EACD,SAAUA,EAAO,EACjB,YAAaD,EAAO,CAClB,IAAKA,EAAO,CACV,MAAOE,EAAQ,EACf,QAASD,EAAO,EAAE,MAAM,CAC1B,CAAC,CACH,CAAC,EACD,gBAAiBA,EAAO,CAC1B,CAAC,EAIYO,EAAiBC,GACrBF,EAAe,UAAUE,CAAM,EAO5BC,OACVA,EAAA,WAAa,aACbA,EAAA,IAAM,MAFIA,OAAA","sourcesContent":["import { object, string, boolean, z } from 'zod';\nimport type { JsonRpcError, EthereumProviderError, OptionalDataWithOptionalCause } from '@metamask/rpc-errors';\n\nexport enum TransactionType {\n BRIDGE = 'Bridge',\n SWAP = 'Swap',\n SEND = 'Send',\n RECEIVE = 'Receive',\n NFT_BUY = 'NFTBuy',\n APPROVE = 'Approve',\n TRANSFER = 'Transfer',\n NFT_SEND = 'NFTSend',\n NFT_RECEIVE = 'NFTReceive',\n AIRDROP = 'Airdrop',\n FILL_ORDER = 'FillOrder',\n UNWRAP = 'Unwrap',\n UNKNOWN = 'UNKNOWN',\n}\n\nexport enum TokenType {\n NATIVE = 'NATIVE',\n ERC20 = 'ERC20',\n ERC721 = 'ERC721',\n ERC1155 = 'ERC1155',\n}\n\nexport type NetworkFees = {\n low: { maxPriorityFeePerGas: bigint; maxFeePerGas: bigint };\n medium: { maxPriorityFeePerGas: bigint; maxFeePerGas: bigint };\n high: { maxPriorityFeePerGas: bigint; maxFeePerGas: bigint };\n baseFee: bigint;\n};\n\nexport enum RpcMethod {\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 WALLET_ADD_ETHEREUM_CHAIN = 'wallet_addEthereumChain',\n WALLET_SWITCH_ETHEREUM_CHAIN = 'wallet_switchEthereumChain',\n WALLET_GET_ETHEREUM_CHAIN = 'wallet_getEthereumChain',\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};\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 type Network = {\n chainId: number;\n chainName: string;\n rpcUrl: string;\n networkToken: NetworkToken;\n utilityAddresses?: {\n multicall: string;\n };\n logoUrl?: string;\n isTestnet?: boolean;\n explorerUrl?: string;\n};\n\nexport interface Module {\n getManifest: () => Manifest | undefined;\n getBalances: () => Promise<string>;\n getTransactionHistory: (params: GetTransactionHistory) => Promise<TransactionHistoryResponse>;\n getNetworkFee: (network: Network) => Promise<NetworkFees>;\n getAddress: () => Promise<string>;\n getTokens: (network: Network) => Promise<NetworkContractToken[]>;\n onRpcRequest: (request: RpcRequest, chain: Network) => Promise<RpcResponse>;\n}\n\nexport type GetTransactionHistory = {\n network: Network;\n address: string;\n nextPageToken?: string;\n offset?: number;\n};\n\nexport type TransactionHistoryResponse = {\n transactions: Transaction[];\n nextPageToken?: string;\n};\n\nexport type Transaction = {\n isContractCall: boolean;\n isIncoming: boolean;\n isOutgoing: boolean;\n isSender: boolean;\n timestamp: number;\n hash: string;\n from: string;\n to: string;\n tokens: TxToken[];\n gasPrice?: string;\n gasUsed: string;\n txType?: TransactionType;\n chainId: string; // chainId from ActiveNetwork used to fetch tx\n method?: string;\n explorerLink: string;\n};\n\nexport interface TxToken {\n decimal?: string;\n name: string;\n symbol: string;\n amount: string;\n imageUri?: string;\n from?: RichAddress;\n to?: RichAddress;\n collectableTokenId?: string;\n type: TokenType;\n}\n\ntype RichAddress = {\n /**\n * The contract name.\n */\n name?: string;\n /**\n * The contract symbol.\n */\n symbol?: string;\n /**\n * The number of decimals the token uses. For example `6`, means to divide the token amount by `1000000` to get its user representation.\n */\n decimals?: number;\n /**\n * The logo uri for the address.\n */\n logoUri?: string;\n /**\n * A wallet or contract address in mixed-case checksum encoding.\n */\n address: string;\n};\n\nexport interface NetworkToken {\n name: string;\n symbol: string;\n description: string;\n decimals: number;\n logoUri: string;\n}\n\nexport interface NetworkContractToken {\n address: string;\n chainId?: number;\n color?: string;\n contractType: string;\n decimals: number;\n logoUri?: string;\n name: string;\n symbol: string;\n}\n\nconst sourceSchema = object({\n checksum: string(),\n location: object({\n npm: object({\n filePath: string(),\n packageName: string(),\n registry: string(),\n }),\n }),\n});\n\nconst manifestSchema = object({\n name: string(),\n version: string(),\n description: string(),\n sources: object({\n module: sourceSchema,\n provider: sourceSchema.optional(),\n }),\n network: object({\n chainIds: string().array(),\n namespaces: string().array(),\n }),\n cointype: string(),\n permissions: object({\n rpc: object({\n dapps: boolean(),\n methods: string().array(),\n }),\n }),\n manifestVersion: string(),\n});\n\nexport type Manifest = z.infer<typeof manifestSchema>;\n\nexport const parseManifest = (params: unknown): z.SafeParseReturnType<unknown, Manifest> => {\n return manifestSchema.safeParse(params);\n};\n\nexport type Caip2ChainId = string;\n\nexport type Hex = `0x${string}`;\n\nexport enum Environment {\n PRODUCTION = 'production',\n DEV = 'dev',\n}\n"]}
@@ -1,7 +1,7 @@
1
1
  import { object, string, boolean } from 'zod';
2
2
 
3
- var p=(e=>(e.BRIDGE="Bridge",e.SWAP="Swap",e.SEND="Send",e.RECEIVE="Receive",e.NFT_BUY="NFTBuy",e.APPROVE="Approve",e.TRANSFER="Transfer",e.NFT_SEND="NFTSend",e.NFT_RECEIVE="NFTReceive",e.AIRDROP="Airdrop",e.FILL_ORDER="FillOrder",e.UNWRAP="Unwrap",e.UNKNOWN="UNKNOWN",e))(p||{}),m=(s=>(s.NATIVE="NATIVE",s.ERC20="ERC20",s.ERC721="ERC721",s.ERC1155="ERC1155",s))(m||{}),l=(t=>(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.WALLET_ADD_ETHEREUM_CHAIN="wallet_addEthereumChain",t.WALLET_SWITCH_ETHEREUM_CHAIN="wallet_switchEthereumChain",t.WALLET_GET_ETHEREUM_CHAIN="wallet_getEthereumChain",t))(l||{}),o=object({checksum:string(),location:object({npm:object({filePath:string(),packageName:string(),registry:string()})})}),d=object({name:string(),version:string(),description:string(),sources:object({module:o,provider:o.optional()}),network:object({chainIds:string().array(),namespaces:string().array()}),cointype:string(),permissions:object({rpc:object({dapps:boolean(),methods:string().array()})}),manifestVersion:string()}),u=a=>d.safeParse(a),E=(i=>(i.PRODUCTION="production",i.DEV="dev",i))(E||{});
3
+ var p=(e=>(e.BRIDGE="Bridge",e.SWAP="Swap",e.SEND="Send",e.RECEIVE="Receive",e.NFT_BUY="NFTBuy",e.APPROVE="Approve",e.TRANSFER="Transfer",e.NFT_SEND="NFTSend",e.NFT_RECEIVE="NFTReceive",e.AIRDROP="Airdrop",e.FILL_ORDER="FillOrder",e.UNWRAP="Unwrap",e.UNKNOWN="UNKNOWN",e))(p||{}),m=(s=>(s.NATIVE="NATIVE",s.ERC20="ERC20",s.ERC721="ERC721",s.ERC1155="ERC1155",s))(m||{}),l=(t=>(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.WALLET_ADD_ETHEREUM_CHAIN="wallet_addEthereumChain",t.WALLET_SWITCH_ETHEREUM_CHAIN="wallet_switchEthereumChain",t.WALLET_GET_ETHEREUM_CHAIN="wallet_getEthereumChain",t))(l||{}),o=object({checksum:string(),location:object({npm:object({filePath:string(),packageName:string(),registry:string()})})}),E=object({name:string(),version:string(),description:string(),sources:object({module:o,provider:o.optional()}),network:object({chainIds:string().array(),namespaces:string().array()}),cointype:string(),permissions:object({rpc:object({dapps:boolean(),methods:string().array()})}),manifestVersion:string()}),N=a=>E.safeParse(a),c=(i=>(i.PRODUCTION="production",i.DEV="dev",i))(c||{});
4
4
 
5
- export { p as a, m as b, l as c, u as d, E as e };
5
+ export { p as a, m as b, l as c, N as d, c as e };
6
6
  //# sourceMappingURL=out.js.map
7
- //# sourceMappingURL=chunk-NR7FSFOY.js.map
7
+ //# sourceMappingURL=chunk-MMBK5YXH.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/types.ts"],"names":["object","string","boolean","TransactionType","TokenType","RpcMethod","sourceSchema","manifestSchema","parseManifest","params","Environment"],"mappings":"AAAA,OAAS,UAAAA,EAAQ,UAAAC,EAAQ,WAAAC,MAAkB,MAGpC,IAAKC,OACVA,EAAA,OAAS,SACTA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,QAAU,UACVA,EAAA,QAAU,SACVA,EAAA,QAAU,UACVA,EAAA,SAAW,WACXA,EAAA,SAAW,UACXA,EAAA,YAAc,aACdA,EAAA,QAAU,UACVA,EAAA,WAAa,YACbA,EAAA,OAAS,SACTA,EAAA,QAAU,UAbAA,OAAA,IAgBAC,OACVA,EAAA,OAAS,SACTA,EAAA,MAAQ,QACRA,EAAA,OAAS,SACTA,EAAA,QAAU,UAJAA,OAAA,IAcAC,OAEVA,EAAA,qBAAuB,sBACvBA,EAAA,mBAAqB,uBACrBA,EAAA,mBAAqB,uBACrBA,EAAA,mBAAqB,uBACrBA,EAAA,gBAAkB,oBAClBA,EAAA,cAAgB,gBAChBA,EAAA,SAAW,WACXA,EAAA,0BAA4B,0BAC5BA,EAAA,6BAA+B,6BAC/BA,EAAA,0BAA4B,0BAXlBA,OAAA,IAoJNC,EAAeN,EAAO,CAC1B,SAAUC,EAAO,EACjB,SAAUD,EAAO,CACf,IAAKA,EAAO,CACV,SAAUC,EAAO,EACjB,YAAaA,EAAO,EACpB,SAAUA,EAAO,CACnB,CAAC,CACH,CAAC,CACH,CAAC,EAEKM,EAAiBP,EAAO,CAC5B,KAAMC,EAAO,EACb,QAASA,EAAO,EAChB,YAAaA,EAAO,EACpB,QAASD,EAAO,CACd,OAAQM,EACR,SAAUA,EAAa,SAAS,CAClC,CAAC,EACD,QAASN,EAAO,CACd,SAAUC,EAAO,EAAE,MAAM,EACzB,WAAYA,EAAO,EAAE,MAAM,CAC7B,CAAC,EACD,SAAUA,EAAO,EACjB,YAAaD,EAAO,CAClB,IAAKA,EAAO,CACV,MAAOE,EAAQ,EACf,QAASD,EAAO,EAAE,MAAM,CAC1B,CAAC,CACH,CAAC,EACD,gBAAiBA,EAAO,CAC1B,CAAC,EAIYO,EAAiBC,GACrBF,EAAe,UAAUE,CAAM,EAO5BC,OACVA,EAAA,WAAa,aACbA,EAAA,IAAM,MAFIA,OAAA","sourcesContent":["import { object, string, boolean, z } from 'zod';\nimport type { JsonRpcError, EthereumProviderError, OptionalDataWithOptionalCause } from '@metamask/rpc-errors';\n\nexport enum TransactionType {\n BRIDGE = 'Bridge',\n SWAP = 'Swap',\n SEND = 'Send',\n RECEIVE = 'Receive',\n NFT_BUY = 'NFTBuy',\n APPROVE = 'Approve',\n TRANSFER = 'Transfer',\n NFT_SEND = 'NFTSend',\n NFT_RECEIVE = 'NFTReceive',\n AIRDROP = 'Airdrop',\n FILL_ORDER = 'FillOrder',\n UNWRAP = 'Unwrap',\n UNKNOWN = 'UNKNOWN',\n}\n\nexport enum TokenType {\n NATIVE = 'NATIVE',\n ERC20 = 'ERC20',\n ERC721 = 'ERC721',\n ERC1155 = 'ERC1155',\n}\n\nexport type NetworkFees = {\n low: { maxPriorityFeePerGas: bigint; maxFeePerGas: bigint };\n medium: { maxPriorityFeePerGas: bigint; maxFeePerGas: bigint };\n high: { maxPriorityFeePerGas: bigint; maxFeePerGas: bigint };\n baseFee: bigint;\n};\n\nexport enum RpcMethod {\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 WALLET_ADD_ETHEREUM_CHAIN = 'wallet_addEthereumChain',\n WALLET_SWITCH_ETHEREUM_CHAIN = 'wallet_switchEthereumChain',\n WALLET_GET_ETHEREUM_CHAIN = 'wallet_getEthereumChain',\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};\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 type Network = {\n chainId: number;\n chainName: string;\n rpcUrl: string;\n networkToken: NetworkToken;\n utilityAddresses?: {\n multicall: string;\n };\n logoUrl?: string;\n isTestnet?: boolean;\n explorerUrl?: string;\n};\n\nexport interface Module {\n getManifest: () => Manifest | undefined;\n getBalances: () => Promise<string>;\n getTransactionHistory: (params: GetTransactionHistory) => Promise<TransactionHistoryResponse>;\n getNetworkFee: (network: Network) => Promise<NetworkFees>;\n getAddress: () => Promise<string>;\n getTokens: (network: Network) => Promise<NetworkContractToken[]>;\n onRpcRequest: (request: RpcRequest, chain: Network) => Promise<RpcResponse>;\n}\n\nexport type GetTransactionHistory = {\n network: Network;\n address: string;\n nextPageToken?: string;\n offset?: number;\n};\n\nexport type TransactionHistoryResponse = {\n transactions: Transaction[];\n nextPageToken?: string;\n};\n\nexport type Transaction = {\n isContractCall: boolean;\n isIncoming: boolean;\n isOutgoing: boolean;\n isSender: boolean;\n timestamp: number;\n hash: string;\n from: string;\n to: string;\n tokens: TxToken[];\n gasPrice?: string;\n gasUsed: string;\n txType?: TransactionType;\n chainId: string; // chainId from ActiveNetwork used to fetch tx\n method?: string;\n explorerLink: string;\n};\n\nexport interface TxToken {\n decimal?: string;\n name: string;\n symbol: string;\n amount: string;\n imageUri?: string;\n from?: RichAddress;\n to?: RichAddress;\n collectableTokenId?: string;\n type: TokenType;\n}\n\ntype RichAddress = {\n /**\n * The contract name.\n */\n name?: string;\n /**\n * The contract symbol.\n */\n symbol?: string;\n /**\n * The number of decimals the token uses. For example `6`, means to divide the token amount by `1000000` to get its user representation.\n */\n decimals?: number;\n /**\n * The logo uri for the address.\n */\n logoUri?: string;\n /**\n * A wallet or contract address in mixed-case checksum encoding.\n */\n address: string;\n};\n\nexport interface NetworkToken {\n name: string;\n symbol: string;\n description: string;\n decimals: number;\n logoUri: string;\n}\n\nexport interface NetworkContractToken {\n address: string;\n chainId?: number;\n color?: string;\n contractType: string;\n decimals: number;\n logoUri?: string;\n name: string;\n symbol: string;\n}\n\nconst sourceSchema = object({\n checksum: string(),\n location: object({\n npm: object({\n filePath: string(),\n packageName: string(),\n registry: string(),\n }),\n }),\n});\n\nconst manifestSchema = object({\n name: string(),\n version: string(),\n description: string(),\n sources: object({\n module: sourceSchema,\n provider: sourceSchema.optional(),\n }),\n network: object({\n chainIds: string().array(),\n namespaces: string().array(),\n }),\n cointype: string(),\n permissions: object({\n rpc: object({\n dapps: boolean(),\n methods: string().array(),\n }),\n }),\n manifestVersion: string(),\n});\n\nexport type Manifest = z.infer<typeof manifestSchema>;\n\nexport const parseManifest = (params: unknown): z.SafeParseReturnType<unknown, Manifest> => {\n return manifestSchema.safeParse(params);\n};\n\nexport type Caip2ChainId = string;\n\nexport type Hex = `0x${string}`;\n\nexport enum Environment {\n PRODUCTION = 'production',\n DEV = 'dev',\n}\n"]}
package/dist/index.cjs CHANGED
@@ -1,28 +1,28 @@
1
1
  'use strict';
2
2
 
3
- var chunkZEYSSEII_cjs = require('./chunk-ZEYSSEII.cjs');
3
+ var chunkBIY73MWZ_cjs = require('./chunk-BIY73MWZ.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, 'Environment', {
8
8
  enumerable: true,
9
- get: function () { return chunkZEYSSEII_cjs.e; }
9
+ get: function () { return chunkBIY73MWZ_cjs.e; }
10
10
  });
11
11
  Object.defineProperty(exports, 'RpcMethod', {
12
12
  enumerable: true,
13
- get: function () { return chunkZEYSSEII_cjs.c; }
13
+ get: function () { return chunkBIY73MWZ_cjs.c; }
14
14
  });
15
15
  Object.defineProperty(exports, 'TokenType', {
16
16
  enumerable: true,
17
- get: function () { return chunkZEYSSEII_cjs.b; }
17
+ get: function () { return chunkBIY73MWZ_cjs.b; }
18
18
  });
19
19
  Object.defineProperty(exports, 'TransactionType', {
20
20
  enumerable: true,
21
- get: function () { return chunkZEYSSEII_cjs.a; }
21
+ get: function () { return chunkBIY73MWZ_cjs.a; }
22
22
  });
23
23
  Object.defineProperty(exports, 'parseManifest', {
24
24
  enumerable: true,
25
- get: function () { return chunkZEYSSEII_cjs.d; }
25
+ get: function () { return chunkBIY73MWZ_cjs.d; }
26
26
  });
27
27
  //# sourceMappingURL=out.js.map
28
28
  //# sourceMappingURL=index.cjs.map
package/dist/index.js CHANGED
@@ -1,3 +1,3 @@
1
- export { e as Environment, c as RpcMethod, b as TokenType, a as TransactionType, d as parseManifest } from './chunk-NR7FSFOY.js';
1
+ export { e as Environment, c as RpcMethod, b as TokenType, a as TransactionType, d as parseManifest } from './chunk-MMBK5YXH.js';
2
2
  //# sourceMappingURL=out.js.map
3
3
  //# sourceMappingURL=index.js.map
package/dist/types.cjs CHANGED
@@ -1,28 +1,28 @@
1
1
  'use strict';
2
2
 
3
- var chunkZEYSSEII_cjs = require('./chunk-ZEYSSEII.cjs');
3
+ var chunkBIY73MWZ_cjs = require('./chunk-BIY73MWZ.cjs');
4
4
 
5
5
 
6
6
 
7
7
  Object.defineProperty(exports, 'Environment', {
8
8
  enumerable: true,
9
- get: function () { return chunkZEYSSEII_cjs.e; }
9
+ get: function () { return chunkBIY73MWZ_cjs.e; }
10
10
  });
11
11
  Object.defineProperty(exports, 'RpcMethod', {
12
12
  enumerable: true,
13
- get: function () { return chunkZEYSSEII_cjs.c; }
13
+ get: function () { return chunkBIY73MWZ_cjs.c; }
14
14
  });
15
15
  Object.defineProperty(exports, 'TokenType', {
16
16
  enumerable: true,
17
- get: function () { return chunkZEYSSEII_cjs.b; }
17
+ get: function () { return chunkBIY73MWZ_cjs.b; }
18
18
  });
19
19
  Object.defineProperty(exports, 'TransactionType', {
20
20
  enumerable: true,
21
- get: function () { return chunkZEYSSEII_cjs.a; }
21
+ get: function () { return chunkBIY73MWZ_cjs.a; }
22
22
  });
23
23
  Object.defineProperty(exports, 'parseManifest', {
24
24
  enumerable: true,
25
- get: function () { return chunkZEYSSEII_cjs.d; }
25
+ get: function () { return chunkBIY73MWZ_cjs.d; }
26
26
  });
27
27
  //# sourceMappingURL=out.js.map
28
28
  //# sourceMappingURL=types.cjs.map
package/dist/types.d.cts CHANGED
@@ -69,11 +69,13 @@ type RpcResponse<R = unknown, E extends RpcError = JsonRpcError<OptionalDataWith
69
69
  error: E;
70
70
  };
71
71
  type Network = {
72
- chainId: Caip2ChainId;
72
+ chainId: number;
73
73
  chainName: string;
74
74
  rpcUrl: string;
75
75
  networkToken: NetworkToken;
76
- multiContractAddress?: string;
76
+ utilityAddresses?: {
77
+ multicall: string;
78
+ };
77
79
  logoUrl?: string;
78
80
  isTestnet?: boolean;
79
81
  explorerUrl?: string;
package/dist/types.d.ts CHANGED
@@ -69,11 +69,13 @@ type RpcResponse<R = unknown, E extends RpcError = JsonRpcError<OptionalDataWith
69
69
  error: E;
70
70
  };
71
71
  type Network = {
72
- chainId: Caip2ChainId;
72
+ chainId: number;
73
73
  chainName: string;
74
74
  rpcUrl: string;
75
75
  networkToken: NetworkToken;
76
- multiContractAddress?: string;
76
+ utilityAddresses?: {
77
+ multicall: string;
78
+ };
77
79
  logoUrl?: string;
78
80
  isTestnet?: boolean;
79
81
  explorerUrl?: string;
package/dist/types.js CHANGED
@@ -1,3 +1,3 @@
1
- export { e as Environment, c as RpcMethod, b as TokenType, a as TransactionType, d as parseManifest } from './chunk-NR7FSFOY.js';
1
+ export { e as Environment, c as RpcMethod, b as TokenType, a as TransactionType, d as parseManifest } from './chunk-MMBK5YXH.js';
2
2
  //# sourceMappingURL=out.js.map
3
3
  //# sourceMappingURL=types.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@avalabs/vm-module-types",
3
- "version": "0.0.0-refactor-params-20240711144718",
3
+ "version": "0.0.0-refactor-params-20240711152250",
4
4
  "main": "dist/index.cjs",
5
5
  "module": "dist/index.js",
6
6
  "typings": "dist/index.d.ts",
@@ -12,7 +12,7 @@
12
12
  "devDependencies": {
13
13
  "tsup": "7.2.0",
14
14
  "@internal/tsup-config": "0.0.1",
15
- "eslint-config-custom": "0.0.1"
15
+ "eslint-config-custom": "0.0.0-refactor-params-20240711152250"
16
16
  },
17
17
  "scripts": {
18
18
  "build": "tsup",
package/src/types.ts CHANGED
@@ -73,11 +73,13 @@ export type RpcResponse<R = unknown, E extends RpcError = JsonRpcError<OptionalD
73
73
  };
74
74
 
75
75
  export type Network = {
76
- chainId: Caip2ChainId;
76
+ chainId: number;
77
77
  chainName: string;
78
78
  rpcUrl: string;
79
79
  networkToken: NetworkToken;
80
- multiContractAddress?: string;
80
+ utilityAddresses?: {
81
+ multicall: string;
82
+ };
81
83
  logoUrl?: string;
82
84
  isTestnet?: boolean;
83
85
  explorerUrl?: string;
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/types.ts"],"names":["object","string","boolean","TransactionType","TokenType","RpcMethod","sourceSchema","manifestSchema","parseManifest","params","Environment"],"mappings":"AAAA,OAAS,UAAAA,EAAQ,UAAAC,EAAQ,WAAAC,MAAkB,MAGpC,IAAKC,OACVA,EAAA,OAAS,SACTA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,QAAU,UACVA,EAAA,QAAU,SACVA,EAAA,QAAU,UACVA,EAAA,SAAW,WACXA,EAAA,SAAW,UACXA,EAAA,YAAc,aACdA,EAAA,QAAU,UACVA,EAAA,WAAa,YACbA,EAAA,OAAS,SACTA,EAAA,QAAU,UAbAA,OAAA,IAgBAC,OACVA,EAAA,OAAS,SACTA,EAAA,MAAQ,QACRA,EAAA,OAAS,SACTA,EAAA,QAAU,UAJAA,OAAA,IAcAC,OAEVA,EAAA,qBAAuB,sBACvBA,EAAA,mBAAqB,uBACrBA,EAAA,mBAAqB,uBACrBA,EAAA,mBAAqB,uBACrBA,EAAA,gBAAkB,oBAClBA,EAAA,cAAgB,gBAChBA,EAAA,SAAW,WACXA,EAAA,0BAA4B,0BAC5BA,EAAA,6BAA+B,6BAC/BA,EAAA,0BAA4B,0BAXlBA,OAAA,IAkJNC,EAAeN,EAAO,CAC1B,SAAUC,EAAO,EACjB,SAAUD,EAAO,CACf,IAAKA,EAAO,CACV,SAAUC,EAAO,EACjB,YAAaA,EAAO,EACpB,SAAUA,EAAO,CACnB,CAAC,CACH,CAAC,CACH,CAAC,EAEKM,EAAiBP,EAAO,CAC5B,KAAMC,EAAO,EACb,QAASA,EAAO,EAChB,YAAaA,EAAO,EACpB,QAASD,EAAO,CACd,OAAQM,EACR,SAAUA,EAAa,SAAS,CAClC,CAAC,EACD,QAASN,EAAO,CACd,SAAUC,EAAO,EAAE,MAAM,EACzB,WAAYA,EAAO,EAAE,MAAM,CAC7B,CAAC,EACD,SAAUA,EAAO,EACjB,YAAaD,EAAO,CAClB,IAAKA,EAAO,CACV,MAAOE,EAAQ,EACf,QAASD,EAAO,EAAE,MAAM,CAC1B,CAAC,CACH,CAAC,EACD,gBAAiBA,EAAO,CAC1B,CAAC,EAIYO,EAAiBC,GACrBF,EAAe,UAAUE,CAAM,EAO5BC,OACVA,EAAA,WAAa,aACbA,EAAA,IAAM,MAFIA,OAAA","sourcesContent":["import { object, string, boolean, z } from 'zod';\nimport type { JsonRpcError, EthereumProviderError, OptionalDataWithOptionalCause } from '@metamask/rpc-errors';\n\nexport enum TransactionType {\n BRIDGE = 'Bridge',\n SWAP = 'Swap',\n SEND = 'Send',\n RECEIVE = 'Receive',\n NFT_BUY = 'NFTBuy',\n APPROVE = 'Approve',\n TRANSFER = 'Transfer',\n NFT_SEND = 'NFTSend',\n NFT_RECEIVE = 'NFTReceive',\n AIRDROP = 'Airdrop',\n FILL_ORDER = 'FillOrder',\n UNWRAP = 'Unwrap',\n UNKNOWN = 'UNKNOWN',\n}\n\nexport enum TokenType {\n NATIVE = 'NATIVE',\n ERC20 = 'ERC20',\n ERC721 = 'ERC721',\n ERC1155 = 'ERC1155',\n}\n\nexport type NetworkFees = {\n low: { maxPriorityFeePerGas: bigint; maxFeePerGas: bigint };\n medium: { maxPriorityFeePerGas: bigint; maxFeePerGas: bigint };\n high: { maxPriorityFeePerGas: bigint; maxFeePerGas: bigint };\n baseFee: bigint;\n};\n\nexport enum RpcMethod {\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 WALLET_ADD_ETHEREUM_CHAIN = 'wallet_addEthereumChain',\n WALLET_SWITCH_ETHEREUM_CHAIN = 'wallet_switchEthereumChain',\n WALLET_GET_ETHEREUM_CHAIN = 'wallet_getEthereumChain',\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};\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 type Network = {\n chainId: Caip2ChainId;\n chainName: string;\n rpcUrl: string;\n networkToken: NetworkToken;\n multiContractAddress?: string;\n logoUrl?: string;\n isTestnet?: boolean;\n explorerUrl?: string;\n};\n\nexport interface Module {\n getManifest: () => Manifest | undefined;\n getBalances: () => Promise<string>;\n getTransactionHistory: (params: GetTransactionHistory) => Promise<TransactionHistoryResponse>;\n getNetworkFee: (network: Network) => Promise<NetworkFees>;\n getAddress: () => Promise<string>;\n getTokens: (network: Network) => Promise<NetworkContractToken[]>;\n onRpcRequest: (request: RpcRequest, chain: Network) => Promise<RpcResponse>;\n}\n\nexport type GetTransactionHistory = {\n network: Network;\n address: string;\n nextPageToken?: string;\n offset?: number;\n};\n\nexport type TransactionHistoryResponse = {\n transactions: Transaction[];\n nextPageToken?: string;\n};\n\nexport type Transaction = {\n isContractCall: boolean;\n isIncoming: boolean;\n isOutgoing: boolean;\n isSender: boolean;\n timestamp: number;\n hash: string;\n from: string;\n to: string;\n tokens: TxToken[];\n gasPrice?: string;\n gasUsed: string;\n txType?: TransactionType;\n chainId: string; // chainId from ActiveNetwork used to fetch tx\n method?: string;\n explorerLink: string;\n};\n\nexport interface TxToken {\n decimal?: string;\n name: string;\n symbol: string;\n amount: string;\n imageUri?: string;\n from?: RichAddress;\n to?: RichAddress;\n collectableTokenId?: string;\n type: TokenType;\n}\n\ntype RichAddress = {\n /**\n * The contract name.\n */\n name?: string;\n /**\n * The contract symbol.\n */\n symbol?: string;\n /**\n * The number of decimals the token uses. For example `6`, means to divide the token amount by `1000000` to get its user representation.\n */\n decimals?: number;\n /**\n * The logo uri for the address.\n */\n logoUri?: string;\n /**\n * A wallet or contract address in mixed-case checksum encoding.\n */\n address: string;\n};\n\nexport interface NetworkToken {\n name: string;\n symbol: string;\n description: string;\n decimals: number;\n logoUri: string;\n}\n\nexport interface NetworkContractToken {\n address: string;\n chainId?: number;\n color?: string;\n contractType: string;\n decimals: number;\n logoUri?: string;\n name: string;\n symbol: string;\n}\n\nconst sourceSchema = object({\n checksum: string(),\n location: object({\n npm: object({\n filePath: string(),\n packageName: string(),\n registry: string(),\n }),\n }),\n});\n\nconst manifestSchema = object({\n name: string(),\n version: string(),\n description: string(),\n sources: object({\n module: sourceSchema,\n provider: sourceSchema.optional(),\n }),\n network: object({\n chainIds: string().array(),\n namespaces: string().array(),\n }),\n cointype: string(),\n permissions: object({\n rpc: object({\n dapps: boolean(),\n methods: string().array(),\n }),\n }),\n manifestVersion: string(),\n});\n\nexport type Manifest = z.infer<typeof manifestSchema>;\n\nexport const parseManifest = (params: unknown): z.SafeParseReturnType<unknown, Manifest> => {\n return manifestSchema.safeParse(params);\n};\n\nexport type Caip2ChainId = string;\n\nexport type Hex = `0x${string}`;\n\nexport enum Environment {\n PRODUCTION = 'production',\n DEV = 'dev',\n}\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/types.ts"],"names":["object","string","boolean","TransactionType","TokenType","RpcMethod","sourceSchema","manifestSchema","parseManifest","params","Environment"],"mappings":"AAAA,OAAS,UAAAA,EAAQ,UAAAC,EAAQ,WAAAC,MAAkB,MAGpC,IAAKC,OACVA,EAAA,OAAS,SACTA,EAAA,KAAO,OACPA,EAAA,KAAO,OACPA,EAAA,QAAU,UACVA,EAAA,QAAU,SACVA,EAAA,QAAU,UACVA,EAAA,SAAW,WACXA,EAAA,SAAW,UACXA,EAAA,YAAc,aACdA,EAAA,QAAU,UACVA,EAAA,WAAa,YACbA,EAAA,OAAS,SACTA,EAAA,QAAU,UAbAA,OAAA,IAgBAC,OACVA,EAAA,OAAS,SACTA,EAAA,MAAQ,QACRA,EAAA,OAAS,SACTA,EAAA,QAAU,UAJAA,OAAA,IAcAC,OAEVA,EAAA,qBAAuB,sBACvBA,EAAA,mBAAqB,uBACrBA,EAAA,mBAAqB,uBACrBA,EAAA,mBAAqB,uBACrBA,EAAA,gBAAkB,oBAClBA,EAAA,cAAgB,gBAChBA,EAAA,SAAW,WACXA,EAAA,0BAA4B,0BAC5BA,EAAA,6BAA+B,6BAC/BA,EAAA,0BAA4B,0BAXlBA,OAAA,IAkJNC,EAAeN,EAAO,CAC1B,SAAUC,EAAO,EACjB,SAAUD,EAAO,CACf,IAAKA,EAAO,CACV,SAAUC,EAAO,EACjB,YAAaA,EAAO,EACpB,SAAUA,EAAO,CACnB,CAAC,CACH,CAAC,CACH,CAAC,EAEKM,EAAiBP,EAAO,CAC5B,KAAMC,EAAO,EACb,QAASA,EAAO,EAChB,YAAaA,EAAO,EACpB,QAASD,EAAO,CACd,OAAQM,EACR,SAAUA,EAAa,SAAS,CAClC,CAAC,EACD,QAASN,EAAO,CACd,SAAUC,EAAO,EAAE,MAAM,EACzB,WAAYA,EAAO,EAAE,MAAM,CAC7B,CAAC,EACD,SAAUA,EAAO,EACjB,YAAaD,EAAO,CAClB,IAAKA,EAAO,CACV,MAAOE,EAAQ,EACf,QAASD,EAAO,EAAE,MAAM,CAC1B,CAAC,CACH,CAAC,EACD,gBAAiBA,EAAO,CAC1B,CAAC,EAIYO,EAAiBC,GACrBF,EAAe,UAAUE,CAAM,EAO5BC,OACVA,EAAA,WAAa,aACbA,EAAA,IAAM,MAFIA,OAAA","sourcesContent":["import { object, string, boolean, z } from 'zod';\nimport type { JsonRpcError, EthereumProviderError, OptionalDataWithOptionalCause } from '@metamask/rpc-errors';\n\nexport enum TransactionType {\n BRIDGE = 'Bridge',\n SWAP = 'Swap',\n SEND = 'Send',\n RECEIVE = 'Receive',\n NFT_BUY = 'NFTBuy',\n APPROVE = 'Approve',\n TRANSFER = 'Transfer',\n NFT_SEND = 'NFTSend',\n NFT_RECEIVE = 'NFTReceive',\n AIRDROP = 'Airdrop',\n FILL_ORDER = 'FillOrder',\n UNWRAP = 'Unwrap',\n UNKNOWN = 'UNKNOWN',\n}\n\nexport enum TokenType {\n NATIVE = 'NATIVE',\n ERC20 = 'ERC20',\n ERC721 = 'ERC721',\n ERC1155 = 'ERC1155',\n}\n\nexport type NetworkFees = {\n low: { maxPriorityFeePerGas: bigint; maxFeePerGas: bigint };\n medium: { maxPriorityFeePerGas: bigint; maxFeePerGas: bigint };\n high: { maxPriorityFeePerGas: bigint; maxFeePerGas: bigint };\n baseFee: bigint;\n};\n\nexport enum RpcMethod {\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 WALLET_ADD_ETHEREUM_CHAIN = 'wallet_addEthereumChain',\n WALLET_SWITCH_ETHEREUM_CHAIN = 'wallet_switchEthereumChain',\n WALLET_GET_ETHEREUM_CHAIN = 'wallet_getEthereumChain',\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};\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 type Network = {\n chainId: Caip2ChainId;\n chainName: string;\n rpcUrl: string;\n networkToken: NetworkToken;\n multiContractAddress?: string;\n logoUrl?: string;\n isTestnet?: boolean;\n explorerUrl?: string;\n};\n\nexport interface Module {\n getManifest: () => Manifest | undefined;\n getBalances: () => Promise<string>;\n getTransactionHistory: (params: GetTransactionHistory) => Promise<TransactionHistoryResponse>;\n getNetworkFee: (network: Network) => Promise<NetworkFees>;\n getAddress: () => Promise<string>;\n getTokens: (network: Network) => Promise<NetworkContractToken[]>;\n onRpcRequest: (request: RpcRequest, chain: Network) => Promise<RpcResponse>;\n}\n\nexport type GetTransactionHistory = {\n network: Network;\n address: string;\n nextPageToken?: string;\n offset?: number;\n};\n\nexport type TransactionHistoryResponse = {\n transactions: Transaction[];\n nextPageToken?: string;\n};\n\nexport type Transaction = {\n isContractCall: boolean;\n isIncoming: boolean;\n isOutgoing: boolean;\n isSender: boolean;\n timestamp: number;\n hash: string;\n from: string;\n to: string;\n tokens: TxToken[];\n gasPrice?: string;\n gasUsed: string;\n txType?: TransactionType;\n chainId: string; // chainId from ActiveNetwork used to fetch tx\n method?: string;\n explorerLink: string;\n};\n\nexport interface TxToken {\n decimal?: string;\n name: string;\n symbol: string;\n amount: string;\n imageUri?: string;\n from?: RichAddress;\n to?: RichAddress;\n collectableTokenId?: string;\n type: TokenType;\n}\n\ntype RichAddress = {\n /**\n * The contract name.\n */\n name?: string;\n /**\n * The contract symbol.\n */\n symbol?: string;\n /**\n * The number of decimals the token uses. For example `6`, means to divide the token amount by `1000000` to get its user representation.\n */\n decimals?: number;\n /**\n * The logo uri for the address.\n */\n logoUri?: string;\n /**\n * A wallet or contract address in mixed-case checksum encoding.\n */\n address: string;\n};\n\nexport interface NetworkToken {\n name: string;\n symbol: string;\n description: string;\n decimals: number;\n logoUri: string;\n}\n\nexport interface NetworkContractToken {\n address: string;\n chainId?: number;\n color?: string;\n contractType: string;\n decimals: number;\n logoUri?: string;\n name: string;\n symbol: string;\n}\n\nconst sourceSchema = object({\n checksum: string(),\n location: object({\n npm: object({\n filePath: string(),\n packageName: string(),\n registry: string(),\n }),\n }),\n});\n\nconst manifestSchema = object({\n name: string(),\n version: string(),\n description: string(),\n sources: object({\n module: sourceSchema,\n provider: sourceSchema.optional(),\n }),\n network: object({\n chainIds: string().array(),\n namespaces: string().array(),\n }),\n cointype: string(),\n permissions: object({\n rpc: object({\n dapps: boolean(),\n methods: string().array(),\n }),\n }),\n manifestVersion: string(),\n});\n\nexport type Manifest = z.infer<typeof manifestSchema>;\n\nexport const parseManifest = (params: unknown): z.SafeParseReturnType<unknown, Manifest> => {\n return manifestSchema.safeParse(params);\n};\n\nexport type Caip2ChainId = string;\n\nexport type Hex = `0x${string}`;\n\nexport enum Environment {\n PRODUCTION = 'production',\n DEV = 'dev',\n}\n"]}