with contract_events as (
select
OBJECT_CONSTRUCT('topics', topics, 'data', data, 'address', contract_address) AS event_data,
utils.udf_evm_decode_log(parse_json('{{abi}}'), event_data) AS decoded_data,
decoded_data[0]:name::string AS event_name
from monad.testnet.fact_event_logs l
where l.contract_address = lower('{{contract_address}}')
)
select count(*) from contract_events where event_name = 'UserContributed';