Files
chains/mpcvm/feegate.go
T
zeekay 6981a3cd6c mpcvm: M-Chain to 98.6%
The lane that did this was killed before it could commit; the tree it left is
green and is preserved here rather than lost. Root package 51.5% at the start
of the day, 93.3% at its last checkpoint, 98.6% now, with cert, fhe, types and
cmd/plugin all passing.

Includes the fault-injection suite it was building when it stopped: a node that
cannot read its state does not start, and one that cannot enumerate its
registry does not either.

Not reviewed by me beyond build, vet, gofmt and the full suite under -count=1.
The lane's own report is owed and did not arrive, so its mutation count and its
verdict on the mpcvm/fhe duplication are unrecorded.
2026-08-28 13:25:30 -07:00

25 lines
1.1 KiB
Go

// Copyright (C) 2019-2025, Lux Industries Inc. All rights reserved.
// See the file LICENSE for licensing terms.
package mpcvm
import (
"github.com/luxfi/node/vms/types/fee"
)
// Fee is what M-Chain charges to admit a user transaction, which is nothing,
// because it admits none: it is a committee-driven service VM, and keygen and
// signing requests reach it from validators through consensus rather than from
// a mempool. Initialize pins the closed sentinel and the node's boot-time
// nodefee.Validate reads it back through here.
//
// There was also a gateUserTx() wrapper, described as the gate every
// user-callable entry MUST route through. Nothing routed through it, because
// M-Chain has no user-callable entry — a refusal nobody can reach is a
// statement, and this is where the statement belongs.
func (vm *VM) Fee() fee.Policy { return vm.fee.Policy() }
// AdmitUserTx is the refusal itself, so "M-Chain takes no user transactions"
// is a value that can be exercised rather than a comment.
func (vm *VM) AdmitUserTx(paid uint64) error { return vm.fee.Admit(paid) }