@meshconnect/uwc-types 0.22.0 → 0.23.0-snapshot.1e5ab66
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/dist/networks.d.ts +1 -1
- package/dist/networks.d.ts.map +1 -1
- package/dist/transactions.d.ts +21 -2
- package/dist/transactions.d.ts.map +1 -1
- package/dist/transactions.js +38 -1
- package/dist/transactions.js.map +1 -1
- package/package.json +1 -1
- package/src/networks.ts +1 -0
- package/src/transactions.test.ts +53 -0
- package/src/transactions.ts +49 -2
package/dist/networks.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type NetworkId = 'eip155:1' | 'eip155:11155111' | 'solana:devnet' | 'eip155:56' | 'eip155:137' | 'eip155:43114' | 'eip155:42161' | 'eip155:10' | 'eip155:8453' | 'eip155:84532' | 'bip122:000000000019d6689c085ae165831e93' | 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' | 'tron:0x2b6653dc' | 'tron:0x94a9059e' | 'tron:0xcd8690dc' | 'eip155:81457' | 'bip122:1a91e3dace36e2be3bf030a65679fe82' | 'xrpl:0' | 'bip122:12a765e31ffd4059bada1e25190f6e98' | 'eip155:999' | 'eip155:143' | 'eip155:1329' | 'eip155:57073' | 'eip155:480' | 'eip155:4326' | 'eip155:4217' | 'eip155:25' | 'eip155:59144' | 'tvm:-239' | 'sui:mainnet';
|
|
1
|
+
export type NetworkId = 'eip155:1' | 'eip155:11155111' | 'solana:devnet' | 'eip155:56' | 'eip155:137' | 'eip155:43114' | 'eip155:42161' | 'eip155:10' | 'eip155:8453' | 'eip155:84532' | 'bip122:000000000019d6689c085ae165831e93' | 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp' | 'tron:0x2b6653dc' | 'tron:0x94a9059e' | 'tron:0xcd8690dc' | 'eip155:81457' | 'bip122:1a91e3dace36e2be3bf030a65679fe82' | 'xrpl:0' | 'bip122:12a765e31ffd4059bada1e25190f6e98' | 'eip155:999' | 'eip155:143' | 'eip155:1329' | 'eip155:57073' | 'eip155:480' | 'eip155:4326' | 'eip155:4217' | 'eip155:25' | 'eip155:59144' | 'eip155:988' | 'tvm:-239' | 'sui:mainnet';
|
|
2
2
|
export type NetworkType = 'evm' | 'solana' | 'bitcoin' | 'tron' | 'dogecoin' | 'litecoin' | 'ripple' | 'tvm' | 'sui';
|
|
3
3
|
export type Namespace = 'eip155' | 'solana' | 'bip122' | 'tron' | 'xrpl' | 'tvm' | 'sui';
|
|
4
4
|
export interface NativeCurrency {
|
package/dist/networks.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"networks.d.ts","sourceRoot":"","sources":["../src/networks.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,iBAAiB,GACjB,eAAe,GACf,WAAW,GACX,YAAY,GACZ,cAAc,GACd,cAAc,GACd,WAAW,GACX,aAAa,GACb,cAAc,GACd,yCAAyC,GACzC,yCAAyC,GACzC,iBAAiB,GACjB,iBAAiB,GACjB,iBAAiB,GACjB,cAAc,GACd,yCAAyC,GACzC,QAAQ,GACR,yCAAyC,GACzC,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,cAAc,GACd,YAAY,GACZ,aAAa,GACb,aAAa,GACb,WAAW,GACX,cAAc,GACd,UAAU,GACV,aAAa,CAAA;AAEjB,MAAM,MAAM,WAAW,GACnB,KAAK,GACL,QAAQ,GACR,SAAS,GACT,MAAM,GACN,UAAU,GACV,UAAU,GACV,QAAQ,GACR,KAAK,GACL,KAAK,CAAA;AAET,MAAM,MAAM,SAAS,GACjB,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,MAAM,GACN,KAAK,GACL,KAAK,CAAA;AAET,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,EAAE,CAAA;KACf,CAAA;CACF;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,aAAa,CAAA;CACvB;AAED,MAAM,WAAW,OAAO;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,EAAE,EAAE,SAAS,CAAA;IACb,SAAS,EAAE,SAAS,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,cAAc,CAAA;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,WAAW,EAAE,WAAW,CAAA;CACzB"}
|
|
1
|
+
{"version":3,"file":"networks.d.ts","sourceRoot":"","sources":["../src/networks.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,SAAS,GACjB,UAAU,GACV,iBAAiB,GACjB,eAAe,GACf,WAAW,GACX,YAAY,GACZ,cAAc,GACd,cAAc,GACd,WAAW,GACX,aAAa,GACb,cAAc,GACd,yCAAyC,GACzC,yCAAyC,GACzC,iBAAiB,GACjB,iBAAiB,GACjB,iBAAiB,GACjB,cAAc,GACd,yCAAyC,GACzC,QAAQ,GACR,yCAAyC,GACzC,YAAY,GACZ,YAAY,GACZ,aAAa,GACb,cAAc,GACd,YAAY,GACZ,aAAa,GACb,aAAa,GACb,WAAW,GACX,cAAc,GACd,YAAY,GACZ,UAAU,GACV,aAAa,CAAA;AAEjB,MAAM,MAAM,WAAW,GACnB,KAAK,GACL,QAAQ,GACR,SAAS,GACT,MAAM,GACN,UAAU,GACV,UAAU,GACV,QAAQ,GACR,KAAK,GACL,KAAK,CAAA;AAET,MAAM,MAAM,SAAS,GACjB,QAAQ,GACR,QAAQ,GACR,QAAQ,GACR,MAAM,GACN,MAAM,GACN,KAAK,GACL,KAAK,CAAA;AAET,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAA;IACZ,MAAM,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,MAAM,CAAA;CACjB;AAED,MAAM,WAAW,OAAO;IACtB,OAAO,EAAE;QACP,IAAI,EAAE,MAAM,EAAE,CAAA;KACf,CAAA;CACF;AAED,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,aAAa,CAAA;CACvB;AAED,MAAM,WAAW,OAAO;IACtB,UAAU,EAAE,MAAM,CAAA;IAClB,EAAE,EAAE,SAAS,CAAA;IACb,SAAS,EAAE,SAAS,CAAA;IACpB,IAAI,EAAE,MAAM,CAAA;IACZ,OAAO,EAAE,MAAM,CAAA;IACf,cAAc,EAAE,cAAc,CAAA;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAA;IACjB,cAAc,CAAC,EAAE,cAAc,CAAA;IAC/B,WAAW,EAAE,WAAW,CAAA;CACzB"}
|
package/dist/transactions.d.ts
CHANGED
|
@@ -39,7 +39,12 @@ export interface EVMContractCallRequest {
|
|
|
39
39
|
functionName: string;
|
|
40
40
|
args: unknown[];
|
|
41
41
|
from: string;
|
|
42
|
-
|
|
42
|
+
/**
|
|
43
|
+
* Native currency to attach to a payable call, in wei (unsigned). A bigint, or a
|
|
44
|
+
* decimal or `0x`-hex string — `1000000000000000000n`, `'1000000000000000000'`,
|
|
45
|
+
* and `'0xde0b6b3a7640000'` are all 1 ETH. Omitted → 0.
|
|
46
|
+
*/
|
|
47
|
+
value?: bigint | string;
|
|
43
48
|
gasConfig?: EVMGasConfig;
|
|
44
49
|
}
|
|
45
50
|
/**
|
|
@@ -49,7 +54,12 @@ export interface EVMDataTransferRequest {
|
|
|
49
54
|
from: string;
|
|
50
55
|
to: string;
|
|
51
56
|
data: string;
|
|
52
|
-
|
|
57
|
+
/**
|
|
58
|
+
* Native currency to attach to the call, in wei (unsigned). A bigint, or a
|
|
59
|
+
* decimal or `0x`-hex string — `1000000000000000000n`, `'1000000000000000000'`,
|
|
60
|
+
* and `'0xde0b6b3a7640000'` are all 1 ETH. Omitted → 0.
|
|
61
|
+
*/
|
|
62
|
+
value?: bigint | string;
|
|
53
63
|
chainId: string;
|
|
54
64
|
gasConfig?: EVMGasConfig;
|
|
55
65
|
}
|
|
@@ -237,4 +247,13 @@ export interface BatchTransactionResult {
|
|
|
237
247
|
export type TransactionRequest = EthereumTransactionRequest | SolanaTransactionRequest | TronTransactionRequest | TonNativeTransferRequest;
|
|
238
248
|
export type EthereumTransactionRequest = EVMNativeTransferRequest | EVMContractCallRequest | EVMBatchTransactionRequest | EVMDataTransferRequest;
|
|
239
249
|
export type SolanaTransactionRequest = SolanaNativeTransferRequest | SolanaTokenTransferRequest | SolanaGenericTransferRequest;
|
|
250
|
+
/**
|
|
251
|
+
* Normalize an EVM `value` (in wei) to a bigint for viem.
|
|
252
|
+
*
|
|
253
|
+
* Accepts a bigint or a decimal / `0x`-hex string. Missing/nullish → 0n. Anything
|
|
254
|
+
* else throws with context rather than silently coercing to 0 on a money path:
|
|
255
|
+
* empty/whitespace, non-numeric, binary/octal (`0b`/`0o`), negative, or a
|
|
256
|
+
* non-string/non-bigint value (e.g. a number arriving from untyped JSON).
|
|
257
|
+
*/
|
|
258
|
+
export declare function toEvmValueBigInt(value?: bigint | string | null): bigint;
|
|
240
259
|
//# sourceMappingURL=transactions.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../src/transactions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IAC5B,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CACrC;AAED;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,EAAE,CAAC,EAAE,MAAM,CAAA;IACX,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,oBAAoB,CAAC,EAAE,MAAM,CAAA;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,MAAM,CAAA;IACV,MAAM,EAAE,MAAM,CAAA;IACd,IAAI,EAAE,MAAM,CAAA;IACZ,SAAS,CAAC,EAAE,YAAY,CAAA;CACzB;AAED;;GAEG;AACH,MAAM,WAAW,sBAAsB;IACrC,eAAe,EAAE,MAAM,CAAA;IAEvB,GAAG,EAAE,GAAG,EAAE,CAAA;IACV,YAAY,EAAE,MAAM,CAAA;IACpB,IAAI,EAAE,OAAO,EAAE,CAAA;IACf,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;
|
|
1
|
+
{"version":3,"file":"transactions.d.ts","sourceRoot":"","sources":["../src/transactions.ts"],"names":[],"mappings":"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"}
|
package/dist/transactions.js
CHANGED
|
@@ -1,5 +1,42 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* EVM Transaction Types
|
|
3
3
|
*/
|
|
4
|
-
|
|
4
|
+
/**
|
|
5
|
+
* Normalize an EVM `value` (in wei) to a bigint for viem.
|
|
6
|
+
*
|
|
7
|
+
* Accepts a bigint or a decimal / `0x`-hex string. Missing/nullish → 0n. Anything
|
|
8
|
+
* else throws with context rather than silently coercing to 0 on a money path:
|
|
9
|
+
* empty/whitespace, non-numeric, binary/octal (`0b`/`0o`), negative, or a
|
|
10
|
+
* non-string/non-bigint value (e.g. a number arriving from untyped JSON).
|
|
11
|
+
*/
|
|
12
|
+
export function toEvmValueBigInt(value) {
|
|
13
|
+
if (value == null)
|
|
14
|
+
return 0n;
|
|
15
|
+
if (typeof value === 'bigint') {
|
|
16
|
+
if (value < 0n)
|
|
17
|
+
throw new Error(`Invalid EVM value: "${value}"`);
|
|
18
|
+
return value;
|
|
19
|
+
}
|
|
20
|
+
if (typeof value !== 'string') {
|
|
21
|
+
throw new Error(`Invalid EVM value: expected bigint or string, got ${typeof value}`);
|
|
22
|
+
}
|
|
23
|
+
const trimmed = value.trim();
|
|
24
|
+
if (trimmed === '') {
|
|
25
|
+
throw new Error('Invalid EVM value: empty string');
|
|
26
|
+
}
|
|
27
|
+
// BigInt() accepts 0b/0o prefixes; reject so only decimal and 0x-hex wei parse.
|
|
28
|
+
if (/^[+-]?0[bo]/i.test(trimmed)) {
|
|
29
|
+
throw new Error(`Invalid EVM value: "${value}"`);
|
|
30
|
+
}
|
|
31
|
+
let result;
|
|
32
|
+
try {
|
|
33
|
+
result = BigInt(trimmed);
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
throw new Error(`Invalid EVM value: "${value}"`);
|
|
37
|
+
}
|
|
38
|
+
if (result < 0n)
|
|
39
|
+
throw new Error(`Invalid EVM value: "${value}"`);
|
|
40
|
+
return result;
|
|
41
|
+
}
|
|
5
42
|
//# sourceMappingURL=transactions.js.map
|
package/dist/transactions.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transactions.js","sourceRoot":"","sources":["../src/transactions.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
1
|
+
{"version":3,"file":"transactions.js","sourceRoot":"","sources":["../src/transactions.ts"],"names":[],"mappings":"AAAA;;GAEG;AAmTH;;;;;;;GAOG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAA8B;IAC7D,IAAI,KAAK,IAAI,IAAI;QAAE,OAAO,EAAE,CAAA;IAC5B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,IAAI,KAAK,GAAG,EAAE;YAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,GAAG,CAAC,CAAA;QAChE,OAAO,KAAK,CAAA;IACd,CAAC;IACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,MAAM,IAAI,KAAK,CACb,qDAAqD,OAAO,KAAK,EAAE,CACpE,CAAA;IACH,CAAC;IACD,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAA;IAC5B,IAAI,OAAO,KAAK,EAAE,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAA;IACpD,CAAC;IACD,gFAAgF;IAChF,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,GAAG,CAAC,CAAA;IAClD,CAAC;IACD,IAAI,MAAc,CAAA;IAClB,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAA;IAC1B,CAAC;IAAC,MAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,GAAG,CAAC,CAAA;IAClD,CAAC;IACD,IAAI,MAAM,GAAG,EAAE;QAAE,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,GAAG,CAAC,CAAA;IACjE,OAAO,MAAM,CAAA;AACf,CAAC"}
|
package/package.json
CHANGED
package/src/networks.ts
CHANGED
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { describe, it, expect } from 'vitest'
|
|
2
|
+
import { toEvmValueBigInt } from './transactions'
|
|
3
|
+
|
|
4
|
+
describe('toEvmValueBigInt', () => {
|
|
5
|
+
const oneEth = 1000000000000000000n
|
|
6
|
+
|
|
7
|
+
it('returns 0n for undefined or null', () => {
|
|
8
|
+
expect(toEvmValueBigInt(undefined)).toBe(0n)
|
|
9
|
+
expect(toEvmValueBigInt(null as unknown as undefined)).toBe(0n)
|
|
10
|
+
})
|
|
11
|
+
|
|
12
|
+
it('passes a bigint through unchanged', () => {
|
|
13
|
+
expect(toEvmValueBigInt(oneEth)).toBe(oneEth)
|
|
14
|
+
})
|
|
15
|
+
|
|
16
|
+
it.each([
|
|
17
|
+
['decimal string', '1000000000000000000'],
|
|
18
|
+
['hex string', '0xde0b6b3a7640000'],
|
|
19
|
+
['whitespace-padded', ' 1000000000000000000 ']
|
|
20
|
+
])('parses %s to the same bigint', (_l, value) => {
|
|
21
|
+
expect(toEvmValueBigInt(value)).toBe(oneEth)
|
|
22
|
+
})
|
|
23
|
+
|
|
24
|
+
it.each(['', ' '])('throws on empty/whitespace value %j', value => {
|
|
25
|
+
expect(() => toEvmValueBigInt(value)).toThrow(
|
|
26
|
+
'Invalid EVM value: empty string'
|
|
27
|
+
)
|
|
28
|
+
})
|
|
29
|
+
|
|
30
|
+
it.each(['abc', '1.5', '1e18', '0x'])(
|
|
31
|
+
'throws with context on malformed value %j',
|
|
32
|
+
value => {
|
|
33
|
+
expect(() => toEvmValueBigInt(value)).toThrow(/Invalid EVM value/)
|
|
34
|
+
}
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
it.each(['-1', '0b1010', '0o17'])(
|
|
38
|
+
'rejects negative and binary/octal value %j',
|
|
39
|
+
value => {
|
|
40
|
+
expect(() => toEvmValueBigInt(value)).toThrow(/Invalid EVM value/)
|
|
41
|
+
}
|
|
42
|
+
)
|
|
43
|
+
|
|
44
|
+
it('rejects a negative bigint', () => {
|
|
45
|
+
expect(() => toEvmValueBigInt(-1n)).toThrow(/Invalid EVM value/)
|
|
46
|
+
})
|
|
47
|
+
|
|
48
|
+
it('rejects a non-string/non-bigint value with a clear error', () => {
|
|
49
|
+
expect(() => toEvmValueBigInt(100 as unknown as string)).toThrow(
|
|
50
|
+
/expected bigint or string, got number/
|
|
51
|
+
)
|
|
52
|
+
})
|
|
53
|
+
})
|
package/src/transactions.ts
CHANGED
|
@@ -44,7 +44,12 @@ export interface EVMContractCallRequest {
|
|
|
44
44
|
functionName: string
|
|
45
45
|
args: unknown[]
|
|
46
46
|
from: string
|
|
47
|
-
|
|
47
|
+
/**
|
|
48
|
+
* Native currency to attach to a payable call, in wei (unsigned). A bigint, or a
|
|
49
|
+
* decimal or `0x`-hex string — `1000000000000000000n`, `'1000000000000000000'`,
|
|
50
|
+
* and `'0xde0b6b3a7640000'` are all 1 ETH. Omitted → 0.
|
|
51
|
+
*/
|
|
52
|
+
value?: bigint | string
|
|
48
53
|
gasConfig?: EVMGasConfig
|
|
49
54
|
}
|
|
50
55
|
|
|
@@ -55,7 +60,12 @@ export interface EVMDataTransferRequest {
|
|
|
55
60
|
from: string
|
|
56
61
|
to: string
|
|
57
62
|
data: string
|
|
58
|
-
|
|
63
|
+
/**
|
|
64
|
+
* Native currency to attach to the call, in wei (unsigned). A bigint, or a
|
|
65
|
+
* decimal or `0x`-hex string — `1000000000000000000n`, `'1000000000000000000'`,
|
|
66
|
+
* and `'0xde0b6b3a7640000'` are all 1 ETH. Omitted → 0.
|
|
67
|
+
*/
|
|
68
|
+
value?: bigint | string
|
|
59
69
|
chainId: string
|
|
60
70
|
gasConfig?: EVMGasConfig
|
|
61
71
|
}
|
|
@@ -296,3 +306,40 @@ export type SolanaTransactionRequest =
|
|
|
296
306
|
| SolanaNativeTransferRequest
|
|
297
307
|
| SolanaTokenTransferRequest
|
|
298
308
|
| SolanaGenericTransferRequest
|
|
309
|
+
|
|
310
|
+
/**
|
|
311
|
+
* Normalize an EVM `value` (in wei) to a bigint for viem.
|
|
312
|
+
*
|
|
313
|
+
* Accepts a bigint or a decimal / `0x`-hex string. Missing/nullish → 0n. Anything
|
|
314
|
+
* else throws with context rather than silently coercing to 0 on a money path:
|
|
315
|
+
* empty/whitespace, non-numeric, binary/octal (`0b`/`0o`), negative, or a
|
|
316
|
+
* non-string/non-bigint value (e.g. a number arriving from untyped JSON).
|
|
317
|
+
*/
|
|
318
|
+
export function toEvmValueBigInt(value?: bigint | string | null): bigint {
|
|
319
|
+
if (value == null) return 0n
|
|
320
|
+
if (typeof value === 'bigint') {
|
|
321
|
+
if (value < 0n) throw new Error(`Invalid EVM value: "${value}"`)
|
|
322
|
+
return value
|
|
323
|
+
}
|
|
324
|
+
if (typeof value !== 'string') {
|
|
325
|
+
throw new Error(
|
|
326
|
+
`Invalid EVM value: expected bigint or string, got ${typeof value}`
|
|
327
|
+
)
|
|
328
|
+
}
|
|
329
|
+
const trimmed = value.trim()
|
|
330
|
+
if (trimmed === '') {
|
|
331
|
+
throw new Error('Invalid EVM value: empty string')
|
|
332
|
+
}
|
|
333
|
+
// BigInt() accepts 0b/0o prefixes; reject so only decimal and 0x-hex wei parse.
|
|
334
|
+
if (/^[+-]?0[bo]/i.test(trimmed)) {
|
|
335
|
+
throw new Error(`Invalid EVM value: "${value}"`)
|
|
336
|
+
}
|
|
337
|
+
let result: bigint
|
|
338
|
+
try {
|
|
339
|
+
result = BigInt(trimmed)
|
|
340
|
+
} catch {
|
|
341
|
+
throw new Error(`Invalid EVM value: "${value}"`)
|
|
342
|
+
}
|
|
343
|
+
if (result < 0n) throw new Error(`Invalid EVM value: "${value}"`)
|
|
344
|
+
return result
|
|
345
|
+
}
|