Loading
chore(bifrost): remove yggdrasil vault handling (part 1/2)
Fresh port of the bifrost side of yggdrasil removal, based on GiMa's !341 (closed) ("remove yggs part 1/2 (bifrost)") and THORNode thorchain/thornode!3178 (merged), rebuilt from current develop (the original branch no longer applies).
Changes (bifrost only)
- Signer: yggdrasil return handling removed. New guard: tx out items with no coins or a
YGGDRASIL+/-memo are logged and discarded before reaching a chain client (EVMgetOutboundTxDatahas no default case; UTXO/cosmos clients would sign them as plain sends). - EVM log parser:
VaultTransferevents ignored (only emitted by the router's ygg return);TransferOut/TransferAllowancevault-to-vault handling acceptsMIGRATEonly. Dead "native value to router" branch removed from the evm and ethereum scanners. - Removed ygg gas set-asides (KUJI, THOR, BNB) and ygg-return gas deductions (BTC, DASH, ZEC; consolidation kept); removed the Cardano ygg UTXO bypass; mayaclient no longer observes ygg pubkeys.
- Kept the ETH
getTotalTransactionValuepool-address exclusion (also covers inactive vaults).
Preconditions
- Safe while mimir
StopFundYggdrasilis set and no ygg vault exists (mainnet: set, 0 ygg vaults; stagenet: set). The chain side still runs ygg funding gated by that mimir; it must stay set until part 2/2 (chain removal, consensus, new version). - Mixed rollout: router events carrying
YGGDRASIL+/-memos are observed differently by old and new bifrost (they can only be produced by someone sending their own funds to the vault); real inbounds/outbounds/migrations are unaffected.
Tests
go test -tags mocknet ./bifrost/... pass. New TestRejectYggdrasilTxOut (discarded, removed from store, never signed; regular outbound still signed). Regression is chain-only (unaffected); simulation runs a single node (no yggs).