"use strict";

var _typeof = require("@babel/runtime/helpers/typeof");
Object.defineProperty(exports, "__esModule", {
  value: true
});
exports.Params = exports.GenesisState = void 0;
var _coin = require("../../../cosmos/base/v1beta1/coin");
var _types = require("./types");
var _msgs = require("./msgs");
var _batch = require("./batch");
var _attestation = require("./attestation");
var _helpers = require("../../../helpers");
var _m0 = _interopRequireWildcard(require("protobufjs/minimal"));
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== "undefined" && o[Symbol.iterator] || o["@@iterator"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === "number") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e) { throw _e; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e2) { didErr = true; err = _e2; }, f: function f() { try { if (!normalCompletion && it["return"] != null) it["return"](); } finally { if (didErr) throw err; } } }; }
function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i]; return arr2; }
function createBaseParams() {
  return {
    peggyId: "",
    contractSourceHash: "",
    bridgeEthereumAddress: "",
    bridgeChainId: _helpers.Long.UZERO,
    signedValsetsWindow: _helpers.Long.UZERO,
    signedBatchesWindow: _helpers.Long.UZERO,
    signedClaimsWindow: _helpers.Long.UZERO,
    targetBatchTimeout: _helpers.Long.UZERO,
    averageBlockTime: _helpers.Long.UZERO,
    averageEthereumBlockTime: _helpers.Long.UZERO,
    slashFractionValset: new Uint8Array(),
    slashFractionBatch: new Uint8Array(),
    slashFractionClaim: new Uint8Array(),
    slashFractionConflictingClaim: new Uint8Array(),
    unbondSlashingValsetsWindow: _helpers.Long.UZERO,
    slashFractionBadEthSignature: new Uint8Array(),
    cosmosCoinDenom: "",
    cosmosCoinErc20Contract: "",
    claimSlashingEnabled: false,
    bridgeContractStartHeight: _helpers.Long.UZERO,
    valsetReward: undefined
  };
}
var Params = {
  encode: function encode(message) {
    var writer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _m0.Writer.create();
    if (message.peggyId !== "") {
      writer.uint32(10).string(message.peggyId);
    }
    if (message.contractSourceHash !== "") {
      writer.uint32(18).string(message.contractSourceHash);
    }
    if (message.bridgeEthereumAddress !== "") {
      writer.uint32(26).string(message.bridgeEthereumAddress);
    }
    if (!message.bridgeChainId.isZero()) {
      writer.uint32(32).uint64(message.bridgeChainId);
    }
    if (!message.signedValsetsWindow.isZero()) {
      writer.uint32(40).uint64(message.signedValsetsWindow);
    }
    if (!message.signedBatchesWindow.isZero()) {
      writer.uint32(48).uint64(message.signedBatchesWindow);
    }
    if (!message.signedClaimsWindow.isZero()) {
      writer.uint32(56).uint64(message.signedClaimsWindow);
    }
    if (!message.targetBatchTimeout.isZero()) {
      writer.uint32(64).uint64(message.targetBatchTimeout);
    }
    if (!message.averageBlockTime.isZero()) {
      writer.uint32(72).uint64(message.averageBlockTime);
    }
    if (!message.averageEthereumBlockTime.isZero()) {
      writer.uint32(80).uint64(message.averageEthereumBlockTime);
    }
    if (message.slashFractionValset.length !== 0) {
      writer.uint32(90).bytes(message.slashFractionValset);
    }
    if (message.slashFractionBatch.length !== 0) {
      writer.uint32(98).bytes(message.slashFractionBatch);
    }
    if (message.slashFractionClaim.length !== 0) {
      writer.uint32(106).bytes(message.slashFractionClaim);
    }
    if (message.slashFractionConflictingClaim.length !== 0) {
      writer.uint32(114).bytes(message.slashFractionConflictingClaim);
    }
    if (!message.unbondSlashingValsetsWindow.isZero()) {
      writer.uint32(120).uint64(message.unbondSlashingValsetsWindow);
    }
    if (message.slashFractionBadEthSignature.length !== 0) {
      writer.uint32(130).bytes(message.slashFractionBadEthSignature);
    }
    if (message.cosmosCoinDenom !== "") {
      writer.uint32(138).string(message.cosmosCoinDenom);
    }
    if (message.cosmosCoinErc20Contract !== "") {
      writer.uint32(146).string(message.cosmosCoinErc20Contract);
    }
    if (message.claimSlashingEnabled === true) {
      writer.uint32(152).bool(message.claimSlashingEnabled);
    }
    if (!message.bridgeContractStartHeight.isZero()) {
      writer.uint32(160).uint64(message.bridgeContractStartHeight);
    }
    if (message.valsetReward !== undefined) {
      _coin.Coin.encode(message.valsetReward, writer.uint32(170).fork()).ldelim();
    }
    return writer;
  },
  decode: function decode(input, length) {
    var reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
    var end = length === undefined ? reader.len : reader.pos + length;
    var message = createBaseParams();
    while (reader.pos < end) {
      var tag = reader.uint32();
      switch (tag >>> 3) {
        case 1:
          message.peggyId = reader.string();
          break;
        case 2:
          message.contractSourceHash = reader.string();
          break;
        case 3:
          message.bridgeEthereumAddress = reader.string();
          break;
        case 4:
          message.bridgeChainId = reader.uint64();
          break;
        case 5:
          message.signedValsetsWindow = reader.uint64();
          break;
        case 6:
          message.signedBatchesWindow = reader.uint64();
          break;
        case 7:
          message.signedClaimsWindow = reader.uint64();
          break;
        case 8:
          message.targetBatchTimeout = reader.uint64();
          break;
        case 9:
          message.averageBlockTime = reader.uint64();
          break;
        case 10:
          message.averageEthereumBlockTime = reader.uint64();
          break;
        case 11:
          message.slashFractionValset = reader.bytes();
          break;
        case 12:
          message.slashFractionBatch = reader.bytes();
          break;
        case 13:
          message.slashFractionClaim = reader.bytes();
          break;
        case 14:
          message.slashFractionConflictingClaim = reader.bytes();
          break;
        case 15:
          message.unbondSlashingValsetsWindow = reader.uint64();
          break;
        case 16:
          message.slashFractionBadEthSignature = reader.bytes();
          break;
        case 17:
          message.cosmosCoinDenom = reader.string();
          break;
        case 18:
          message.cosmosCoinErc20Contract = reader.string();
          break;
        case 19:
          message.claimSlashingEnabled = reader.bool();
          break;
        case 20:
          message.bridgeContractStartHeight = reader.uint64();
          break;
        case 21:
          message.valsetReward = _coin.Coin.decode(reader, reader.uint32());
          break;
        default:
          reader.skipType(tag & 7);
          break;
      }
    }
    return message;
  },
  fromPartial: function fromPartial(object) {
    var _object$peggyId, _object$contractSourc, _object$bridgeEthereu, _object$slashFraction, _object$slashFraction2, _object$slashFraction3, _object$slashFraction4, _object$slashFraction5, _object$cosmosCoinDen, _object$cosmosCoinErc, _object$claimSlashing;
    var message = createBaseParams();
    message.peggyId = (_object$peggyId = object.peggyId) !== null && _object$peggyId !== void 0 ? _object$peggyId : "";
    message.contractSourceHash = (_object$contractSourc = object.contractSourceHash) !== null && _object$contractSourc !== void 0 ? _object$contractSourc : "";
    message.bridgeEthereumAddress = (_object$bridgeEthereu = object.bridgeEthereumAddress) !== null && _object$bridgeEthereu !== void 0 ? _object$bridgeEthereu : "";
    message.bridgeChainId = object.bridgeChainId !== undefined && object.bridgeChainId !== null ? _helpers.Long.fromValue(object.bridgeChainId) : _helpers.Long.UZERO;
    message.signedValsetsWindow = object.signedValsetsWindow !== undefined && object.signedValsetsWindow !== null ? _helpers.Long.fromValue(object.signedValsetsWindow) : _helpers.Long.UZERO;
    message.signedBatchesWindow = object.signedBatchesWindow !== undefined && object.signedBatchesWindow !== null ? _helpers.Long.fromValue(object.signedBatchesWindow) : _helpers.Long.UZERO;
    message.signedClaimsWindow = object.signedClaimsWindow !== undefined && object.signedClaimsWindow !== null ? _helpers.Long.fromValue(object.signedClaimsWindow) : _helpers.Long.UZERO;
    message.targetBatchTimeout = object.targetBatchTimeout !== undefined && object.targetBatchTimeout !== null ? _helpers.Long.fromValue(object.targetBatchTimeout) : _helpers.Long.UZERO;
    message.averageBlockTime = object.averageBlockTime !== undefined && object.averageBlockTime !== null ? _helpers.Long.fromValue(object.averageBlockTime) : _helpers.Long.UZERO;
    message.averageEthereumBlockTime = object.averageEthereumBlockTime !== undefined && object.averageEthereumBlockTime !== null ? _helpers.Long.fromValue(object.averageEthereumBlockTime) : _helpers.Long.UZERO;
    message.slashFractionValset = (_object$slashFraction = object.slashFractionValset) !== null && _object$slashFraction !== void 0 ? _object$slashFraction : new Uint8Array();
    message.slashFractionBatch = (_object$slashFraction2 = object.slashFractionBatch) !== null && _object$slashFraction2 !== void 0 ? _object$slashFraction2 : new Uint8Array();
    message.slashFractionClaim = (_object$slashFraction3 = object.slashFractionClaim) !== null && _object$slashFraction3 !== void 0 ? _object$slashFraction3 : new Uint8Array();
    message.slashFractionConflictingClaim = (_object$slashFraction4 = object.slashFractionConflictingClaim) !== null && _object$slashFraction4 !== void 0 ? _object$slashFraction4 : new Uint8Array();
    message.unbondSlashingValsetsWindow = object.unbondSlashingValsetsWindow !== undefined && object.unbondSlashingValsetsWindow !== null ? _helpers.Long.fromValue(object.unbondSlashingValsetsWindow) : _helpers.Long.UZERO;
    message.slashFractionBadEthSignature = (_object$slashFraction5 = object.slashFractionBadEthSignature) !== null && _object$slashFraction5 !== void 0 ? _object$slashFraction5 : new Uint8Array();
    message.cosmosCoinDenom = (_object$cosmosCoinDen = object.cosmosCoinDenom) !== null && _object$cosmosCoinDen !== void 0 ? _object$cosmosCoinDen : "";
    message.cosmosCoinErc20Contract = (_object$cosmosCoinErc = object.cosmosCoinErc20Contract) !== null && _object$cosmosCoinErc !== void 0 ? _object$cosmosCoinErc : "";
    message.claimSlashingEnabled = (_object$claimSlashing = object.claimSlashingEnabled) !== null && _object$claimSlashing !== void 0 ? _object$claimSlashing : false;
    message.bridgeContractStartHeight = object.bridgeContractStartHeight !== undefined && object.bridgeContractStartHeight !== null ? _helpers.Long.fromValue(object.bridgeContractStartHeight) : _helpers.Long.UZERO;
    message.valsetReward = object.valsetReward !== undefined && object.valsetReward !== null ? _coin.Coin.fromPartial(object.valsetReward) : undefined;
    return message;
  }
};
exports.Params = Params;
function createBaseGenesisState() {
  return {
    params: undefined,
    lastObservedNonce: _helpers.Long.UZERO,
    valsets: [],
    valsetConfirms: [],
    batches: [],
    batchConfirms: [],
    attestations: [],
    orchestratorAddresses: [],
    erc20ToDenoms: [],
    unbatchedTransfers: [],
    lastObservedEthereumHeight: _helpers.Long.UZERO,
    lastOutgoingBatchId: _helpers.Long.UZERO,
    lastOutgoingPoolId: _helpers.Long.UZERO,
    lastObservedValset: undefined,
    ethereumBlacklist: []
  };
}
var GenesisState = {
  encode: function encode(message) {
    var writer = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : _m0.Writer.create();
    if (message.params !== undefined) {
      Params.encode(message.params, writer.uint32(10).fork()).ldelim();
    }
    if (!message.lastObservedNonce.isZero()) {
      writer.uint32(16).uint64(message.lastObservedNonce);
    }
    var _iterator = _createForOfIteratorHelper(message.valsets),
      _step;
    try {
      for (_iterator.s(); !(_step = _iterator.n()).done;) {
        var v = _step.value;
        _types.Valset.encode(v, writer.uint32(26).fork()).ldelim();
      }
    } catch (err) {
      _iterator.e(err);
    } finally {
      _iterator.f();
    }
    var _iterator2 = _createForOfIteratorHelper(message.valsetConfirms),
      _step2;
    try {
      for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {
        var _v = _step2.value;
        _msgs.MsgValsetConfirm.encode(_v, writer.uint32(34).fork()).ldelim();
      }
    } catch (err) {
      _iterator2.e(err);
    } finally {
      _iterator2.f();
    }
    var _iterator3 = _createForOfIteratorHelper(message.batches),
      _step3;
    try {
      for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {
        var _v2 = _step3.value;
        _batch.OutgoingTxBatch.encode(_v2, writer.uint32(42).fork()).ldelim();
      }
    } catch (err) {
      _iterator3.e(err);
    } finally {
      _iterator3.f();
    }
    var _iterator4 = _createForOfIteratorHelper(message.batchConfirms),
      _step4;
    try {
      for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {
        var _v3 = _step4.value;
        _msgs.MsgConfirmBatch.encode(_v3, writer.uint32(50).fork()).ldelim();
      }
    } catch (err) {
      _iterator4.e(err);
    } finally {
      _iterator4.f();
    }
    var _iterator5 = _createForOfIteratorHelper(message.attestations),
      _step5;
    try {
      for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {
        var _v4 = _step5.value;
        _attestation.Attestation.encode(_v4, writer.uint32(58).fork()).ldelim();
      }
    } catch (err) {
      _iterator5.e(err);
    } finally {
      _iterator5.f();
    }
    var _iterator6 = _createForOfIteratorHelper(message.orchestratorAddresses),
      _step6;
    try {
      for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {
        var _v5 = _step6.value;
        _msgs.MsgSetOrchestratorAddresses.encode(_v5, writer.uint32(66).fork()).ldelim();
      }
    } catch (err) {
      _iterator6.e(err);
    } finally {
      _iterator6.f();
    }
    var _iterator7 = _createForOfIteratorHelper(message.erc20ToDenoms),
      _step7;
    try {
      for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {
        var _v6 = _step7.value;
        _types.ERC20ToDenom.encode(_v6, writer.uint32(74).fork()).ldelim();
      }
    } catch (err) {
      _iterator7.e(err);
    } finally {
      _iterator7.f();
    }
    var _iterator8 = _createForOfIteratorHelper(message.unbatchedTransfers),
      _step8;
    try {
      for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {
        var _v7 = _step8.value;
        _batch.OutgoingTransferTx.encode(_v7, writer.uint32(82).fork()).ldelim();
      }
    } catch (err) {
      _iterator8.e(err);
    } finally {
      _iterator8.f();
    }
    if (!message.lastObservedEthereumHeight.isZero()) {
      writer.uint32(88).uint64(message.lastObservedEthereumHeight);
    }
    if (!message.lastOutgoingBatchId.isZero()) {
      writer.uint32(96).uint64(message.lastOutgoingBatchId);
    }
    if (!message.lastOutgoingPoolId.isZero()) {
      writer.uint32(104).uint64(message.lastOutgoingPoolId);
    }
    if (message.lastObservedValset !== undefined) {
      _types.Valset.encode(message.lastObservedValset, writer.uint32(114).fork()).ldelim();
    }
    var _iterator9 = _createForOfIteratorHelper(message.ethereumBlacklist),
      _step9;
    try {
      for (_iterator9.s(); !(_step9 = _iterator9.n()).done;) {
        var _v8 = _step9.value;
        writer.uint32(122).string(_v8);
      }
    } catch (err) {
      _iterator9.e(err);
    } finally {
      _iterator9.f();
    }
    return writer;
  },
  decode: function decode(input, length) {
    var reader = input instanceof _m0.Reader ? input : new _m0.Reader(input);
    var end = length === undefined ? reader.len : reader.pos + length;
    var message = createBaseGenesisState();
    while (reader.pos < end) {
      var tag = reader.uint32();
      switch (tag >>> 3) {
        case 1:
          message.params = Params.decode(reader, reader.uint32());
          break;
        case 2:
          message.lastObservedNonce = reader.uint64();
          break;
        case 3:
          message.valsets.push(_types.Valset.decode(reader, reader.uint32()));
          break;
        case 4:
          message.valsetConfirms.push(_msgs.MsgValsetConfirm.decode(reader, reader.uint32()));
          break;
        case 5:
          message.batches.push(_batch.OutgoingTxBatch.decode(reader, reader.uint32()));
          break;
        case 6:
          message.batchConfirms.push(_msgs.MsgConfirmBatch.decode(reader, reader.uint32()));
          break;
        case 7:
          message.attestations.push(_attestation.Attestation.decode(reader, reader.uint32()));
          break;
        case 8:
          message.orchestratorAddresses.push(_msgs.MsgSetOrchestratorAddresses.decode(reader, reader.uint32()));
          break;
        case 9:
          message.erc20ToDenoms.push(_types.ERC20ToDenom.decode(reader, reader.uint32()));
          break;
        case 10:
          message.unbatchedTransfers.push(_batch.OutgoingTransferTx.decode(reader, reader.uint32()));
          break;
        case 11:
          message.lastObservedEthereumHeight = reader.uint64();
          break;
        case 12:
          message.lastOutgoingBatchId = reader.uint64();
          break;
        case 13:
          message.lastOutgoingPoolId = reader.uint64();
          break;
        case 14:
          message.lastObservedValset = _types.Valset.decode(reader, reader.uint32());
          break;
        case 15:
          message.ethereumBlacklist.push(reader.string());
          break;
        default:
          reader.skipType(tag & 7);
          break;
      }
    }
    return message;
  },
  fromPartial: function fromPartial(object) {
    var _object$valsets, _object$valsetConfirm, _object$batches, _object$batchConfirms, _object$attestations, _object$orchestratorA, _object$erc20ToDenoms, _object$unbatchedTran, _object$ethereumBlack;
    var message = createBaseGenesisState();
    message.params = object.params !== undefined && object.params !== null ? Params.fromPartial(object.params) : undefined;
    message.lastObservedNonce = object.lastObservedNonce !== undefined && object.lastObservedNonce !== null ? _helpers.Long.fromValue(object.lastObservedNonce) : _helpers.Long.UZERO;
    message.valsets = ((_object$valsets = object.valsets) === null || _object$valsets === void 0 ? void 0 : _object$valsets.map(function (e) {
      return _types.Valset.fromPartial(e);
    })) || [];
    message.valsetConfirms = ((_object$valsetConfirm = object.valsetConfirms) === null || _object$valsetConfirm === void 0 ? void 0 : _object$valsetConfirm.map(function (e) {
      return _msgs.MsgValsetConfirm.fromPartial(e);
    })) || [];
    message.batches = ((_object$batches = object.batches) === null || _object$batches === void 0 ? void 0 : _object$batches.map(function (e) {
      return _batch.OutgoingTxBatch.fromPartial(e);
    })) || [];
    message.batchConfirms = ((_object$batchConfirms = object.batchConfirms) === null || _object$batchConfirms === void 0 ? void 0 : _object$batchConfirms.map(function (e) {
      return _msgs.MsgConfirmBatch.fromPartial(e);
    })) || [];
    message.attestations = ((_object$attestations = object.attestations) === null || _object$attestations === void 0 ? void 0 : _object$attestations.map(function (e) {
      return _attestation.Attestation.fromPartial(e);
    })) || [];
    message.orchestratorAddresses = ((_object$orchestratorA = object.orchestratorAddresses) === null || _object$orchestratorA === void 0 ? void 0 : _object$orchestratorA.map(function (e) {
      return _msgs.MsgSetOrchestratorAddresses.fromPartial(e);
    })) || [];
    message.erc20ToDenoms = ((_object$erc20ToDenoms = object.erc20ToDenoms) === null || _object$erc20ToDenoms === void 0 ? void 0 : _object$erc20ToDenoms.map(function (e) {
      return _types.ERC20ToDenom.fromPartial(e);
    })) || [];
    message.unbatchedTransfers = ((_object$unbatchedTran = object.unbatchedTransfers) === null || _object$unbatchedTran === void 0 ? void 0 : _object$unbatchedTran.map(function (e) {
      return _batch.OutgoingTransferTx.fromPartial(e);
    })) || [];
    message.lastObservedEthereumHeight = object.lastObservedEthereumHeight !== undefined && object.lastObservedEthereumHeight !== null ? _helpers.Long.fromValue(object.lastObservedEthereumHeight) : _helpers.Long.UZERO;
    message.lastOutgoingBatchId = object.lastOutgoingBatchId !== undefined && object.lastOutgoingBatchId !== null ? _helpers.Long.fromValue(object.lastOutgoingBatchId) : _helpers.Long.UZERO;
    message.lastOutgoingPoolId = object.lastOutgoingPoolId !== undefined && object.lastOutgoingPoolId !== null ? _helpers.Long.fromValue(object.lastOutgoingPoolId) : _helpers.Long.UZERO;
    message.lastObservedValset = object.lastObservedValset !== undefined && object.lastObservedValset !== null ? _types.Valset.fromPartial(object.lastObservedValset) : undefined;
    message.ethereumBlacklist = ((_object$ethereumBlack = object.ethereumBlacklist) === null || _object$ethereumBlack === void 0 ? void 0 : _object$ethereumBlack.map(function (e) {
      return e;
    })) || [];
    return message;
  }
};
exports.GenesisState = GenesisState;