diff --git a/contract/nft.go b/contract/nft.go index 8b07196..3005751 100644 --- a/contract/nft.go +++ b/contract/nft.go @@ -8,6 +8,9 @@ type NFT interface { // You can execute your raw request. Command() Command + // ExecuteBatchAfterCheck executes a batch of commands after checking the validity of the batch. + ExecuteBatchAfterCheck(batch Batch) error + // ExecuteBatch executes a batch of commands. ExecuteBatch(batch Batch) error diff --git a/nft.go b/nft.go index 6ec9cb7..899d85a 100644 --- a/nft.go +++ b/nft.go @@ -104,6 +104,13 @@ func (n *nft) Command() contract.Command { return n.command } +func (n *nft) ExecuteBatchAfterCheck(batch contract.Batch) error { + if err := batch.Check(n.command); err != nil { + return err + } + return n.command.Run(batch.Args()...) +} + func (n *nft) ExecuteBatch(batch contract.Batch) error { return n.command.Run(batch.Args()...) }