Skip to content

Conversation

@dskloetc
Copy link
Contributor

@dskloetc dskloetc commented Nov 14, 2025

OPDATA-3845

Description

proof-of-reserves depends on a lot of other adapters.
This means that if any of those adapters get released, proof-of-reserves must be released as well.
The dependencies only exist to refer to the names of these adapters.

Changes

  1. Hard code adapters names instead of depending on the adapters.
  2. Add unit tests to make sure the adapter names actually match.
  3. Move adapters to devDependencies.

Steps to Test

  1. yarn test packages/composites/proof-of-reserves/test/unit/adapter-names.test.ts
  2. Temporarily created a changeset for ada-balance and then a release and checked that proof-of-reserves was not included.

Quality Assurance

  • If a new adapter was made, or an existing one was modified so that its environment variables have changed, update the relevant infra-k8s configuration file.
  • If a new adapter was made, or an existing one was modified so that its environment variables have changed, update the relevant adapter-secrets configuration file or update the soak testing blacklist.
  • If a new adapter was made, or a new endpoint was added, update the test-payload.json file with relevant requests.
  • The branch naming follows git flow (feature/x, chore/x, release/x, hotfix/x, fix/x) or is created from Jira.
  • This is related to a maximum of one Jira story or GitHub issue.
  • Types are safe (avoid TypeScript/TSLint features like any and disable, instead use more specific types).
  • All code changes have 100% unit and integration test coverage. If testing is not applicable or too difficult to justify doing, the reasoning should be documented explicitly in the PR.

@changeset-bot
Copy link

changeset-bot bot commented Nov 14, 2025

🦋 Changeset detected

Latest commit: 49c7a49

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 2 packages
Name Type
@chainlink/proof-of-reserves-adapter Patch
@chainlink/renvm-address-set-adapter Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

@dskloetc dskloetc marked this pull request as ready for review November 14, 2025 17:41
@dskloetc dskloetc requested a review from a team November 14, 2025 17:46
Copy link
Contributor

@mxiao-cll mxiao-cll left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Need to be careful releasing this one, can you also include some sample requests that you've tested locally?

@dskloetc
Copy link
Contributor Author

I'll do it Thursday next week.

@dskloetc
Copy link
Contributor Author

Need to be careful releasing this one, can you also include some sample requests that you've tested locally?

I've tried the 54 requests from live feeds in RDD that use proof-of-reserves.
49 had an exact match and 5 had a match within 0.1%.
I tried the same without my changes and had the same result.

