{

"versioning": [
  {
    "runtime_range": [
      1,
      23
    ],
    "types": {
      "ElectionResultT": {
        "type": "struct",
        "type_mapping": [
          [
            "elected_stashes",
            "Vec<AccountId>"
          ],
          [
            "exposures",
            "Vec<(AccountId, ExposureT)>"
          ],
          [
            "compute",
            "ElectionCompute"
          ]
        ]
      }
    }
  },
  {
    "runtime_range": [
      1,
      22
    ],
    "types": {
      "Address": "AccountId",
      "LookupSource": "AccountId"
    }
  },
  {
    "runtime_range": [
      16,
      24
    ],
    "types": {
      "ScheduledAuthoritiesChangeT": {
        "type": "struct",
        "type_mapping": [
          [
            "next_authorities",
            "Vec<RelayAuthorityT>"
          ],
          [
            "deadline",
            "BlockNumber"
          ]
        ]
      }
    }
  },
  {
    "runtime_range": [
      15,
      24
    ],
    "types": {
      "OpCode": "[u8; 4]"
    }
  },
  {
    "runtime_range": [
      15,
      15
    ],
    "types": {
      "ScheduledAuthoritiesChange": {
        "type": "struct",
        "type_mapping": [
          [
            "next_authorities",
            "Vec<RelayAuthorityT>"
          ],
          [
            "deadline",
            "BlockNumber"
          ]
        ]
      }
    }
  },
  {
    "runtime_range": [
      1,
      9
    ],
    "types": {
      "OtherSignature": {
        "type": "enum",
        "type_mapping": [
          [
            "Eth",
            "EcdsaSignature"
          ],
          [
            "Tron",
            "EcdsaSignature"
          ]
        ]
      },
      "EcdsaSignature": "[u8; 65]",
      "OtherAddress": {
        "type": "enum",
        "type_mapping": [
          [
            "Eth",
            "[u8; 20]"
          ],
          [
            "Tron",
            "[u8; 20]"
          ]
        ]
      },
      "AddressT": "[u8; 20]",
      "MerkleMountainRangeRootLog": {
        "type": "struct",
        "type_mapping": [
          [
            "prefix",
            "[u8; 4]"
          ],
          [
            "mmr_root",
            "Hash"
          ]
        ]
      }
    }
  },
  {
    "runtime_range": [
      10,
      24
    ],
    "types": {
      "EcdsaMessage": "[u8; 32]",
      "RelayAuthoritySigner": "EthereumAddress",
      "RelayAuthorityMessage": "EcdsaMessage",
      "RelayAuthoritySignature": "EcdsaSignature",
      "Term": "u32",
      "RelayAuthorityT": {
        "type": "struct",
        "type_mapping": [
          [
            "account_id",
            "AccountId"
          ],
          [
            "signer",
            "Signer"
          ],
          [
            "stake",
            "Balance"
          ],
          [
            "term",
            "BlockNumber"
          ]
        ]
      },
      "MMRRoot": "Hash",
      "MerkleMountainRangeRootLog": {
        "type": "struct",
        "type_mapping": [
          [
            "prefix",
            "[u8; 4]"
          ],
          [
            "parent_mmr_root",
            "Hash"
          ]
        ]
      },
      "EthereumRelayHeaderParcel": {
        "type": "struct",
        "type_mapping": [
          [
            "header",
            "EthereumHeader"
          ],
          [
            "parent_mmr_root",
            "H256"
          ]
        ]
      }
    }
  },
  {
    "runtime_range": [
      6,
      24
    ],
    "types": {
      "ProxyType": {
        "type": "enum",
        "type_mapping": [
          [
            "Any",
            "Null"
          ],
          [
            "NonTransfer",
            "Null"
          ],
          [
            "Governance",
            "Null"
          ],
          [
            "Staking",
            "Null"
          ],
          [
            "IdentityJudgement",
            "Null"
          ],
          [
            "EthereumBridge",
            "Null"
          ]
        ]
      },
      "RelayProofs": "EthereumRelayProofs"
    }
  },
  {
    "runtime_range": [
      5,
      24
    ],
    "types": {
      "RelayVotingState": {
        "type": "struct",
        "type_mapping": [
          [
            "ayes",
            "Vec<AccountId>"
          ],
          [
            "nays",
            "Vec<AccountId>"
          ]
        ]
      },
      "RelayHeaderId": "EthereumBlockNumber",
      "RelayHeaderParcel": "EthereumRelayHeaderParcel",
      "RelayAffirmationId": {
        "type": "struct",
        "type_mapping": [
          [
            "game_id",
            "EthereumBlockNumber"
          ],
          [
            "round",
            "u32"
          ],
          [
            "index",
            "u32"
          ]
        ]
      },
      "RelayAffirmationT": {
        "type": "struct",
        "type_mapping": [
          [
            "relayer",
            "AccountId"
          ],
          [
            "relay_header_parcels",
            "EthereumRelayHeaderParcel"
          ],
          [
            "bond",
            "Balance"
          ],
          [
            "maybe_extended_relay_affirmation_id",
            "Option<RelayAffirmationId>"
          ],
          [
            "verified",
            "bool"
          ]
        ]
      }
    }
  },
  {
    "runtime_range": [
      5,
      5
    ],
    "types": {
      "ProxyType": {
        "type": "enum",
        "type_mapping": [
          [
            "Any",
            "Null"
          ],
          [
            "NonTransfer",
            "Null"
          ],
          [
            "Staking",
            "Null"
          ],
          [
            "IdentityJudgement",
            "Null"
          ],
          [
            "EthereumBridge",
            "Null"
          ],
          [
            "Governance",
            "Null"
          ]
        ]
      },
      "RelayProofs": "EthereumRelayProof"
    }
  },
  {
    "runtime_range": [
      1,
      3
    ],
    "types": {
      "EthereumHeaderBrief": {
        "type": "struct",
        "type_mapping": [
          [
            "total_difficulty",
            "U256"
          ],
          [
            "parent_hash",
            "H256"
          ],
          [
            "number",
            "EthereumBlockNumber"
          ],
          [
            "relayer",
            "AccountId"
          ]
        ]
      },
      "EthereumHeaderThingWithProof": {
        "type": "struct",
        "type_mapping": [
          [
            "header",
            "EthereumHeader"
          ],
          [
            "ethash_proof",
            "Vec<EthashProof>"
          ],
          [
            "mmr_root",
            "H256"
          ],
          [
            "mmr_proof",
            "Vec<H256>"
          ]
        ]
      },
      "EthereumHeaderThing": {
        "type": "struct",
        "type_mapping": [
          [
            "header",
            "EthereumHeader"
          ],
          [
            "mmr_root",
            "H256"
          ]
        ]
      },
      "Round": "u64",
      "TcHeaderThingWithProof": "EthereumHeaderThingWithProof",
      "TcHeaderThing": "EthereumHeaderThing",
      "TcBlockNumber": "u64",
      "TcHeaderHash": "H256",
      "GameId": "TcBlockNumber",
      "RelayProposalT": {
        "type": "struct",
        "type_mapping": [
          [
            "relayer",
            "AccountId"
          ],
          [
            "bonded_proposal",
            "Vec<(Balance, TcHeaderThing)>"
          ],
          [
            "extend_from_header_hash",
            "Option<TcHeaderHash>"
          ]
        ]
      }
    }
  },
  {
    "runtime_range": [
      4,
      24
    ],
    "types": {
      "EthereumRelayProofs": {
        "type": "struct",
        "type_mapping": [
          [
            "ethash_proof",
            "Vec<EthashProof>"
          ],
          [
            "mmr_proof",
            "Vec<H256>"
          ]
        ]
      }
    }
  },
  {
    "runtime_range": [
      4,
      9
    ],
    "types": {
      "EthereumRelayHeaderParcel": {
        "type": "struct",
        "type_mapping": [
          [
            "header",
            "EthereumHeader"
          ],
          [
            "mmr_root",
            "H256"
          ]
        ]
      }
    }
  },
  {
    "runtime_range": [
      4,
      4
    ],
    "types": {
      "RelayHeaderId": "Vec<u8>",
      "RelayHeaderParcel": "Vec<u8>",
      "RelayAffirmationId": {
        "type": "struct",
        "type_mapping": [
          [
            "relay_header_id",
            "Vec<u8>"
          ],
          [
            "round",
            "u32"
          ],
          [
            "index",
            "u32"
          ]
        ]
      },
      "RelayAffirmationT": {
        "type": "struct",
        "type_mapping": [
          [
            "relayer",
            "AccountId"
          ],
          [
            "relay_header_parcels",
            "Vec<u8>"
          ],
          [
            "bond",
            "Balance"
          ],
          [
            "maybe_extended_relay_affirmation_id",
            "Option<Vec<u8>>"
          ],
          [
            "verified",
            "bool"
          ]
        ]
      },
      "RelayProofs": "Vec<u8>"
    }
  }
],
"types": {
  "BalanceLock": {
    "type": "struct",
    "type_mapping": [
      [
        "id",
        "LockIdentifier"
      ],
      [
        "lock_for",
        "LockFor"
      ],
      [
        "lock_reasons",
        "LockReasons"
      ],
      [
        "amount",
        "Balance"
      ],
      [
        "reasons",
        "Reasons"
      ]
    ]
  },
  "LockFor": {
    "type": "enum",
    "type_mapping": [
      [
        "Common",
        "Common"
      ],
      [
        "Staking",
        "StakingLock"
      ]
    ]
  },
  "Common": {
    "type": "struct",
    "type_mapping": [
      [
        "amount",
        "Balance"
      ]
    ]
  },
  "StakingLock": {
    "type": "struct",
    "type_mapping": [
      [
        "staking_amount",
        "Balance"
      ],
      [
        "unbondings",
        "Vec<Unbonding>"
      ]
    ]
  },
  "LockReasons": {
    "type": "enum",
    "type_mapping": [
      [
        "Fee",
        "Null"
      ],
      [
        "Misc",
        "Null"
      ],
      [
        "All",
        "Null"
      ]
    ]
  },
  "Unbonding": {
    "type": "struct",
    "type_mapping": [
      [
        "amount",
        "Balance"
      ],
      [
        "until",
        "BlockNumber"
      ]
    ]
  },
  "AccountData": {
    "type": "struct",
    "type_mapping": [
      [
        "free",
        "Balance"
      ],
      [
        "reserved",
        "Balance"
      ],
      [
        "free_kton",
        "Balance"
      ],
      [
        "reserved_kton",
        "Balance"
      ],
      [
        "misc_frozen",
        "Balance"
      ],
      [
        "fee_frozen",
        "Balance"
      ]
    ]
  },
  "RingBalance": "Balance",
  "KtonBalance": "Balance",
  "TsInMs": "u64",
  "Power": "u32",
  "DepositId": "U256",
  "StakingBalanceT": {
    "type": "enum",
    "type_mapping": [
      [
        "RingBalance",
        "Balance"
      ],
      [
        "KtonBalance",
        "Balance"
      ]
    ]
  },
  "StakingLedgerT": {
    "type": "struct",
    "type_mapping": [
      [
        "stash",
        "AccountId"
      ],
      [
        "active_ring",
        "Compact<Balance>"
      ],
      [
        "active_deposit_ring",
        "Compact<Balance>"
      ],
      [
        "active_kton",
        "Compact<Balance>"
      ],
      [
        "deposit_items",
        "Vec<TimeDepositItem>"
      ],
      [
        "ring_staking_lock",
        "StakingLock"
      ],
      [
        "kton_staking_lock",
        "StakingLock"
      ],
      [
        "claimed_rewards",
        "Vec<EraIndex>"
      ],
      [
        "total",
        "Compact<Balance>"
      ],
      [
        "active",
        "Compact<Balance>"
      ],
      [
        "unlocking",
        "Vec<UnlockChunk>"
      ]
    ]
  },
  "TimeDepositItem": {
    "type": "struct",
    "type_mapping": [
      [
        "value",
        "Compact<Balance>"
      ],
      [
        "start_time",
        "Compact<TsInMs>"
      ],
      [
        "expire_time",
        "Compact<TsInMs>"
      ]
    ]
  },
  "ExposureT": {
    "type": "struct",
    "type_mapping": [
      [
        "own_ring_balance",
        "Compact<Balance>"
      ],
      [
        "own_kton_balance",
        "Compact<Balance>"
      ],
      [
        "own_power",
        "Power"
      ],
      [
        "total_power",
        "Power"
      ],
      [
        "others",
        "Vec<IndividualExposure>"
      ]
    ]
  },
  "IndividualExposure": {
    "type": "struct",
    "type_mapping": [
      [
        "who",
        "AccountId"
      ],
      [
        "ring_balance",
        "Compact<Balance>"
      ],
      [
        "kton_balance",
        "Compact<Balance>"
      ],
      [
        "power",
        "Power"
      ],
      [
        "value",
        "Compact<Balance>"
      ]
    ]
  },
  "RKT": {
    "type": "struct",
    "type_mapping": [
      [
        "r",
        "Balance"
      ],
      [
        "k",
        "Balance"
      ]
    ]
  },
  "SpanRecord": {
    "type": "struct",
    "type_mapping": [
      [
        "slashed",
        "RKT"
      ],
      [
        "paid_out",
        "RKT"
      ]
    ]
  },
  "UnappliedSlash": {
    "type": "struct",
    "type_mapping": [
      [
        "validator",
        "AccountId"
      ],
      [
        "own",
        "RKT"
      ],
      [
        "others",
        "Vec<(AccountId, RKT)>"
      ],
      [
        "reporters",
        "Vec<AccountId>"
      ],
      [
        "payout",
        "RKT"
      ]
    ]
  },
  "TreasuryProposal": {
    "type": "struct",
    "type_mapping": [
      [
        "proposer",
        "AccountId"
      ],
      [
        "beneficiary",
        "AccountId"
      ],
      [
        "ring_value",
        "Balance"
      ],
      [
        "kton_value",
        "Balance"
      ],
      [
        "ring_bond",
        "Balance"
      ],
      [
        "kton_bond",
        "Balance"
      ]
    ]
  },
  "MappedRing": "u128",
  "EthereumTransactionIndex": "(H256, u64)",
  "EthereumBlockNumber": "u64",
  "EthereumHeader": {
    "type": "struct",
    "type_mapping": [
      [
        "parent_hash",
        "H256"
      ],
      [
        "timestamp",
        "u64"
      ],
      [
        "number",
        "EthereumBlockNumber"
      ],
      [
        "author",
        "EthereumAddress"
      ],
      [
        "transactions_root",
        "H256"
      ],
      [
        "uncles_hash",
        "H256"
      ],
      [
        "extra_data",
        "Bytes"
      ],
      [
        "state_root",
        "H256"
      ],
      [
        "receipts_root",
        "H256"
      ],
      [
        "log_bloom",
        "Bloom"
      ],
      [
        "gas_used",
        "U256"
      ],
      [
        "gas_limit",
        "U256"
      ],
      [
        "difficulty",
        "U256"
      ],
      [
        "seal",
        "Vec<Bytes>"
      ],
      [
        "hash",
        "Option<H256>"
      ]
    ]
  },
  "EthereumAddress": "H160",
  "Bloom": "[u8; 256]",
  "H128": "[u8; 16]",
  "EthashProof": {
    "type": "struct",
    "type_mapping": [
      [
        "dag_nodes",
        "(H512, H512)"
      ],
      [
        "proof",
        "Vec<H128>"
      ]
    ]
  },
  "EthereumReceipt": {
    "type": "struct",
    "type_mapping": [
      [
        "gas_used",
        "U256"
      ],
      [
        "log_bloom",
        "Bloom"
      ],
      [
        "logs",
        "Vec<LogEntry>"
      ],
      [
        "outcome",
        "TransactionOutcome"
      ]
    ]
  },
  "EthereumNetworkType": {
    "type": "enum",
    "type_mapping": [
      [
        "Mainnet",
        "Null"
      ],
      [
        "Ropsten",
        "Null"
      ]
    ]
  },
  "RedeemFor": {
    "type": "enum",
    "type_mapping": [
      [
        "Token",
        "Null"
      ],
      [
        "Deposit",
        "Null"
      ]
    ]
  },
  "EthereumReceiptProof": {
    "type": "struct",
    "type_mapping": [
      [
        "index",
        "u64"
      ],
      [
        "proof",
        "Bytes"
      ],
      [
        "header_hash",
        "H256"
      ]
    ]
  },
  "EthereumReceiptProofThing": "(EthereumHeader, EthereumReceiptProof, MMRProof)",
  "MMRProof": {
    "type": "struct",
    "type_mapping": [
      [
        "member_leaf_index",
        "u64"
      ],
      [
        "last_leaf_index",
        "u64"
      ],
      [
        "proof",
        "Vec<H256>"
      ]
    ]
  },
  "BalancesRuntimeDispatchInfo": {
    "type": "struct",
    "type_mapping": [
      [
        "usable_balance",
        "Balance"
      ]
    ]
  },
  "StakingRuntimeDispatchInfo": {
    "type": "struct",
    "type_mapping": [
      [
        "power",
        "Power"
      ]
    ]
  }
}

}