@0xtorch/evm 0.0.42 → 0.0.44

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.
package/_types/index.d.ts CHANGED
@@ -12,5 +12,7 @@ export type { Explorer } from './explorers';
12
12
  export { getTransactionDetail } from './getTransactionDetail';
13
13
  export { isHex, parsedLogSchema, toLowerHex } from './types';
14
14
  export type { Erc1155NftId, Erc1155Token, Erc1155Transfer, Erc20Token, Erc20Transfer, Erc721NftId, Erc721Token, Erc721Transfer, EvmAccount, Hex, InputData, InternalTransaction, LogData, LowerHex, TransactionDecoded, TransactionDetail, TransactionFull, TransactionSource, } from './types';
15
+ export { evmAddressPremitiveSchema, evmAddressSchema } from './types/address';
16
+ export type { EvmAddress, EvmAddressPrimitive } from './types/address';
15
17
  export { createErc1155NftId, createErc721NftId, createEvmActionSource, createEvmAddressId, createEvmCurrencyId, isErc1155NftId, isErc721NftId, } from './utils';
16
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AACjE,OAAO,EACL,sBAAsB,EACtB,WAAW,EACX,aAAa,EACb,cAAc,EACd,WAAW,EACX,eAAe,EACf,QAAQ,EACR,uBAAuB,EACvB,kBAAkB,GACnB,MAAM,YAAY,CAAA;AACnB,YAAY,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAA;AAChF,YAAY,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAA;AAC3C,OAAO,EACL,mBAAmB,EACnB,2BAA2B,EAC3B,aAAa,EACb,qBAAqB,EACrB,kBAAkB,EAClB,0BAA0B,EAC1B,YAAY,EACZ,oBAAoB,EACpB,WAAW,EACX,mBAAmB,EACnB,sBAAsB,EACtB,4BAA4B,EAC5B,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,2BAA2B,EAC3B,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,oBAAoB,EACpB,mBAAmB,EACnB,yBAAyB,EACzB,iBAAiB,EACjB,uBAAuB,EACvB,gBAAgB,EAChB,sBAAsB,EACtB,uBAAuB,EACvB,6BAA6B,EAC7B,uBAAuB,EACvB,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,EACzB,oBAAoB,EACpB,0BAA0B,EAC1B,gBAAgB,EAChB,sBAAsB,EACtB,mBAAmB,EACnB,yBAAyB,EACzB,qBAAqB,EACrB,2BAA2B,EAC3B,gBAAgB,EAChB,sBAAsB,EACtB,gBAAgB,EAChB,wBAAwB,EACxB,cAAc,EACd,sBAAsB,EACtB,8BAA8B,EAC9B,aAAa,EACb,qBAAqB,EACrB,oBAAoB,EACpB,4BAA4B,EAC5B,cAAc,EACd,sBAAsB,EACtB,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,EACxB,iBAAiB,EACjB,yBAAyB,EACzB,aAAa,EACb,qBAAqB,EACrB,gBAAgB,EAChB,wBAAwB,EACxB,kBAAkB,EAClB,0BAA0B,EAC1B,aAAa,EACb,qBAAqB,GACtB,MAAM,UAAU,CAAA;AACjB,YAAY,EAAE,KAAK,EAAE,MAAM,UAAU,CAAA;AACrC,OAAO,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAA;AAC5C,OAAO,EACL,OAAO,EACP,8BAA8B,EAC9B,sBAAsB,EACtB,uBAAuB,GACxB,MAAM,WAAW,CAAA;AAClB,YAAY,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EACL,gBAAgB,EAChB,eAAe,EACf,mBAAmB,GACpB,MAAM,aAAa,CAAA;AACpB,YAAY,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAA;AAC7D,OAAO,EAAE,KAAK,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,SAAS,CAAA;AAC5D,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,UAAU,EACV,aAAa,EACb,WAAW,EACX,WAAW,EACX,cAAc,EACd,UAAU,EACV,GAAG,EACH,SAAS,EACT,mBAAmB,EACnB,OAAO,EACP,QAAQ,EACR,kBAAkB,EAClB,iBAAiB,EACjB,eAAe,EACf,iBAAiB,GAClB,MAAM,SAAS,CAAA;AAChB,OAAO,EACL,kBAAkB,EAClB,iBAAiB,EACjB,qBAAqB,EACrB,kBAAkB,EAClB,mBAAmB,EACnB,cAAc,EACd,aAAa,GACd,MAAM,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { Abi } from 'viem';
2
+ import { z } from 'zod';
3
+ export declare const evmAddressPremitiveSchema: z.ZodObject<{
4
+ chainId: z.ZodNumber;
5
+ address: z.ZodString;
6
+ label: z.ZodOptional<z.ZodString>;
7
+ isSpam: z.ZodOptional<z.ZodBoolean>;
8
+ appId: z.ZodOptional<z.ZodString>;
9
+ abi: z.ZodOptional<z.ZodString>;
10
+ }, "strip", z.ZodTypeAny, {
11
+ chainId: number;
12
+ address: string;
13
+ label?: string | undefined;
14
+ isSpam?: boolean | undefined;
15
+ appId?: string | undefined;
16
+ abi?: string | undefined;
17
+ }, {
18
+ chainId: number;
19
+ address: string;
20
+ label?: string | undefined;
21
+ isSpam?: boolean | undefined;
22
+ appId?: string | undefined;
23
+ abi?: string | undefined;
24
+ }>;
25
+ export declare const evmAddressSchema: z.ZodObject<{
26
+ chainId: z.ZodNumber;
27
+ label: z.ZodOptional<z.ZodString>;
28
+ isSpam: z.ZodOptional<z.ZodBoolean>;
29
+ appId: z.ZodOptional<z.ZodString>;
30
+ address: z.ZodEffects<z.ZodString, `0x${Lowercase<string>}`, string>;
31
+ abi: z.ZodOptional<z.ZodEffects<z.ZodString, Abi, string>>;
32
+ }, "strip", z.ZodTypeAny, {
33
+ chainId: number;
34
+ address: `0x${Lowercase<string>}`;
35
+ label?: string | undefined;
36
+ isSpam?: boolean | undefined;
37
+ appId?: string | undefined;
38
+ abi?: Abi | undefined;
39
+ }, {
40
+ chainId: number;
41
+ address: string;
42
+ label?: string | undefined;
43
+ isSpam?: boolean | undefined;
44
+ appId?: string | undefined;
45
+ abi?: string | undefined;
46
+ }>;
47
+ export type EvmAddressPrimitive = z.infer<typeof evmAddressPremitiveSchema>;
48
+ export type EvmAddress = z.infer<typeof evmAddressSchema>;
49
+ //# sourceMappingURL=address.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"address.d.ts","sourceRoot":"","sources":["../../types/address.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,MAAM,CAAA;AAC/B,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAA;AAGvB,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;EAOpC,CAAA;AAEF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;EAiB3B,CAAA;AAEF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,yBAAyB,CAAC,CAAA;AAE3E,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAA"}
@@ -448,12 +448,13 @@ const getAmountByTransferCustomAmountComponent = <
448
448
  readonly chain: Chain
