GetInterchain: perChain + chains options (default first anchor per chain)
Transaction.GetInterchain and Block.GetInterchain take variadic options (client.WithPerChain / client.WithChains, re-exported as sdk.WithPerChain / sdk.WithChains) that map to the new prime-node ?perChain=&chains= query params. Backward compatible: existing no-option calls get the default (one anchor per chain). client.InterchainQuery builds the suffix; unit-tested.
This commit is contained in:
@@ -29,9 +29,14 @@ func (bc *BlockClient) Get(ctx context.Context, blockID string) (*models.Block,
|
||||
// GetInterchain traces a block to the validator (verification) blocks that
|
||||
// validated it and the public-chain interchain anchors those validator blocks
|
||||
// were bundled into.
|
||||
func (bc *BlockClient) GetInterchain(ctx context.Context, blockID string) (*models.InterchainTrace, error) {
|
||||
//
|
||||
// By default it returns the first anchor per public chain (anchor proofs are
|
||||
// chained, so the earliest per chain is the meaningful one). Use
|
||||
// client.WithPerChain / client.WithChains to return more anchors per chain or
|
||||
// restrict to specific chains.
|
||||
func (bc *BlockClient) GetInterchain(ctx context.Context, blockID string, opts ...client.InterchainOption) (*models.InterchainTrace, error) {
|
||||
var resp models.InterchainTrace
|
||||
path := fmt.Sprintf("/api/v1/block/%s/interchain", blockID)
|
||||
path := fmt.Sprintf("/api/v1/block/%s/interchain%s", blockID, client.InterchainQuery(opts...))
|
||||
err := bc.client.Get(ctx, path, &resp)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
|
||||
Reference in New Issue
Block a user