Skip to main content
@tevm/voltaire
@tevm/voltaire / TransactionUrl

TransactionUrl

ERC-681 Transaction URL Format

See

https://eips.ethereum.org/EIPS/eip-681

Example

import * as TransactionUrl from './primitives/TransactionUrl/index.js';

// Parse URL
const parsed = TransactionUrl.parse('ethereum:0x1234@1?value=1000000000000000000');
// { target: AddressType, chainId: 1n, value: 1000000000000000000n }

// Format URL
const url = TransactionUrl.format({
  target: addressValue,
  chainId: 1n,
  value: 1000000000000000000n,
});
// 'ethereum:0x1234...@1?value=1000000000000000000'

// Create branded URL
const brandedUrl = TransactionUrl.from('ethereum:0x1234@1');

Classes

InvalidTransactionUrlError

Defined in: src/primitives/TransactionUrl/errors.js:4 Error thrown when a transaction URL is invalid or malformed

Extends

  • Error

Constructors

Constructor
new InvalidTransactionUrlError(message, details?): InvalidTransactionUrlError
Defined in: src/primitives/TransactionUrl/errors.js:9
Parameters
message
string Error message
details?
Record<string, unknown> Additional error details
Returns
InvalidTransactionUrlError
Overrides
Error.constructor

Properties

details
details: Record<string, unknown> | undefined
Defined in: src/primitives/TransactionUrl/errors.js:12
name
name: string
Defined in: src/primitives/TransactionUrl/errors.js:11
Inherited from
Error.name

Type Aliases

ParsedTransactionUrl

ParsedTransactionUrl = object
Defined in: src/primitives/TransactionUrl/TransactionUrlType.ts:16 Parsed ERC-681 transaction URL components

Properties

chainId?
readonly optional chainId: bigint
Defined in: src/primitives/TransactionUrl/TransactionUrlType.ts:18
data?
readonly optional data: BytesType
Defined in: src/primitives/TransactionUrl/TransactionUrlType.ts:22
functionName?
readonly optional functionName: string
Defined in: src/primitives/TransactionUrl/TransactionUrlType.ts:23
functionParams?
readonly optional functionParams: Record<string, string>
Defined in: src/primitives/TransactionUrl/TransactionUrlType.ts:24
gas?
readonly optional gas: bigint
Defined in: src/primitives/TransactionUrl/TransactionUrlType.ts:20
gasPrice?
readonly optional gasPrice: bigint
Defined in: src/primitives/TransactionUrl/TransactionUrlType.ts:21
target
readonly target: AddressType
Defined in: src/primitives/TransactionUrl/TransactionUrlType.ts:17
value?
readonly optional value: bigint
Defined in: src/primitives/TransactionUrl/TransactionUrlType.ts:19

TransactionUrl

TransactionUrl = string & object
Defined in: src/primitives/TransactionUrl/TransactionUrlType.ts:11 ERC-681 compliant transaction URL Format: ethereum:<address>[@<chainId>][/<function>][?<params>]

Type Declaration

[brand]
readonly [brand]: "TransactionUrl"

See

https://eips.ethereum.org/EIPS/eip-681

Functions

format()

format(request): TransactionUrl
Defined in: src/primitives/TransactionUrl/format.js:23 Format transaction request as ERC-681 URL

Parameters

request
ParsedTransactionUrl Transaction parameters

Returns

TransactionUrl
  • ERC-681 formatted URL

See

https://eips.ethereum.org/EIPS/eip-681

Example

import { format } from './primitives/TransactionUrl/format.js';

const url = format({
  target: addressValue,
  chainId: 1n,
  value: 1000000000000000000n,
});
// 'ethereum:0x1234...@1?value=1000000000000000000'

from()

from(url): TransactionUrl
Defined in: src/primitives/TransactionUrl/from.js:17 Create TransactionUrl from string (alias for parse)

Parameters

url
string ERC-681 URL string

Returns

TransactionUrl

Throws

if URL is malformed

Example

import * as TransactionUrl from './primitives/TransactionUrl/index.js';

const url = TransactionUrl.from('ethereum:0x1234...@1?value=1000000000000000000');

parse()

parse(url): ParsedTransactionUrl
Defined in: src/primitives/TransactionUrl/parse.js:37 Parse ERC-681 transaction URL Format: ethereum:<address>[@<chainId>][/<function>][?<params>] Examples:
  • ethereum:0x1234…
  • ethereum:0x1234@1
  • ethereum:0x1234@1?value=1000000000000000000
  • ethereum:0x1234/transfer?address=0x5678&uint256=100
Query parameters:
  • value: wei amount (decimal or hex with 0x)
  • gas: gas limit
  • gasPrice: gas price in wei
  • data: hex-encoded calldata (0x…)

Parameters

url
string ERC-681 URL

Returns

ParsedTransactionUrl

See

https://eips.ethereum.org/EIPS/eip-681

Throws

if URL is malformed

Example

import { parse } from './primitives/TransactionUrl/parse.js';

const parsed = parse('ethereum:0x1234...@1?value=1000000000000000000');
// { target: AddressType, chainId: 1n, value: 1000000000000000000n }