<?php
# Generated by the protocol buffer compiler.  DO NOT EDIT!
# source: core/contract/asset_issue_contract.proto

namespace Protocol;

use Google\Protobuf\Internal\GPBType;
use Google\Protobuf\Internal\RepeatedField;
use Google\Protobuf\Internal\GPBUtil;

/**
 * Generated from protobuf message <code>protocol.AssetIssueContract</code>
 */
class AssetIssueContract extends \Google\Protobuf\Internal\Message
{
    /**
     * Generated from protobuf field <code>string id = 41;</code>
     */
    protected $id = '';
    /**
     * Generated from protobuf field <code>bytes owner_address = 1;</code>
     */
    protected $owner_address = '';
    /**
     * Generated from protobuf field <code>bytes name = 2;</code>
     */
    protected $name = '';
    /**
     * Generated from protobuf field <code>bytes abbr = 3;</code>
     */
    protected $abbr = '';
    /**
     * Generated from protobuf field <code>int64 total_supply = 4;</code>
     */
    protected $total_supply = 0;
    /**
     * Generated from protobuf field <code>repeated .protocol.AssetIssueContract.FrozenSupply frozen_supply = 5;</code>
     */
    private $frozen_supply;
    /**
     * Generated from protobuf field <code>int32 trx_num = 6;</code>
     */
    protected $trx_num = 0;
    /**
     * Generated from protobuf field <code>int32 precision = 7;</code>
     */
    protected $precision = 0;
    /**
     * Generated from protobuf field <code>int32 num = 8;</code>
     */
    protected $num = 0;
    /**
     * Generated from protobuf field <code>int64 start_time = 9;</code>
     */
    protected $start_time = 0;
    /**
     * Generated from protobuf field <code>int64 end_time = 10;</code>
     */
    protected $end_time = 0;
    /**
     * useless
     *
     * Generated from protobuf field <code>int64 order = 11;</code>
     */
    protected $order = 0;
    /**
     * Generated from protobuf field <code>int32 vote_score = 16;</code>
     */
    protected $vote_score = 0;
    /**
     * Generated from protobuf field <code>bytes description = 20;</code>
     */
    protected $description = '';
    /**
     * Generated from protobuf field <code>bytes url = 21;</code>
     */
    protected $url = '';
    /**
     * Generated from protobuf field <code>int64 free_asset_net_limit = 22;</code>
     */
    protected $free_asset_net_limit = 0;
    /**
     * Generated from protobuf field <code>int64 public_free_asset_net_limit = 23;</code>
     */
    protected $public_free_asset_net_limit = 0;
    /**
     * Generated from protobuf field <code>int64 public_free_asset_net_usage = 24;</code>
     */
    protected $public_free_asset_net_usage = 0;
    /**
     * Generated from protobuf field <code>int64 public_latest_free_net_time = 25;</code>
     */
    protected $public_latest_free_net_time = 0;

    /**
     * Constructor.
     *
     * @param array $data {
     *     Optional. Data for populating the Message object.
     *
     *     @type string $id
     *     @type string $owner_address
     *     @type string $name
     *     @type string $abbr
     *     @type int|string $total_supply
     *     @type \Protocol\AssetIssueContract\FrozenSupply[]|\Google\Protobuf\Internal\RepeatedField $frozen_supply
     *     @type int $trx_num
     *     @type int $precision
     *     @type int $num
     *     @type int|string $start_time
     *     @type int|string $end_time
     *     @type int|string $order
     *           useless
     *     @type int $vote_score
     *     @type string $description
     *     @type string $url
     *     @type int|string $free_asset_net_limit
     *     @type int|string $public_free_asset_net_limit
     *     @type int|string $public_free_asset_net_usage
     *     @type int|string $public_latest_free_net_time
     * }
     */
    public function __construct($data = NULL) {
        \GPBMetadata\Core\Contract\AssetIssueContract::initOnce();
        parent::__construct($data);
    }

