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