Brave Wallet needs signed & unsigned 256-bit integers to operate, for which it was leveraging clang's _BITINT define until Chromium 100. Starting with Chromium 100 though, clang complains with an "unsigned _BitInt of bit sizes greater than 128 not supported" error since the latest LLVM rollout, caused by the change from [1] (which got reverted but then relanded with fixes in [2]). As mentioned in [3], this seems to be a temporary change while the backend-related bug is not fixed, but we need to have 256-bit integers in the meantime, so we're pulling Boost's Multiprecision library using it's (currently WIP) so-called "standalone mode" that allows us to use it just by including that library plus Boost's Config library. Finally, this commit also changes brave_wallet_types.h to use the types int128_t, uint128_t, int256_t and uint256_t from Boost, also adapting a few Ethereum-related files where implicit conversions no longer work. [1] https://reviews.llvm.org/D117238 [2] https://reviews.llvm.org/rGa6cabd98021fe357d666614601eca2031bf775de [3] https://reviews.llvm.org/D117238#3270125 Chromium changes: https://source.chromium.org/chromium/chromium/src/+/65cf5c874dc26a5a93f5ed901c012921dca45fb8 https://source.chromium.org/chromium/chromium/src/+/cb6f83b421c6ed3c5883e7afcdeac0488b79f71f commit 65cf5c874dc26a5a93f5ed901c012921dca45fb8 Author: Arthur Eubanks <aeubanks@google.com> Date: Mon Feb 14 14:45:36 2022 +0000 Roll clang llvmorg-14-init-18258-g9477a308-1 : llvmorg-15-init-1464-gbf7f8d6f-1 Note that this bumps the clang version from 14.0 to 15.0. Ran `./tools/clang/scripts/upload_revision.py bf7f8d6fa6f460bf0a16ffec319cd71592216bf4`. Bug: 1293292, 1296986 commit cb6f83b421c6ed3c5883e7afcdeac0488b79f71f Author: Zequan Wu <zequanwu@google.com> Date: Thu Feb 10 14:00:17 2022 +0000 Roll clang llvmorg-14-init-17086-g38e16e1c-4 : llvmorg-14-init-18258-g9477a308-1 Ran `tools/clang/scripts/upload_revision.py 9477a308ca6b8536044c9d31a8c89062b514431e`. Bug: 1291928
Name: Boost Library URL: https://github.com/boostorg/boost License: Boost Software License 1.0 License File: LICENSE