Repository navigation
Add native DOGE token predeploy - #51
Conversation
|
Cross-repo compatibility note from the Tsuki runtime/docs review: the token and the pinned transfer precompile currently disagree on the success ABI.
(bool success, bytes memory ret) = DogeOSPredeploy.NATIVE_TRANSFER_PRECOMPILE.call(...);
if (!success || ret.length != 32 || abi.decode(ret, (uint256)) != 1) {
revert ErrorNativeTransferFailed(...);
}But I recommend aligning this PR with the Celo token-duality convention: check low-level call success and discard returndata. The pinned reference is Concretely for this PR:
The cross-repo exit criterion should also include one integration test that executes the regenerated predeploy bytecode through the actual revm transfer precompile, rather than mocks on either side. |
|
Summary
INativeDogeTokenmatching the concreteNativeDogeTokenpredeploy naming convention.0x530000000000000000000000000000000000d09e, a DogeOS vanity slot in the0x5300predeploy namespace while leaving the inherited low Scroll-system range open.L2_MAX_NATIVE_DOGE_SUPPLYas the primary genesis supply config, withL2_MAX_ETH_SUPPLYkept as a matching legacy alias while downstream tooling migrates.Bytecode export
yarn export:native-doge-tokento writevolume/native-doge-token-predeploy.jsonfromvolume/config.toml.0x90a64eee730d7b76311162eaac2977d5a2f0608dc01641e365c4173aa8da1384.Notes
L2_WDOGEin genesis because the bridge and gateway stack still depends on it.Validation
yarn export:native-doge-tokenforge script scripts/deterministic/ExportNativeDogeTokenPredeploy.s.sol:ExportNativeDogeTokenPredeploy --sig 'run(uint256)' 12345 --evm-version cancunforge test --match-path src/test/dogeos/NativeDogeToken.t.sol -vvv --evm-version cancunforge test -vvv --evm-version cancungit show --check --format=short HEAD