viem 0.0.0-main.20231112T014851 → 0.0.0-main.20231112T061346

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 (64) hide show
  1. package/_cjs/errors/node.js +11 -11
  2. package/_cjs/errors/node.js.map +1 -1
  3. package/_cjs/errors/rpc.js +18 -18
  4. package/_cjs/errors/rpc.js.map +1 -1
  5. package/_cjs/errors/version.js +1 -1
  6. package/_cjs/utils/formatters/transaction.js +14 -0
  7. package/_cjs/utils/formatters/transaction.js.map +1 -1
  8. package/_esm/errors/node.js +11 -22
  9. package/_esm/errors/node.js.map +1 -1
  10. package/_esm/errors/rpc.js +18 -36
  11. package/_esm/errors/rpc.js.map +1 -1
  12. package/_esm/errors/version.js +1 -1
  13. package/_esm/utils/formatters/transaction.js +16 -0
  14. package/_esm/utils/formatters/transaction.js.map +1 -1
  15. package/_types/chains/celo/formatters.d.ts +24 -13
  16. package/_types/chains/celo/formatters.d.ts.map +1 -1
  17. package/_types/chains/definitions/base.d.ts +18 -10
  18. package/_types/chains/definitions/base.d.ts.map +1 -1
  19. package/_types/chains/definitions/baseGoerli.d.ts +18 -10
  20. package/_types/chains/definitions/baseGoerli.d.ts.map +1 -1
  21. package/_types/chains/definitions/baseSepolia.d.ts +18 -10
  22. package/_types/chains/definitions/baseSepolia.d.ts.map +1 -1
  23. package/_types/chains/definitions/celo.d.ts +24 -13
  24. package/_types/chains/definitions/celo.d.ts.map +1 -1
  25. package/_types/chains/definitions/celoAlfajores.d.ts +24 -13
  26. package/_types/chains/definitions/celoAlfajores.d.ts.map +1 -1
  27. package/_types/chains/definitions/celoCannoli.d.ts +24 -13
  28. package/_types/chains/definitions/celoCannoli.d.ts.map +1 -1
  29. package/_types/chains/definitions/optimism.d.ts +18 -10
  30. package/_types/chains/definitions/optimism.d.ts.map +1 -1
  31. package/_types/chains/definitions/optimismGoerli.d.ts +18 -10
  32. package/_types/chains/definitions/optimismGoerli.d.ts.map +1 -1
  33. package/_types/chains/definitions/optimismSepolia.d.ts +18 -10
  34. package/_types/chains/definitions/optimismSepolia.d.ts.map +1 -1
  35. package/_types/chains/definitions/zkSync.d.ts +11 -0
  36. package/_types/chains/definitions/zkSync.d.ts.map +1 -1
  37. package/_types/chains/definitions/zkSyncTestnet.d.ts +11 -0
  38. package/_types/chains/definitions/zkSyncTestnet.d.ts.map +1 -1
  39. package/_types/chains/definitions/zora.d.ts +18 -10
  40. package/_types/chains/definitions/zora.d.ts.map +1 -1
  41. package/_types/chains/definitions/zoraSepolia.d.ts +18 -10
  42. package/_types/chains/definitions/zoraSepolia.d.ts.map +1 -1
  43. package/_types/chains/definitions/zoraTestnet.d.ts +18 -10
  44. package/_types/chains/definitions/zoraTestnet.d.ts.map +1 -1
  45. package/_types/chains/optimism/formatters.d.ts +18 -10
  46. package/_types/chains/optimism/formatters.d.ts.map +1 -1
  47. package/_types/chains/zksync/formatters.d.ts +11 -0
  48. package/_types/chains/zksync/formatters.d.ts.map +1 -1
  49. package/_types/errors/version.d.ts +1 -1
  50. package/_types/types/rpc.d.ts +2 -2
  51. package/_types/types/rpc.d.ts.map +1 -1
  52. package/_types/types/transaction.d.ts +10 -1
  53. package/_types/types/transaction.d.ts.map +1 -1
  54. package/_types/types/utils.d.ts +8 -0
  55. package/_types/types/utils.d.ts.map +1 -1
  56. package/_types/utils/formatters/transaction.d.ts +1 -1
  57. package/_types/utils/formatters/transaction.d.ts.map +1 -1
  58. package/_types/utils/formatters/transactionRequest.d.ts +1 -1
  59. package/errors/version.ts +1 -1
  60. package/package.json +1 -1
  61. package/types/rpc.ts +15 -6
  62. package/types/transaction.ts +10 -1
  63. package/types/utils.ts +11 -0
  64. package/utils/formatters/transaction.ts +17 -2
@@ -147,6 +147,14 @@ export type UnionOmit<T, K extends keyof any> = T extends any ? Omit<T, K> : nev
147
147
  * => { a?: string, b: number }
148
148
  */
149
149
  export type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>;
150
+ /**
151
+ * @description Creates a type that is a partial of T, but with the required keys K.
152
+ *
153
+ * @example
154
+ * PartialBy<{ a: string, b: number } | { a: string, b: undefined, c: number }, 'a'>
155
+ * => { a?: string, b: number } | { a?: string, b: undefined, c: number }
156
+ */
157
+ export type UnionPartialBy<T, K extends keyof T> = T extends any ? PartialBy<T, K> : never;
150
158
  /**
151
159
  * @description Combines members of an intersection into a readable type.
152
160
  *
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../types/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../types/utils.ts"],"names":[],"mappings":"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"}
@@ -22,7 +22,7 @@ export declare const transactionType: {
22
22
  export type FormatTransactionErrorType = ErrorType;
23
23
  export declare function formatTransaction(transaction: Partial<RpcTransaction>): Transaction;
24
24
  export type DefineTransactionErrorType = DefineFormatterErrorType | ErrorType;
25
- export declare const defineTransaction: <TOverrideParameters, TOverrideReturnType, TExclude extends ("type" | "gas" | "value" | "gasPrice" | "maxFeePerGas" | "maxPriorityFeePerGas" | "blockHash" | "blockNumber" | "from" | "hash" | "input" | "nonce" | "r" | "s" | "to" | "transactionIndex" | "v" | "accessList" | "chainId" | keyof TOverrideParameters)[] = []>({ exclude, format: overrides, }: {
25
+ export declare const defineTransaction: <TOverrideParameters, TOverrideReturnType, TExclude extends ("yParity" | "blockHash" | "blockNumber" | "from" | "gas" | "hash" | "input" | "nonce" | "r" | "s" | "to" | "transactionIndex" | "v" | "value" | "type" | "gasPrice" | "maxFeePerGas" | "maxPriorityFeePerGas" | "accessList" | "chainId" | keyof TOverrideParameters)[] = []>({ exclude, format: overrides, }: {
26
26
  exclude?: TExclude | undefined;
27
27
  format: (_: TOverrideParameters) => TOverrideReturnType;
28
28
  }) => {
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../utils/formatters/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,EACV,4BAA4B,EAC5B,+BAA+B,EAChC,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,KAAK,wBAAwB,EAAmB,MAAM,gBAAgB,CAAA;AAE/E,KAAK,8BAA8B,GAC/B,WAAW,GACX,aAAa,GACb,kBAAkB,CAAA;AAEtB,MAAM,MAAM,oBAAoB,CAC9B,MAAM,SAAS;IAAE,UAAU,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;CAAE,GAAG,SAAS,GAC3D;IAAE,UAAU,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;CAAE,GACpC,SAAS,EACb,SAAS,SAAS,QAAQ,GAAG,QAAQ,EACrC,oBAAoB,GAAG,+BAA+B,CACpD,MAAM,EACN,aAAa,EACb,WAAW,CACZ,EACD,4BAA4B,SAAS,MAAM,GAAG,8BAA8B,GAC1E,4BAA4B,CAAC,MAAM,EAAE,aAAa,CAAC,IACnD,SAAS,CAAC,oBAAoB,EAAE,8BAA8B,CAAC,GAAG;KACnE,CAAC,IAAI,4BAA4B,GAAG,KAAK;CAC3C,GAAG,IAAI,CACJ,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,SAAS,SAAS,GAAG,IAAI,GAAG,KAAK,CAAC,EACvE,8BAA8B,CAC/B,CAAA;AAEH,eAAO,MAAM,eAAe;;;;CAIlB,CAAA;AAEV,MAAM,MAAM,0BAA0B,GAAG,SAAS,CAAA;AAElD,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,cAAc,CAAC,eAqCrE;AAED,MAAM,MAAM,0BAA0B,GAAG,wBAAwB,GAAG,SAAS,CAAA;AAE7E,eAAO,MAAM,iBAAiB;;;;;;;CAG7B,CAAA"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../../utils/formatters/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAA;AACtD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAA;AACpD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,sBAAsB,CAAA;AACjD,OAAO,KAAK,EACV,4BAA4B,EAC5B,+BAA+B,EAChC,MAAM,sBAAsB,CAAA;AAC7B,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AACxD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,4BAA4B,CAAA;AAC7D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAA;AAErD,OAAO,EAAE,KAAK,wBAAwB,EAAmB,MAAM,gBAAgB,CAAA;AAE/E,KAAK,8BAA8B,GAC/B,WAAW,GACX,aAAa,GACb,kBAAkB,CAAA;AAEtB,MAAM,MAAM,oBAAoB,CAC9B,MAAM,SAAS;IAAE,UAAU,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;CAAE,GAAG,SAAS,GAC3D;IAAE,UAAU,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC,CAAA;CAAE,GACpC,SAAS,EACb,SAAS,SAAS,QAAQ,GAAG,QAAQ,EACrC,oBAAoB,GAAG,+BAA+B,CACpD,MAAM,EACN,aAAa,EACb,WAAW,CACZ,EACD,4BAA4B,SAAS,MAAM,GAAG,8BAA8B,GAC1E,4BAA4B,CAAC,MAAM,EAAE,aAAa,CAAC,IACnD,SAAS,CAAC,oBAAoB,EAAE,8BAA8B,CAAC,GAAG;KACnE,CAAC,IAAI,4BAA4B,GAAG,KAAK;CAC3C,GAAG,IAAI,CACJ,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,SAAS,SAAS,GAAG,IAAI,GAAG,KAAK,CAAC,EACvE,8BAA8B,CAC/B,CAAA;AAEH,eAAO,MAAM,eAAe;;;;CAIlB,CAAA;AAEV,MAAM,MAAM,0BAA0B,GAAG,SAAS,CAAA;AAElD,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,OAAO,CAAC,cAAc,CAAC,eAoDrE;AAED,MAAM,MAAM,0BAA0B,GAAG,wBAAwB,GAAG,SAAS,CAAA;AAE7E,eAAO,MAAM,iBAAiB;;;;;;;CAG7B,CAAA"}
@@ -12,7 +12,7 @@ export declare const rpcTransactionType: {
12
12
  export type FormatTransactionRequestErrorType = ErrorType;
13
13
  export declare function formatTransactionRequest(transactionRequest: Partial<TransactionRequest>): RpcTransactionRequest;
14
14
  export type DefineTransactionRequestErrorType = DefineFormatterErrorType | ErrorType;
15
- export declare const defineTransactionRequest: <TOverrideParameters, TOverrideReturnType, TExclude extends ("type" | "gas" | "value" | "gasPrice" | "maxFeePerGas" | "maxPriorityFeePerGas" | "from" | "nonce" | "to" | "accessList" | "data" | keyof TOverrideParameters)[] = []>({ exclude, format: overrides, }: {
15
+ export declare const defineTransactionRequest: <TOverrideParameters, TOverrideReturnType, TExclude extends ("from" | "gas" | "nonce" | "to" | "value" | "type" | "gasPrice" | "maxFeePerGas" | "maxPriorityFeePerGas" | "accessList" | "data" | keyof TOverrideParameters)[] = []>({ exclude, format: overrides, }: {
16
16
  exclude?: TExclude | undefined;
17
17
  format: (_: TOverrideParameters) => TOverrideReturnType;
18
18
  }) => {
package/errors/version.ts CHANGED
@@ -1 +1 @@
1
- export const version = '0.0.0-main.20231112T014851'
1
+ export const version = '0.0.0-main.20231112T061346'
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "viem",
3
3
  "description": "TypeScript Interface for Ethereum",
4
- "version": "0.0.0-main.20231112T014851",
4
+ "version": "0.0.0-main.20231112T061346",
5
5
  "type": "module",
6
6
  "main": "./_cjs/index.js",
7
7
  "module": "./_esm/index.js",
package/types/rpc.ts CHANGED
@@ -17,7 +17,7 @@ import type {
17
17
  TransactionRequestEIP2930,
18
18
  TransactionRequestLegacy,
19
19
  } from './transaction.js'
20
- import type { UnionOmit } from './utils.js'
20
+ import type { UnionOmit, UnionPartialBy } from './utils.js'
21
21
 
22
22
  export type Index = `0x${string}`
23
23
  export type Quantity = `0x${string}`
@@ -46,9 +46,18 @@ export type RpcTransactionRequest =
46
46
  | TransactionRequestLegacy<Quantity, Index, '0x0'>
47
47
  | TransactionRequestEIP2930<Quantity, Index, '0x1'>
48
48
  | TransactionRequestEIP1559<Quantity, Index, '0x2'>
49
- export type RpcTransaction<TPending extends boolean = boolean> = UnionOmit<
50
- | TransactionLegacy<Quantity, Index, TPending, '0x0'>
51
- | TransactionEIP2930<Quantity, Index, TPending, '0x1'>
52
- | TransactionEIP1559<Quantity, Index, TPending, '0x2'>,
53
- 'typeHex'
49
+ export type RpcTransaction<
50
+ TPending extends boolean = boolean,
51
+ // `yParity` is optional on the RPC type as some nodes do not return it
52
+ // for 1559 & 2930 transactions (they should!).
53
+ _optionalProperties extends 'yParity' = 'yParity',
54
+ _excludedProperties extends string = 'typeHex',
55
+ > = UnionOmit<
56
+ UnionPartialBy<
57
+ | TransactionLegacy<Quantity, Index, TPending, '0x0'>
58
+ | TransactionEIP2930<Quantity, Index, TPending, '0x1'>
59
+ | TransactionEIP1559<Quantity, Index, TPending, '0x2'>,
60
+ _optionalProperties
61
+ >,
62
+ _excludedProperties
54
63
  >
@@ -80,16 +80,21 @@ export type TransactionBase<
80
80
  v: TQuantity
81
81
  /** Value in wei sent with this transaction */
