# HAQQ IBC Info ## Module vesions Mainnet: github.com/cosmos/ibc-go/v3 v3.2.0 TestEdge-2: github.com/cosmos/ibc-go/v5 v5.2.0 ## Integrations: - Gravity Bridge - Axelar Network ## Networks - Gravity Bridge (MainNet) - Axelar Lisbon Testnet - HAQQ (Mainnet/TestEdge2) ## Tooling - **Hermes** roles: - ibc relayer - create ibc entities (clients, connections, channels) - update ibc clients repo link: https://github.com/informalsystems/hermes - **Gravity Orchestrator** roles: - custom relayer repo link: https://github.com/Gravity-Bridge/Gravity-Docs/blob/main/docs/relaying.md#running-a-relayer ## HAQQ Special case for Mainnet Currently, IBC Protocol is programmatically restricted to receiving and sending packets with exemptions. Only one account controlled by the team has permission to utilize the protocol functionality fully. ref: https://github.com/haqq-network/haqq/blob/master/x/ibc/apps/firewall/ibc_middleware.go#L55 These restrictions will be lifted after the official listing via the GOV Software Update proposal. --- We also have some rules for the `TestEdge-1` network, which is not currently running. `TestEdge-2` don't have any limitations. ## Gravity proposal and contracts ### Proposals **Mainnet**: https://www.mintscan.io/gravity-bridge/proposals/92 **TestEdge2**: https://www.mintscan.io/gravity-bridge/proposals/80 ### Contracts The Gravity Bridge Blockchain contract address is: [0xa4108aA1Ec4967F8b52220a4f7e94A8201F2D906](https://etherscan.io/address/0xa4108aA1Ec4967F8b52220a4f7e94A8201F2D906) The Islamic Coin Test Token ERC20 contract is: [0x81eAaFd60C8A4f4dabb4e127B8E50600528ebd1F](https://etherscan.io/address/0x81eAaFd60C8A4f4dabb4e127B8E50600528ebd1F) --- # Routes ### Gravity Bridge (chain_id: gravity-bridge-3) *Gravity Bridge -> HAQQ TestEdge2*: `07-tendermint-181` -> `connection-156` -> `channel-94` *Gravity Bridge -> HAQQ Mainnet*: `07-tendermint-192` -> `connection-163` -> `channel-100` ### Axelar Lisbon Testnet (chain_id: axelar-testnet-lisbon-3) *Axelar Lisbon -> HAQQ TestEdge2*: `07-tendermint-253` -> `connection-334` -> `channel-230` ### HAQQ TestEdge2 (chain_id: haqq_54211-3) *HAQQ TestEdge2 -> Gravity*: `07-tendermint-1` -> `connection-0` -> `channel-0` *HAQQ TestEdge2 -> Axelar Lisbon*: `07-tendermint-12` -> `connection-11` -> `channel-3` ### HAQQ Mainnet (chain_id: haqq_11235-1) *HAQQ Mainnet -> Gravity*: `07-tendermint-0` -> `connection-0` -> `channel-0` ## Hermes Networks config ``` # Add to the end of existing config.toml [[chains]] id = 'gravity-bridge-3' websocket_addr = 'ws://chainripper-2.althea.net:26657/websocket' rpc_addr = 'https://gravity-rpc.polkachu.com:443/' grpc_addr = 'http://gravity-grpc.polkachu.com:14290' rpc_timeout = '15s' account_prefix = 'gravity' key_name = 'gravitykey' store_prefix = 'ibc' default_gas = 100000 max_gas = 10000000 gas_price = { price = 0.005, denom = 'ugraviton' } gas_multiplier = 1.1 max_msg_num = 30 max_tx_size = 2097152 clock_drift = '5s' max_block_time = '15s' trusting_period = '14days' trust_threshold = { numerator = '1', denominator = '3' } address_type = { derivation = 'cosmos' } [chains.packet_filter] policy = 'allow' list = [ [ 'transfer', 'channel-94', ], [ 'transfer', 'channel-100', ], ] [[chains]] id = 'haqq_54211-3' rpc_addr = 'https://rpc.tm.testedge2.haqq.network:443' grpc_addr = 'http://34.91.46.0:9090' websocket_addr = 'wss://te2-s1-tm.haqq.sh:443/websocket' rpc_timeout = '15s' account_prefix = 'haqq' key_name = 'haqqtestedgekey' store_prefix = 'ibc' default_gas = 100000 max_gas = 10000000 gas_price = { price = 0.025, denom = 'aISLM' } gas_multiplier = 1.1 max_msg_num = 30 max_tx_size = 2097152 #clock_drift = '10s' # for Gravity Bridge clock_drift = '5s' max_block_time = '15s' trusting_period = '112hours' trust_threshold = { numerator = '1', denominator = '3' } address_type = { derivation = 'ethermint', proto_type = { pk_type = '/ethermint.crypto.v1.ethsecp256k1.PubKey' } } [chains.packet_filter] policy = 'allow' list = [ [ 'transfer', 'channel-0', ], [ 'transfer', 'channel-3', ], ] [[chains]] id = 'haqq_11235-1' rpc_addr = 'https://m-s1-tm.haqq.sh:443' grpc_addr = 'http://m-s1-grpc.haqq.sh:1337' websocket_addr = 'wss://m-s1-tm.haqq.sh:443/websocket' rpc_timeout = '15s' account_prefix = 'haqq' key_name = 'haqqmainnetkey' store_prefix = 'ibc' default_gas = 100000 max_gas = 10000000 gas_price = { price = 0.025, denom = 'aISLM' } gas_multiplier = 1.1 max_msg_num = 30 max_tx_size = 2097152 clock_drift = '5s' max_block_time = '15s' trusting_period = '14days' trust_threshold = { numerator = '1', denominator = '3' } address_type = { derivation = 'ethermint', proto_type = { pk_type = '/ethermint.crypto.v1.ethsecp256k1.PubKey' } } [chains.packet_filter] policy = 'allow' list = [[ 'transfer', 'channel-0', ]] [[chains]] id = 'axelar-testnet-lisbon-3' rpc_addr = 'https://axelar-rpc-1.staketab.org:443' grpc_addr = 'http://services.staketab.com:9090' websocket_addr = 'wss://axelartest-rpc.quantnode.tech:443/websocket' rpc_timeout = '15s' account_prefix = 'axelar' key_name = 'axelartestkey' store_prefix = 'ibc' default_gas = 100000 max_gas = 10000000 gas_price = { price = 0.05, denom = 'uaxl' } gas_multiplier = 1.1 max_msg_num = 30 max_tx_size = 2097152 clock_drift = '5s' max_block_time = '15s' trusting_period = '112hours' trust_threshold = { numerator = '1', denominator = '3' } address_type = { derivation = 'cosmos' } [chains.packet_filter] policy = 'allow' list = [[ 'transfer', 'channel-230', ]] ``` --- ## Useful links Gravity Bridge: HAQQ Network — Ethereum https://hackmd.io/O_ysQZsSTYu9eAspyzlQvw Run Hermes Relayer https://hackmd.io/6OKr_lpkSDO7h2EsiLjllA