ergoplatform / oracle-core

Core off-chain component of Oracle Pools
Apache License 2.0
61 stars 37 forks source link

Possible error on update-pool in case of changing the update contract parameters (i.e. min_votes) #293

Closed greenhat closed 1 year ago

greenhat commented 1 year ago

While digging into #291 I found that in update-pool command we take the update box from the scan and copy update contract from it into the new update box. I suspect that it will not work if a new update NFT is minted (update contract parameters are changed, think changing min_votes) because the scan will only find update box with the "old" update NFT and not the new update box with the new update NFT minted on prepare-update-pool command.

greenhat commented 1 year ago

It's fine. The pool box will have a new update NFT encoded in the contract, and this NFT is in the new update box with the new update contract, which was created with the prepare-update command. The update box created by update-pool command has the old update NFT and is simply ignored from the moment the new pool box is issued. From this moment pool box can only be updated via the update box with the new update NFT.