82
82
  value: TQuantity
83
+ /** The parity of the y-value of the secp256k1 signature. */
84
+ yParity: TIndex
83
85
  }
84
86
  export type TransactionLegacy<
85
87
  TQuantity = bigint,
86
88
  TIndex = number,
87
89
  TPending extends boolean = boolean,
88
90
  TType = 'legacy',
89
- > = TransactionBase<TQuantity, TIndex, TPending> &
91
+ > = Omit<TransactionBase<TQuantity, TIndex, TPending>, 'yParity'> &
90
92
  FeeValuesLegacy<TQuantity> & {
93
+ /** EIP-2930 Access List. */
91
94
  accessList?: never
95
+ /** Chain ID that this transaction is valid on. */
92
96
  chainId?: TIndex
97
+ yParity?: never
93
98
  type: TType
94
99
  }
95
100
  export type TransactionEIP2930<
@@ -99,7 +104,9 @@ export type TransactionEIP2930<
99
104
  TType = 'eip2930',
100
105
  > = TransactionBase<TQuantity, TIndex, TPending> &
101
106
  FeeValuesLegacy<TQuantity> & {
107
+ /** EIP-2930 Access List. */
102
108
  accessList: AccessList
109
+ /** Chain ID that this transaction is valid on. */
103
110
  chainId: TIndex
104
111
  type: TType
105
112
  }