    /**
     * Generated from protobuf field <code>string id = 41;</code>
     * @return string
     */
    public function getId()
    {
        return $this->id;
    }

    /**
     * Generated from protobuf field <code>string id = 41;</code>
     * @param string $var
     * @return $this
     */
    public function setId($var)
    {
        GPBUtil::checkString($var, True);
        $this->id = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>bytes owner_address = 1;</code>
     * @return string
     */
    public function getOwnerAddress()
    {
        return $this->owner_address;
    }

    /**
     * Generated from protobuf field <code>bytes owner_address = 1;</code>
     * @param string $var
     * @return $this
     */
    public function setOwnerAddress($var)
    {
        GPBUtil::checkString($var, False);
        $this->owner_address = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>bytes name = 2;</code>
     * @return string
     */
    public function getName()
    {
        return $this->name;
    }

    /**
     * Generated from protobuf field <code>bytes name = 2;</code>
     * @param string $var
     * @return $this
     */
    public function setName($var)
    {
        GPBUtil::checkString($var, False);
        $this->name = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>bytes abbr = 3;</code>
     * @return string
     */
    public function getAbbr()
    {
        return $this->abbr;
    }

    /**
     * Generated from protobuf field <code>bytes abbr = 3;</code>
     * @param string $var
     * @return $this
     */
    public function setAbbr($var)
    {
        GPBUtil::checkString($var, False);
        $this->abbr = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>int64 total_supply = 4;</code>
     * @return int|string
     */
    public function getTotalSupply()
    {
        return $this->total_supply;
    }

    /**
     * Generated from protobuf field <code>int64 total_supply = 4;</code>
     * @param int|string $var
     * @return $this
     */
    public function setTotalSupply($var)
    {
        GPBUtil::checkInt64($var);
        $this->total_supply = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>repeated .protocol.AssetIssueContract.FrozenSupply frozen_supply = 5;</code>
     * @return \Google\Protobuf\Internal\RepeatedField
     */
    public function getFrozenSupply()
    {
        return $this->frozen_supply;
    }

    /**
     * Generated from protobuf field <code>repeated .protocol.AssetIssueContract.FrozenSupply frozen_supply = 5;</code>
     * @param \Protocol\AssetIssueContract\FrozenSupply[]|\Google\Protobuf\Internal\RepeatedField $var
     * @return $this
     */
    public function setFrozenSupply($var)
    {
        $arr = GPBUtil::checkRepeatedField($var, \Google\Protobuf\Internal\GPBType::MESSAGE, \Protocol\AssetIssueContract\FrozenSupply::class);
        $this->frozen_supply = $arr;

        return $this;
    }

    /**
     * Generated from protobuf field <code>int32 trx_num = 6;</code>
     * @return int
     */
    public function getTrxNum()
    {
        return $this->trx_num;
    }

    /**
     * Generated from protobuf field <code>int32 trx_num = 6;</code>
     * @param int $var
     * @return $this
     */
    public function setTrxNum($var)
    {
        GPBUtil::checkInt32($var);
        $this->trx_num = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>int32 precision = 7;</code>
     * @return int
     */
    public function getPrecision()
    {
        return $this->precision;
    }

    /**
     * Generated from protobuf field <code>int32 precision = 7;</code>
     * @param int $var
     * @return $this
     */
    public function setPrecision($var)
    {
        GPBUtil::checkInt32($var);
        $this->precision = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>int32 num = 8;</code>
     * @return int
     */
    public function getNum()
    {
        return $this->num;
    }

    /**
     * Generated from protobuf field <code>int32 num = 8;</code>
     * @param int $var
     * @return $this
     */
    public function setNum($var)
    {
        GPBUtil::checkInt32($var);
        $this->num = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>int64 start_time = 9;</code>
     * @return int|string
     */
    public function getStartTime()
    {
        return $this->start_time;
    }

    /**
     * Generated from protobuf field <code>int64 start_time = 9;</code>
     * @param int|string $var
     * @return $this
     */
    public function setStartTime($var)
    {
        GPBUtil::checkInt64($var);
        $this->start_time = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>int64 end_time = 10;</code>
     * @return int|string
     */
    public function getEndTime()
    {
        return $this->end_time;
    }

    /**
     * Generated from protobuf field <code>int64 end_time = 10;</code>
     * @param int|string $var
     * @return $this
     */
    public function setEndTime($var)
    {
        GPBUtil::checkInt64($var);
        $this->end_time = $var;

        return $this;
    }

    /**
     * useless
     *
     * Generated from protobuf field <code>int64 order = 11;</code>
     * @return int|string
     */
    public function getOrder()
    {
        return $this->order;
    }

    /**
     * useless
     *
     * Generated from protobuf field <code>int64 order = 11;</code>
     * @param int|string $var
     * @return $this
     */
    public function setOrder($var)
    {
        GPBUtil::checkInt64($var);
        $this->order = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>int32 vote_score = 16;</code>
     * @return int
     */
    public function getVoteScore()
    {
        return $this->vote_score;
    }

    /**
     * Generated from protobuf field <code>int32 vote_score = 16;</code>
     * @param int $var
     * @return $this
     */
    public function setVoteScore($var)
    {
        GPBUtil::checkInt32($var);
        $this->vote_score = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>bytes description = 20;</code>
     * @return string
     */
    public function getDescription()
    {
        return $this->description;
    }

    /**
     * Generated from protobuf field <code>bytes description = 20;</code>
     * @param string $var
     * @return $this
     */
    public function setDescription($var)
    {
        GPBUtil::checkString($var, False);
        $this->description = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>bytes url = 21;</code>
     * @return string
     */
    public function getUrl()
    {
        return $this->url;
    }

    /**
     * Generated from protobuf field <code>bytes url = 21;</code>
     * @param string $var
     * @return $this
     */
    public function setUrl($var)
    {
        GPBUtil::checkString($var, False);
        $this->url = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>int64 free_asset_net_limit = 22;</code>
     * @return int|string
     */
    public function getFreeAssetNetLimit()
    {
        return $this->free_asset_net_limit;
    }

    /**
     * Generated from protobuf field <code>int64 free_asset_net_limit = 22;</code>
     * @param int|string $var
     * @return $this
     */
    public function setFreeAssetNetLimit($var)
    {
        GPBUtil::checkInt64($var);
        $this->free_asset_net_limit = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>int64 public_free_asset_net_limit = 23;</code>
     * @return int|string
     */
    public function getPublicFreeAssetNetLimit()
    {
        return $this->public_free_asset_net_limit;
    }

    /**
     * Generated from protobuf field <code>int64 public_free_asset_net_limit = 23;</code>
     * @param int|string $var
     * @return $this
     */
    public function setPublicFreeAssetNetLimit($var)
    {
        GPBUtil::checkInt64($var);
        $this->public_free_asset_net_limit = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>int64 public_free_asset_net_usage = 24;</code>
     * @return int|string
     */
    public function getPublicFreeAssetNetUsage()
    {
        return $this->public_free_asset_net_usage;
    }

    /**
     * Generated from protobuf field <code>int64 public_free_asset_net_usage = 24;</code>
     * @param int|string $var
     * @return $this
     */
    public function setPublicFreeAssetNetUsage($var)
    {
        GPBUtil::checkInt64($var);
        $this->public_free_asset_net_usage = $var;

        return $this;
    }

    /**
     * Generated from protobuf field <code>int64 public_latest_free_net_time = 25;</code>
     * @return int|string
     */
    public function getPublicLatestFreeNetTime()
    {
        return $this->public_latest_free_net_time;
    }

    /**
     * Generated from protobuf field <code>int64 public_latest_free_net_time = 25;</code>
     * @param int|string $var
     * @return $this
     */
    public function setPublicLatestFreeNetTime($var)
    {
        GPBUtil::checkInt64($var);
        $this->public_latest_free_net_time = $var;

        return $this;
    }

}

