Skip to main content
Version: 9.2.1

Namespace: events

Functions​

isAbiEvent​

▸ isAbiEvent(object): boolean

Check if an ABI entry is related to events.

Parameters​

NameTypeDescription
objectAbiEntryan Abi entry

Returns​

boolean

true if this Abi Entry is related to an event

Example

// use of a transaction receipt

Defined in​

src/utils/events/index.ts:34


getAbiEvents​

▸ getAbiEvents(abi): AbiEvents

Retrieves the events from the given ABI (from Cairo 0 or Cairo 1 contract).

Is able to handle Cairo 1 events nested in Cairo components.

Parameters​

NameTypeDescription
abiAbiThe ABI to extract events from.

Returns​

AbiEvents

  • An object containing the hashes and the definition of the events.

Example

const result = events.getAbiEvents(abi);
// result = {
// '0x22ea134d4126804c60797e633195f8c9aa5fd6d1567e299f4961d0e96f373ee':
// { '0x34e55c1cd55f1338241b50d352f0e91c7e4ffad0e4271d64eb347589ebdfd16': {
// kind: 'struct', type: 'event',
// name: 'ka::ExComponent::ex_logic_component::Mint',
// members: [{
// name: 'spender',
// type: 'core::starknet::contract_address::ContractAddress',
// kind: 'key'},
// { name: 'value', type: 'core::integer::u256', kind: 'data' }]},
// ...

Defined in​

src/utils/events/index.ts:152


parseEvents​

▸ parseEvents(providerReceivedEvents, abiEvents, abiStructs, abiEnums, parser): ParsedEvents

Parse raw events and structure them into response object based on a contract structs and defined events

Parameters​

NameTypeDescription
providerReceivedEventsEMITTED_EVENT[]Array of raw events
abiEventsAbiEventsEvents defined in the abi
abiStructsAbiStructsStructs defined in the abi
abiEnumsAbiEnumsEnums defined in the abi
parserAbiParserInterface-

Returns​

ParsedEvents

parsed events corresponding to the abi

Example

const abiEvents = events.getAbiEvents(sierra.abi);
const abiStructs = CallData.getAbiStruct(sierra.abi);
const abiEnums = CallData.getAbiEnum(sierra.abi);
const result = events.parseEvents(myEvents, abiEvents, abiStructs, abiEnums);
// result = [{test::ExCh::ex_ch::Trade: {
maker: 7548613724711489396448209137n,
taker: 6435850562375218974960297344n,
router_maker: 0n,
}}]

Defined in​

src/utils/events/index.ts:198


addGetByPathMethod​

▸ addGetByPathMethod(parsedEvents): ParsedEvents

Add getByPath helper method to parsed events array This method allows finding events by partial key path matching

Parameters​

NameTypeDescription
parsedEventsParsedEventsArray of parsed events to enhance

Returns​

ParsedEvents

The same array with getByPath method attached

Example

const events = addGetByPathMethod(parsedEvents);
const transferEvent = events.getByPath('Transfer');

Defined in​

src/utils/events/index.ts:280


getEmittedEvents​

▸ getEmittedEvents(receipt, contractAddress?): EmittedEvent[]

Extract and prepare emitted events from a transaction receipt Optionally filters by contract address and enriches with transaction/block metadata

Parameters​

NameTypeDescription
receiptObjectTransaction receipt containing events and metadata
receipt.events?EVENT[]-
receipt.transaction_hashstring-
receipt.block_hash?string-
receipt.block_number?number-
contractAddress?stringOptional contract address to filter events by

Returns​

EmittedEvent[]

Emitted events with transaction and block context, optionally filtered

Example

// Get all emitted events
const allEvents = getEmittedEvents(receipt);

// Get events from specific contract
const contractEvents = getEmittedEvents(receipt, contractAddress);

Defined in​

src/utils/events/index.ts:309


filterEventsByAddress​

▸ filterEventsByAddress<T>(events, contractAddress): T[]

Filter events by contract address

Type parameters​

NameType
Textends Object

Parameters​

NameTypeDescription
eventsundefined | T[]Array of events to filter (defaults to empty array if undefined)
contractAddressstringAddress to filter by

Returns​

T[]

Filtered events matching the contract address

Example

const myEvents = filterEventsByAddress(allEvents, '0x123...');

Defined in​

src/utils/events/index.ts:343