@@ -110,7 +117,9 @@ export type TransactionEIP1559<
110
117
  TType = 'eip1559',
111
118
  > = TransactionBase<TQuantity, TIndex, TPending> &
112
119
  FeeValuesEIP1559<TQuantity> & {
120
+ /** EIP-2930 Access List. */
113
121
  accessList: AccessList
122
+ /** Chain ID that this transaction is valid on. */
114
123
  chainId: TIndex
115
124
  type: TType
116
125
  }
package/types/utils.ts CHANGED
@@ -194,6 +194,17 @@ export type UnionOmit<T, K extends keyof any> = T extends any
194
194
  */
195
195
  export type PartialBy<T, K extends keyof T> = Omit<T, K> & Partial<Pick<T, K>>
196
196
 
197
+ /**
198
+ * @description Creates a type that is a partial of T, but with the required keys K.
199
+ *
200
+ * @example
201
+ * PartialBy<{ a: string, b: number } | { a: string, b: undefined, c: number }, 'a'>
202
+ * => { a?: string, b: number } | { a?: string, b: undefined, c: number }
203
+ */
204
+ export type UnionPartialBy<T, K extends keyof T> = T extends any
205
+ ? PartialBy<T, K>
206
+ : never
207
+
197
208
  /**
198
209
  * @description Combines members of an intersection into a readable type.
199
210
  *
@@ -68,18 +68,33 @@ export function formatTransaction(transaction: Partial<RpcTransaction>) {
68
68
  typeHex: transaction.type ? transaction.type : undefined,
69
69
  value: transaction.value ? BigInt(transaction.value) : undefined,
70
70
  v: transaction.v ? BigInt(transaction.v) : undefined,
71
- }
71
+ } as Transaction
72
+
73
+ transaction_.yParity = (() => {
74
+ // If `yParity` is provided, we will use it.
75
+ if (transaction.yParity) return Number(transaction.yParity)
76
+
77
+ // If no `yParity` provided, try derive from `v`.
78
+ if (typeof transaction_.v === 'bigint') {
79
+ if (transaction_.v === 0n || transaction_.v === 27n) return 0
80
+ if (transaction_.v === 1n || transaction_.v === 28n) return 1
81
+ if (transaction_.v >= 35n) return transaction_.v % 2n === 0n ? 1 : 0
82
+ }
83
+
84
+ return undefined
85
+ })()
72
86
 
73
87
  if (transaction_.type === 'legacy') {
74
88
  delete transaction_.accessList
75
89
  delete transaction_.maxFeePerGas
76
90
  delete transaction_.maxPriorityFeePerGas
91
+ delete transaction_.yParity
77
92
  }
78
93
  if (transaction_.type === 'eip2930') {
79
94
  delete transaction_.maxFeePerGas
80
95
  delete transaction_.maxPriorityFeePerGas
81
96
  }
82
- return transaction_ as Transaction
97
+ return transaction_
83
98
  }
84
99
 
85
100
  export type DefineTransactionErrorType = DefineFormatterErrorType | ErrorType