/* 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';
/**
 * StxBalance
 * @export
 * @interface AddressBalanceResponseStx
 */
export interface AddressBalanceResponseStx {
    /**
     * 
     * @type {string}
     * @memberof AddressBalanceResponseStx
     */
    balance: string;
    /**
     * 
     * @type {string}
     * @memberof AddressBalanceResponseStx
     */
    total_sent: string;
    /**
     * 
     * @type {string}
     * @memberof AddressBalanceResponseStx
     */
    total_received: string;
    /**
     * 
     * @type {string}
     * @memberof AddressBalanceResponseStx
     */
    total_fees_sent: string;
    /**
     * 
     * @type {string}
     * @memberof AddressBalanceResponseStx
     */
    total_miner_rewards_received: string;
    /**
     * The transaction where the lock event occurred. Empty if no tokens are locked.
     * @type {string}
     * @memberof AddressBalanceResponseStx
     */
    lock_tx_id: string;
    /**
     * The amount of locked STX, as string quoted micro-STX. Zero if no tokens are locked.
     * @type {string}
     * @memberof AddressBalanceResponseStx
     */
    locked: string;
    /**
     * The STX chain block height of when the lock event occurred. Zero if no tokens are locked.
     * @type {number}
     * @memberof AddressBalanceResponseStx
     */
    lock_height: number;
    /**
     * The burnchain block height of when the lock event occurred. Zero if no tokens are locked.
     * @type {number}
     * @memberof AddressBalanceResponseStx
     */
    burnchain_lock_height: number;
    /**
     * The burnchain block height of when the tokens unlock. Zero if no tokens are locked.
     * @type {number}
     * @memberof AddressBalanceResponseStx
     */
    burnchain_unlock_height: number;
}

export function AddressBalanceResponseStxFromJSON(json: any): AddressBalanceResponseStx {
    return AddressBalanceResponseStxFromJSONTyped(json, false);
}

export function AddressBalanceResponseStxFromJSONTyped(json: any, ignoreDiscriminator: boolean): AddressBalanceResponseStx {
    if ((json === undefined) || (json === null)) {
        return json;
    }
    return {
        
        'balance': json['balance'],
        'total_sent': json['total_sent'],
        'total_received': json['total_received'],
        'total_fees_sent': json['total_fees_sent'],
        'total_miner_rewards_received': json['total_miner_rewards_received'],
        'lock_tx_id': json['lock_tx_id'],
        'locked': json['locked'],
        'lock_height': json['lock_height'],
        'burnchain_lock_height': json['burnchain_lock_height'],
        'burnchain_unlock_height': json['burnchain_unlock_height'],
    };
}

export function AddressBalanceResponseStxToJSON(value?: AddressBalanceResponseStx | null): any {
    if (value === undefined) {
        return undefined;
    }
    if (value === null) {
        return null;
    }
    return {
        
        'balance': value.balance,
        'total_sent': value.total_sent,
        'total_received': value.total_received,
        'total_fees_sent': value.total_fees_sent,
        'total_miner_rewards_received': value.total_miner_rewards_received,
        'lock_tx_id': value.lock_tx_id,
        'locked': value.locked,
        'lock_height': value.lock_height,
        'burnchain_lock_height': value.burnchain_lock_height,
        'burnchain_unlock_height': value.burnchain_unlock_height,
    };
}