[ 1 / 54 ]: 0 for avalanche-fuji-testnet/contracts/0x18F9A4c5DDDc5971c2D128E7C99ADb0042B7C5a5.json
[ 2 / 54 ]: 422879950912 for avalanche-fuji-testnet/contracts/0xE3130ad77C508Ca3A682f59DC21cA7BaE60b0A8a.json
[ 3 / 54 ]: 422949328876 for avalanche-mainnet/contracts/0x461b95e560697B0C83AB569f06034832a4b62707.json
[ 4 / 54 ]: 0 for avalanche-mainnet/contracts/0x816B2DC017083D66FCe4496fae71c9285772e735.json
[ 5 / 54 ]: 10541967901835820186570 for bsc-mainnet/contracts/0x0044980acB0C01d75afF2Cc3DF2F11171442295c.json
[ 6 / 54 ]: 5503284826050000000000 for bsc-mainnet/contracts/0x11b5E92ECf80450E44E9BE2a5B7f8DD671d44f5e.json
[ 7 / 54 ]: Ratio 1.0000000000007907 for bsc-mainnet/contracts/0x9a8b0bf764D6cd177616A6133fb222ad5938b51a.json
[ 8 / 54 ]: 112704258749673899145 for bsc-mainnet/contracts/0xDa15d5A05A2813395e9A851EA463281AA1354FF7.json
[ 9 / 54 ]: 23606705428091 for ethereum-mainnet-arbitrum-1/contracts/0x29ef0aE1eDb5764b5bd2ff3a605b5d4Eb39a0d63.json
Rate limited when calling http://localhost:8082. Sleeping for 30 seconds and retrying...
Rate limited when calling http://localhost:8082. Sleeping for 30 seconds and retrying...
[ 10 / 54 ]: 1189549765963 for ethereum-mainnet-arbitrum-1/contracts/0x331480b3C79f16018704A83847db1e29d8cdce14.json
[ 11 / 54 ]: 112704258749673899145 for ethereum-mainnet-arbitrum-1/contracts/0x73b6A47371f6278F41Ec655A3a06477997912D09.json
[ 12 / 54 ]: 18350490620 for ethereum-mainnet-arbitrum-1/contracts/0xDB99d80bD3aE8dae5d929493Ddf696196f7f59f2.json
[ 13 / 54 ]: null for ethereum-mainnet-base-1/contracts/0x43F92e6805196FA6cd7a19F3d769957f95Baa261.json
[ 14 / 54 ]: 7408033091712 for ethereum-mainnet-base-1/contracts/0x45867eb09bB39766eBCee7fF9dCDFb6f6CC6f8DA.json
[ 15 / 54 ]: null for ethereum-mainnet-base-1/contracts/0xC2b36eEBE261eEEC502dFE761BA8cDB0E9bC057b.json
[ 16 / 54 ]: null for ethereum-mainnet-base-1/contracts/0xD41A2B9575eD27D38EC9B75B4d0DD9632a72e45b.json
[ 17 / 54 ]: 59205559805794 for ethereum-mainnet-optimism-1/contracts/0x067c8e71158C902Da7eD51712095663Aa90cFB0c.json
[ 18 / 54 ]: 216802708685150 for ethereum-mainnet-optimism-1/contracts/0x084a31e46d1cf4A301442A704FD6Db5c6848A668.json
[ 19 / 54 ]: 15792116549 for ethereum-mainnet-optimism-1/contracts/0x532027c797d741679a025ceA6547592388E54a0f.json
[ 20 / 54 ]: 9255205119420397811043234 for ethereum-mainnet-optimism-1/contracts/0x6ecf3b8d725beE36D577fFf954D90513863c875b.json
[ 21 / 54 ]: 17925131973087325401568776 for ethereum-mainnet-optimism-1/contracts/0x9eb9113743Bf7A1a3C8b55994CDf62917c60A23b.json
[ 22 / 54 ]: 73847435483 for ethereum-mainnet-optimism-1/contracts/0xC92524EdD3529F6D29a18c4c750927ACe7345700.json
[ 23 / 54 ]: Ratio 0.999999881670268 for ethereum-mainnet-optimism-1/contracts/0xCEd4517039bA250d8849746295ECB1426f6A9398.json
[ 24 / 54 ]: 203788274223316845682000 for ethereum-mainnet-optimism-1/contracts/0xE8A9ddc8F8c9632B3CdB49481D87ac0e2B81A837.json
[ 25 / 54 ]: 874603208373897129001096 for ethereum-mainnet-optimism-1/contracts/0xd3fE68830c858Bb8af768F6cfBbd5950f9330563.json
[ 26 / 54 ]: 112704258749673899145 for ethereum-mainnet-scroll-1/contracts/0x863451a4C718699bb3C860799a785DBd4DDf3a4D.json
[ 27 / 54 ]: Ratio 0.9999998676436195 for ethereum-testnet-sepolia-arbitrum-1/contracts/0x1a6C0506F3B19eE9A865F9a9eb203cbbb68ba371.json
[ 28 / 54 ]: 10541967901835820186570 for ethereum-testnet-sepolia-arbitrum-1/contracts/0x30eFb558bE9a16545A77bcc4A1882A7CA3D7EE2D.json
[ 29 / 54 ]: 12646190527921389846277 for ethereum-testnet-sepolia-arbitrum-1/contracts/0x5168f59641Df0b5Dcc5FEf9D9fAa963A6261A965.json
[ 30 / 54 ]: 5524276420564893572766 for ethereum-testnet-sepolia-arbitrum-1/contracts/0x71ABA29F6043D22d1615bE390bcd5554EDE9628F.json
[ 31 / 54 ]: 112704258749673899145 for ethereum-testnet-sepolia-arbitrum-1/contracts/0xB9344EFd7ee79AEF3188684cC4C4bBDa2f230192.json
[ 32 / 54 ]: 871207164760000000000 for ethereum-testnet-sepolia-arbitrum-1/contracts/0xEC8808Af92FAb19C1363cB1b5e2F76E0ce51d0b4.json
[ 33 / 54 ]: 523938291 for ethereum-testnet-sepolia/contracts/0x9f39566A833bbBA649e8F633e4d86a824EfaF4C0.json
[ 34 / 54 ]: 1189549765963 for mainnet/contracts/0x00f0eFB3d9dBe7fE91fee44aE09DAe5DFA65c382.json
[ 35 / 54 ]: 112704258749673899145 for mainnet/contracts/0x0bb1203d3Df75752723290EFB116a91a1a9196D1.json
[ 36 / 54 ]: null for mainnet/contracts/0x1669A35DA4e5a4E0e55d30B728E66bE508E11DE8.json
[ 37 / 54 ]: 7408033091712 for mainnet/contracts/0x4014F1F654a454785A6a97B9125FECFa88868192.json
[ 38 / 54 ]: 873296016830000000000 for mainnet/contracts/0x50e1007404025e412F13eD1e1C1e6F57957F6A6F.json
[ 39 / 54 ]: Ratio 0.9999998676436195 for mainnet/contracts/0x5EFFB9e0D6B472E48C542842B0306a1C12c9627c.json
[ 40 / 54 ]: 65000002350 for mainnet/contracts/0x5Eb719ab8afd65b35195A8C3FD343aD86C2044A3.json
[ 41 / 54 ]: 2077644989779663019884 for mainnet/contracts/0x601009229b0215e4FC90C10c8145E066aE03d5F9.json
[ 42 / 54 ]: 12676470019212 for mainnet/contracts/0x64DEE1Bc46e817ed93dEA4815F071B20eD218E39.json
[ 43 / 54 ]: 523938291 for mainnet/contracts/0x83cE6dbda88D4b59b370d765567d2CaB460bBdc9.json
[ 44 / 54 ]: 10541967901835820186570 for mainnet/contracts/0xD0f0efAfB63ce1e46ae1aF84BCFE2A2A175E6797.json
[ 45 / 54 ]: 23433847192546 for mainnet/contracts/0xE5490FcdFe66b1680f2b4c09f81149f0C285a2E3.json
[ 46 / 54 ]: 21956376104115 for mainnet/contracts/0xa685F0Bb86044e9c6A182A3689bBF8A98eB5764C.json
[ 47 / 54 ]: 97080763665 for mainnet/contracts/0xb49dBd447D2C3ae00B205200Fe629cA73E3E80e3.json
[ 48 / 54 ]: 5524276420564893572766 for mainnet/contracts/0xbBaf2F253Dec10c17eF9531bc8Cd7A7C708A10Bc.json
[ 49 / 54 ]: 7886506345609986307400 for mainnet/contracts/0xc0bc2B4DB974586f481C2a13549a4C61F350f8E4.json
[ 50 / 54 ]: Ratio 1.0000000143521681 for mainnet/contracts/0xcd2D4e80aA0E93d4e788f037A79ab597E0857917.json
[ 51 / 54 ]: null for matic-mainnet/contracts/0x411c996DbA9b18AAc8BED28Dda2668AFe0B407c9.json
[ 52 / 54 ]: null for matic-mainnet/contracts/0x48f2DB9212342f6F9cD695456BaD2307d147BBE6.json
[ 53 / 54 ]: null for matic-mainnet/contracts/0x5912FA33fF83d73d224Bda1Ee4B481Bdab0796a3.json
[ 54 / 54 ]: null for matic-mainnet/contracts/0xc264947786Da86BCD101aC0a7da68Cc5ae6dC5fF.json
Exact matches: 49
Close matches: 5

@dskloetc dskloetc enabled auto-merge (squash) November 20, 2025 12:48
@dskloetc dskloetc merged commit af6a86f into main Nov 20, 2025
16 checks passed
@dskloetc dskloetc deleted the kloet/decouple-por branch November 20, 2025 12:52
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants