Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: vat-safe denomHash using noble sha256 (#9576)
refs: #9211 ## Description Prototyping for #9211 suggests we'll want to be [derive IBC denoms](https://tutorials.cosmos.network/tutorials/6-ibc-dev/#how-are-ibc-denoms-derived) using a hash of a path such as `transfer/channel-0/uatom` -> `ibc/27394FB092D2ECCD56123C74F36E4C1F926001CEADA9CA97EA622B25F41E5EB2`. I tried to use the sha256 function from `@cosmjs/crypto`, but I got error's about node's `crypto` module. `@cosmjs/crypto` imports an old version of `@noble/hashes`. The current version seems to be vat-safe. ### Scaling Considerations Compute performance: Doing a sha256 computation on XS in pure JS seems a little whacky. We could consider dropping down to C like we do for base64. But since this is a constant time operation, it doesn't seem worthwhile. Bundle size: A base64 encoded bundle with just this module seems to be around 500k. ``` ┌──────────────────────────────┬────────┐ │ (index) │ Values │ ├──────────────────────────────┼────────┤ │ @agoric/orchestration-v0.1.0 │ 1702 │ │ @noble/hashes-v1.4.0 │ 18820 │ └──────────────────────────────┴────────┘ total size: 36623 ``` ### Security Considerations supply chain: this adds a dependency on the current [@noble/hashes](https://www.npmjs.com/package/@noble/hashes), which is reasonably popular (3m weekly downloads) and seems to be well audited. ### Documentation Considerations I'm not sure where this shows up in the orchestration API yet. ### Testing Considerations A test that it works in a compartment is included. ### Upgrade Considerations Unrelated to any deployed code.
- Loading branch information