Refactor DefaultMessageSendSpec
Signed-off-by: Jakub Sztandera <kubuxu@protocol.ai>
This commit is contained in:
parent
689b93dc0e
commit
6ca5caef31
14
api/types.go
14
api/types.go
@ -6,7 +6,6 @@ import (
|
|||||||
|
|
||||||
datatransfer "github.com/filecoin-project/go-data-transfer"
|
datatransfer "github.com/filecoin-project/go-data-transfer"
|
||||||
"github.com/filecoin-project/go-state-types/abi"
|
"github.com/filecoin-project/go-state-types/abi"
|
||||||
"github.com/filecoin-project/lotus/build"
|
|
||||||
"github.com/ipfs/go-cid"
|
"github.com/ipfs/go-cid"
|
||||||
|
|
||||||
"github.com/libp2p/go-libp2p-core/peer"
|
"github.com/libp2p/go-libp2p-core/peer"
|
||||||
@ -51,19 +50,6 @@ type MessageSendSpec struct {
|
|||||||
MaxFee abi.TokenAmount
|
MaxFee abi.TokenAmount
|
||||||
}
|
}
|
||||||
|
|
||||||
var DefaultMessageSendSpec = MessageSendSpec{
|
|
||||||
// MaxFee of 0.1FIL
|
|
||||||
MaxFee: abi.NewTokenAmount(int64(build.FilecoinPrecision) / 10),
|
|
||||||
}
|
|
||||||
|
|
||||||
func (ms *MessageSendSpec) Get() MessageSendSpec {
|
|
||||||
if ms == nil {
|
|
||||||
return DefaultMessageSendSpec
|
|
||||||
}
|
|
||||||
|
|
||||||
return *ms
|
|
||||||
}
|
|
||||||
|
|
||||||
type DataTransferChannel struct {
|
type DataTransferChannel struct {
|
||||||
TransferID datatransfer.TransferID
|
TransferID datatransfer.TransferID
|
||||||
Status datatransfer.Status
|
Status datatransfer.Status
|
||||||
|
@ -181,7 +181,20 @@ func ComputeMinRBF(curPrem abi.TokenAmount) abi.TokenAmount {
|
|||||||
return types.BigAdd(minPrice, types.NewInt(1))
|
return types.BigAdd(minPrice, types.NewInt(1))
|
||||||
}
|
}
|
||||||
|
|
||||||
func CapGasFee(mff dtypes.DefaultMaxFeeFunc, msg *types.Message, maxFee abi.TokenAmount) {
|
func CapGasFee(mff dtypes.DefaultMaxFeeFunc, msg *types.Message, sendSepc *api.MessageSendSpec) {
|
||||||
|
var maxFee abi.TokenAmount
|
||||||
|
if sendSepc != nil {
|
||||||
|
maxFee = sendSepc.MaxFee
|
||||||
|
}
|
||||||
|
if maxFee.Int == nil || maxFee.Equals(big.Zero()) {
|
||||||
|
mf, err := mff()
|
||||||
|
if err != nil {
|
||||||
|
log.Errorf("failed to get default max gas fee: %+v", err)
|
||||||
|
mf = big.Zero()
|
||||||
|
}
|
||||||
|
maxFee = mf
|
||||||
|
}
|
||||||
|
|
||||||
if maxFee.Equals(big.Zero()) {
|
if maxFee.Equals(big.Zero()) {
|
||||||
mf, err := mff()
|
mf, err := mff()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
@ -446,7 +446,7 @@ var mpoolReplaceCmd = &cli.Command{
|
|||||||
return abi.TokenAmount(config.DefaultDefaultMaxFee), nil
|
return abi.TokenAmount(config.DefaultDefaultMaxFee), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
messagepool.CapGasFee(mff, &msg, mss.Get().MaxFee)
|
messagepool.CapGasFee(mff, &msg, mss)
|
||||||
} else {
|
} else {
|
||||||
if cctx.IsSet("gas-limit") {
|
if cctx.IsSet("gas-limit") {
|
||||||
msg.GasLimit = cctx.Int64("gas-limit")
|
msg.GasLimit = cctx.Int64("gas-limit")
|
||||||
|
@ -301,7 +301,7 @@ func (m *GasModule) GasEstimateMessageGas(ctx context.Context, msg *types.Messag
|
|||||||
msg.GasFeeCap = feeCap
|
msg.GasFeeCap = feeCap
|
||||||
}
|
}
|
||||||
|
|
||||||
messagepool.CapGasFee(m.GetMaxFee, msg, spec.Get().MaxFee)
|
messagepool.CapGasFee(m.GetMaxFee, msg, spec)
|
||||||
|
|
||||||
return msg, nil
|
return msg, nil
|
||||||
}
|
}
|
||||||
|
@ -812,7 +812,7 @@ func (s *WindowPoStScheduler) setSender(ctx context.Context, msg *types.Message,
|
|||||||
return msg.RequiredFunds(), nil
|
return msg.RequiredFunds(), nil
|
||||||
}
|
}
|
||||||
|
|
||||||
messagepool.CapGasFee(mff, msg, big.Min(big.Sub(avail, msg.Value), msg.RequiredFunds()))
|
messagepool.CapGasFee(mff, msg, &api.MessageSendSpec{MaxFee: big.Min(big.Sub(avail, msg.Value), msg.RequiredFunds())})
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user