Public/Get-ChiaBlock.ps1

function Get-ChiaBlock {
    [CmdletBinding(DefaultParameterSetName = "SingleBlock")]
    param(
        [Parameter(ValueFromPipeline,ValueFromPipelineByPropertyName,
        ParameterSetName = "SingleBlock")]
        [Alias("header_hash")]
        [string[]]$HeaderHash,

        [Parameter(Mandatory,ParameterSetName = "Blocks")]
        [int]$StartHeight,

        [Parameter(Mandatory,ParameterSetName = "Blocks")]
        [int]$EndHeight,

        [Parameter(ParameterSetName = "Blocks")]
        [switch]$ExcludeHeaderHash

    )

    Begin{
        $Param = @{
            Command = "get_block"
            Parameters = "" | ConvertTo-Json
            Service = "Full_Node"
        }
    }

    Process{
        if ($PSBoundParameters.ContainsKey("HeaderHash")){
            foreach ($hash in $HeaderHash){
                $Param["Parameters"] = @{header_hash = $hash} | ConvertTo-Json
                $Response = Invoke-chiaRPCCommand @Param
                if ($Response.success){
                    $Response.block
                }
                else{
                    $Response
                }
            }
        }
        else{
            $Parameters = @{
                start = $StartHeight
                end = $EndHeight
                Exclude_header_hash = $ExcludeHeaderHash.IsPresent
            }
            $Param["Command"] = "get_blocks"
            $Param["Parameters"] = ($Parameters | ConvertTo-Json)
            $Response = Invoke-chiaRPCCommand @Param
            if ($Response.success){
                $Response.blocks
            }
            else{
                $Response
            }
        }
    }

}