449
449
  } & Target<Price>): BigDecimal => {
450
450
  const { plus, value } = component
451
- if ('decimals' in value) {
451
+ if (typeof value === 'string') {
452
+ const valueBigDecimal = createBigDecimal(value)
452
453
  return plus
453
- ? value
454
+ ? valueBigDecimal
454
455
  : {
455
- value: value.value * -1n,
456
- decimals: value.decimals,
456
+ value: valueBigDecimal.value * -1n,
457
+ decimals: valueBigDecimal.decimals,
457
458
  }
458
459
  }
459
460
  switch (value.type) {
@@ -1,4 +1,3 @@
1
- import { createBigDecimal } from '@0xtorch/big-decimal'
2
1
  import { crossTypeSchema, normalActionActionSchema } from '@0xtorch/core'
3
2
  import { z } from 'zod'
4
3
  import { isHex, toLowerHex } from '../../../types'
@@ -318,10 +317,7 @@ export const transferCustomAmountComponentSchema = z.object({
318
317
  plus: z.boolean(),
319
318
  value: z.union([
320
319
  // big-decimal
321
- z
322
- .string()
323
- .regex(/^\d+(\.\d+)?$/)
324
- .transform((x) => createBigDecimal(x)),
320
+ z.string().regex(/^\d+(\.\d+)?$/),
325
321
  // value
326
322
  valueComponentSchema,
327
323
  // internal
package/index.ts CHANGED
@@ -118,6 +118,8 @@ export type {
118
118
  TransactionFull,
119
119
  TransactionSource,
120
120
  } from './types'
121
+ export { evmAddressPremitiveSchema, evmAddressSchema } from './types/address'
122
+ export type { EvmAddress, EvmAddressPrimitive } from './types/address'
121
123
  export {
122
124
  createErc1155NftId,
123
125
  createErc721NftId,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@0xtorch/evm",
3
- "version": "0.0.42",
3
+ "version": "0.0.44",
4
4
  "description": "Cryptorch EVM extension",
5
5
  "keywords": [
6
6
  "cryptorch",
@@ -0,0 +1,36 @@
1
+ import { Abi as AbiSchema } from 'abitype/zod'
2
+ import type { Abi } from 'viem'
3
+ import { z } from 'zod'
4
+ import { isHex, toLowerHex } from './hex'
5
+
6
+ export const evmAddressPremitiveSchema = z.object({
7
+ chainId: z.number().int(),
8
+ address: z.string().regex(/^0x[\dA-Fa-f]{40}$/),
9
+ label: z.string().optional(),
10
+ isSpam: z.boolean().optional(),
11
+ appId: z.string().optional(),
12
+ abi: z.string().optional(),
13
+ })
14
+
15
+ export const evmAddressSchema = evmAddressPremitiveSchema.extend({
16
+ address: z
17
+ .string()
18
+ .regex(/^0x[\dA-Fa-f]{40}$/)
19
+ .transform((v) => (isHex(v) ? toLowerHex(v) : '0x')),
20
+ abi: z
21
+ .string()
22
+ .transform((value, context): Abi => {
23
+ try {
24
+ const abi = AbiSchema.parse(JSON.parse(value))
25
+ return abi
26
+ } catch {
27
+ context.addIssue({ code: 'custom', message: 'Invalid ABI format' })
28
+ return z.NEVER
29
+ }
30
+ })
31
+ .optional(),
32
+ })
33
+
34
+ export type EvmAddressPrimitive = z.infer<typeof evmAddressPremitiveSchema>
35
+
36
+ export type EvmAddress = z.infer<typeof evmAddressSchema>