/* tslint:disable */
/* eslint-disable */
/**
 * Stacks 2.0 Blockchain API
 * This is the documentation for the Stacks 2.0 Blockchain API.  It is comprised of two parts; the Stacks Blockchain API and the Stacks Core API.  [![Run in Postman](https://run.pstmn.io/button.svg)](https://app.getpostman.com/run-collection/614feab5c108d292bffa#?env%5BStacks%20Blockchain%20API%5D=W3sia2V5Ijoic3R4X2FkZHJlc3MiLCJ2YWx1ZSI6IlNUMlRKUkhESE1ZQlE0MTdIRkIwQkRYNDMwVFFBNVBYUlg2NDk1RzFWIiwiZW5hYmxlZCI6dHJ1ZX0seyJrZXkiOiJibG9ja19pZCIsInZhbHVlIjoiMHgiLCJlbmFibGVkIjp0cnVlfSx7ImtleSI6Im9mZnNldCIsInZhbHVlIjoiMCIsImVuYWJsZWQiOnRydWV9LHsia2V5IjoibGltaXRfdHgiLCJ2YWx1ZSI6IjIwMCIsImVuYWJsZWQiOnRydWV9LHsia2V5IjoibGltaXRfYmxvY2siLCJ2YWx1ZSI6IjMwIiwiZW5hYmxlZCI6dHJ1ZX0seyJrZXkiOiJ0eF9pZCIsInZhbHVlIjoiMHg1NDA5MGMxNmE3MDJiNzUzYjQzMTE0ZTg4NGJjMTlhODBhNzk2MzhmZDQ0OWE0MGY4MDY4Y2RmMDAzY2RlNmUwIiwiZW5hYmxlZCI6dHJ1ZX0seyJrZXkiOiJjb250cmFjdF9pZCIsInZhbHVlIjoiU1RKVFhFSlBKUFBWRE5BOUIwNTJOU1JSQkdRQ0ZOS1ZTMTc4VkdIMS5oZWxsb193b3JsZFxuIiwiZW5hYmxlZCI6dHJ1ZX0seyJrZXkiOiJidGNfYWRkcmVzcyIsInZhbHVlIjoiYWJjIiwiZW5hYmxlZCI6dHJ1ZX0seyJrZXkiOiJjb250cmFjdF9hZGRyZXNzIiwidmFsdWUiOiJTVEpUWEVKUEpQUFZETkE5QjA1Mk5TUlJCR1FDRk5LVlMxNzhWR0gxIiwiZW5hYmxlZCI6dHJ1ZX0seyJrZXkiOiJjb250cmFjdF9uYW1lIiwidmFsdWUiOiJoZWxsb193b3JsZCIsImVuYWJsZWQiOnRydWV9LHsia2V5IjoiY29udHJhY3RfbWFwIiwidmFsdWUiOiJzdG9yZSIsImVuYWJsZWQiOnRydWV9LHsia2V5IjoiY29udHJhY3RfbWV0aG9kIiwidmFsdWUiOiJnZXQtdmFsdWUiLCJlbmFibGVkIjp0cnVlfV0=) 
 *
 * The version of the OpenAPI document: 1.0.0
 * 
 *
 * NOTE: This class is auto generated by OpenAPI Generator (https://openapi-generator.tech).
 * https://openapi-generator.tech
 * Do not edit the class manually.
 */

import { exists, mapValues } from '../runtime';
/**
 * Reward payment made on the burnchain
 * @export
 * @interface BurnchainReward
 */
export interface BurnchainReward {
    /**
     * Set to `true` if block corresponds to the canonical burchchain tip
     * @type {boolean}
     * @memberof BurnchainReward
     */
    canonical: boolean;
    /**
     * The hash representing the burnchain block
     * @type {string}
     * @memberof BurnchainReward
     */
    burn_block_hash: string;
    /**
     * Height of the burnchain block
     * @type {number}
     * @memberof BurnchainReward
     */
    burn_block_height: number;
    /**
     * The total amount of burnchain tokens burned for this burnchain block, in the smallest unit (e.g. satoshis for Bitcoin)
     * @type {string}
     * @memberof BurnchainReward
     */
    burn_amount: string;
    /**
     * The recipient address that received the burnchain rewards, in the format native to the burnchain (e.g. B58 encoded for Bitcoin)
     * @type {string}
     * @memberof BurnchainReward
     */
    reward_recipient: string;
    /**
     * The amount of burnchain tokens rewarded to the recipient, in the smallest unit (e.g. satoshis for Bitcoin)
     * @type {string}
     * @memberof BurnchainReward
     */
    reward_amount: string;
    /**
     * The index position of the reward entry, useful for ordering when there's more than one recipient per burnchain block
     * @type {number}
     * @memberof BurnchainReward
     */
    reward_index: number;
}

export function BurnchainRewardFromJSON(json: any): BurnchainReward {
    return BurnchainRewardFromJSONTyped(json, false);
}

export function BurnchainRewardFromJSONTyped(json: any, ignoreDiscriminator: boolean): BurnchainReward {
    if ((json === undefined) || (json === null)) {
        return json;
    }
    return {
        
        'canonical': json['canonical'],
        'burn_block_hash': json['burn_block_hash'],
        'burn_block_height': json['burn_block_height'],
        'burn_amount': json['burn_amount'],
        'reward_recipient': json['reward_recipient'],
        'reward_amount': json['reward_amount'],
        'reward_index': json['reward_index'],
    };
}

export function BurnchainRewardToJSON(value?: BurnchainReward | null): any {
    if (value === undefined) {
        return undefined;
    }
    if (value === null) {
        return null;
    }
    return {
        
        'canonical': value.canonical,
        'burn_block_hash': value.burn_block_hash,
        'burn_block_height': value.burn_block_height,
        'burn_amount': value.burn_amount,
        'reward_recipient': value.reward_recipient,
        'reward_amount': value.reward_amount,
        'reward_index': value.reward_index,
    };
}


