Issue: Sentinel does not pull contract ABI

Hey Guys,

I am uploading our contracts to defender using the defender-admin-client. We supply an ABI for each contract that we upload.
However, when I then want to create a sentinel in the Defender UI and choose one of these contracts, it does not pull the ABI.
What could cause this issue and how can I make it pull the ABI we've uploaded?

Hey @denyo1986! This is something we're currently working on. Today, contracts uploaded in Admins do not yet share their information (ABI included) with contracts used on Sentinels, as they are set up as independent modules under the hood.

However, both Admin and Sentinels get the contract's ABI from Etherscan or Sourcify, so you can automate the process of fetching an ABI by verifying their source.


thanks for the quick response.
That is very unfortunate and definitely not expected. Do you have an ETA on when this feature will be available?
Our contracts are not open source (yet), so the workaround you've provided does not work for us unfortunately.

1 Like

We don't have an ETA yet, but we'll make sure to prioritize this based on your request.

We are also entertaining another feature: programmatic set up of Sentinels via API. Do you think that would help?

Yes, that would actually help a lot.
I was one of the people who requested that here in the forum :slight_smile:

1 Like

I also just saw how unfortunate it is, the ABI is not being fetched automatically.
We have UUPS contracts, so the ABI must be inserted manually, and manually updated after each upgrade.

Needing to insert into Sentinel means that every Sentinel-Notifier, I have to update the ABI after an upgrade. That is very error prone and not scalable.

Hey Marcel! While you do need to update the ABI manually after each update, Defender should automatically fetch the implementation ABI (and not the proxy's) when you first create the Sentinel, as long as the contract is verified on etherscan or sourcify. Let us know if this is not the case!

Maybe it's a general problem with contracts on polygon. Neither for Sentinel, nor for the usual contracts, the ABI gets fetched automatically.

That being said, I'd expect that Sentinel would automatically use the provided ABI from the stored contract inside OZ.

Definitely agree on this.

Indeed it is, thanks for helping us uncover it! Defender is still using the old blockscout-based explorer for Polygon, instead of the new etherscan-based. We'll roll out a fix early next week.