New Exchange Rate Mechanism

Hey everyone!
There haven’t been any news lately simply because the exchange rate canister is running smoothly. Since the canister went live, we’ve been working on several improvements that we’d like to roll out in a canister upgrade.
The upgrade would include the following:

  • The pricing has been updated in accordance with the new price function of HTTPS outcalls. In short, the number of cycles that need to be attached and the number of cycles charged have been reduced by a factor of 10!
  • The exchange rate canister now supports variable decimals. That is, the decimals field in the returned exchange rate metadata may deviate from the default value 9 to represent very small or large exchange rates.
  • Since all rates are represented as integers, the standard deviation in the metadata is now computed using an integer square-root function to minimize the use of floating-point operations.
  • The exchange rate canister now supports the upcoming dfx deps feature, which will make it possible to easily install canisters locally.
  • Several new end-to-end tests have been added to test the canister’s behavior in various scenarios.

We’d like to propose to upgrade the exchange rate canister to the latest version on the main branch (the source code is here), which contains all these changes.

If you have any questions or concerns, please let us know!
The current plan is to create an NNS proposal on Friday, June 21.

3 Likes