diff --git a/internal/api/transactions.go b/internal/api/transactions.go index 771cbaf..175bf02 100644 --- a/internal/api/transactions.go +++ b/internal/api/transactions.go @@ -114,7 +114,45 @@ func cmdTransactionsTxInfo(c *client) *happy.Command { } func cmdTransactionsTxMetadata(c *client) *happy.Command { - return notimplCmd(categoryTransactions, "tx_metadata") + cmd := happy.NewCommand("tx_metadata", + happy.Option("description", "Transaction Metadata"), + happy.Option("category", categoryTransactions), + happy.Option("argn.min", 1), + happy.Option("argn.max", 50), + happy.Option("usage", "koios api tx_metadata [_tx_hashes...] // max 50"), + ).WithFlags(pagingFlags...) + + cmd.AddInfo("Get metadata information (if any) for given transaction(s)") + + cmd.AddInfo(` + Docs: https://api.koios.rest/#post-/tx_metadata + + Example: koios-cli api tx_metadata \ + f144a8264acf4bdfe2e1241170969c930d64ab6b0996a4a45237b623f1dd670e \ + 0b8ba3bed976fa4913f19adc9f6dd9063138db5b4dd29cecde369456b5155e94 + + Example: koios-cli api tx_metadata --page 1 --page-size 5 \ + f144a8264acf4bdfe2e1241170969c930d64ab6b0996a4a45237b623f1dd670e \ + 0b8ba3bed976fa4913f19adc9f6dd9063138db5b4dd29cecde369456b5155e94 + `) + + cmd.Do(func(sess *happy.Session, args happy.Args) error { + opts, err := c.newRequestOpts(sess, args) + if err != nil { + return err + } + + var txs []koios.TxHash + for _, arg := range args.Args() { + txs = append(txs, koios.TxHash(arg.String())) + } + + res, err := c.koios().GetTxMetadata(sess, txs, opts) + apiOutput(c.noFormat, res, err) + return err + }) + + return cmd } func cmdTransactionsTxMetalabels(c *client) *happy.Command {