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 (EVM getOutboundTxData has no default case; UTXO/cosmos clients would sign them as plain sends).
  • EVM log parser: VaultTransfer events ignored (only emitted by the router's ygg return); TransferOut/TransferAllowance vault-to-vault handling accepts MIGRATE only. 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 getTotalTransactionValue pool-address exclusion (also covers inactive vaults).

Preconditions

  • Safe while mimir StopFundYggdrasil is 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).

Merge request reports

Loading
Loading