Skip to content

Commit

Permalink
taxes appear to be working
Browse files Browse the repository at this point in the history
  • Loading branch information
scottburch committed Jan 15, 2021
1 parent 1c6eb4c commit 5b709d3
Show file tree
Hide file tree
Showing 2 changed files with 18 additions and 27 deletions.
12 changes: 1 addition & 11 deletions app/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -325,7 +325,6 @@ func NewCRUDApp(
auth.DefaultSigVerificationGasConsumer,
)


taxAnteHandler := sdk.ChainAnteDecorators(ante.NewTaxDecorator(
app.accountKeeper,
app.supplyKeeper,
Expand All @@ -349,16 +348,6 @@ func NewCRUDApp(



//// The AnteHandler handles signature verification and transaction pre-processing
//app.SetAnteHandler(
// ante.NewAnteHandler(
// app.accountKeeper,
// app.bankKeeper,
// app.supplyKeeper,
// app.taxKeeper,
// auth.DefaultSigVerificationGasConsumer,
// ),
//)

// initialize stores
app.MountKVStores(keys)
Expand All @@ -372,6 +361,7 @@ func NewCRUDApp(
return app
}


// GenesisState represents chain state at the start of the chain. Any initial state (account balances) are stored here.
type GenesisState map[string]json.RawMessage

Expand Down
33 changes: 17 additions & 16 deletions x/tax/ante/ante.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,29 +40,30 @@ type FeeTx interface {

func (td TaxDecorator) AnteHandle(ctx sdk.Context, tx sdk.Tx, simulate bool, next sdk.AnteHandler) (newCtx sdk.Context, err error) {

feeTx, ok := tx.(FeeTx)
if !ok {
return ctx, sdkerrors.Wrap(sdkerrors.ErrTxDecode, "Tx must be a FeeTx")
}
if !simulate {

taxInfo := td.tk.GetTaxInfo(ctx)
feeTx, ok := tx.(FeeTx)
if !ok {
return ctx, sdkerrors.Wrap(sdkerrors.ErrTxDecode, "Tx must be a FeeTx")
}

feePayer := feeTx.FeePayer()
feePayerAcc := td.ak.GetAccount(ctx, feePayer)
taxInfo := td.tk.GetTaxInfo(ctx)

if feePayerAcc == nil {
return ctx, sdkerrors.Wrapf(sdkerrors.ErrUnknownAddress, "fee payer address: %s does not exist", feePayer)
}
feePayer := feeTx.FeePayer()
feePayerAcc := td.ak.GetAccount(ctx, feePayer)

if err := collectTransactionTax(ctx, td, tx, feeTx.GetFee(), feePayer); err != nil {
return ctx, err
}
if feePayerAcc == nil {
return ctx, sdkerrors.Wrapf(sdkerrors.ErrUnknownAddress, "fee payer address: %s does not exist", feePayer)
}

if err := collectTransactionTax(ctx, td, tx, feeTx.GetFee(), feePayer); err != nil {
return ctx, err
}

if err := collectFeeTax(ctx, td.supplyKeeper, feePayerAcc, taxInfo.Collector, feeTx.GetFee(), taxInfo.FeeBp); err != nil {
return ctx, err
if err := collectFeeTax(ctx, td.supplyKeeper, feePayerAcc, taxInfo.Collector, feeTx.GetFee(), taxInfo.FeeBp); err != nil {
return ctx, err
}
}

return next(ctx, tx, simulate)
}

Expand Down

0 comments on commit 5b709d3

Please sign in to comment.