Tag:
Branch:
Tree:
02d5549608
0.2.4
0.4.1
0.5.0
0.5.1
0.5.2
0.5.3
06-19-add_ci-default-test
07-01-feat_cli_Add_hyperlane_warp_apply
1.0.0-beta8
3.1.4
CODEOWNERS-ascii
Defcon023/mock_mailbox_size_check
add-delegate
aggregation-hook-improvements
ameten/non-native-token
ameten/scraper-sealevel-e2e
ameten/sealevel-delivery-sequence
ancient8-eth-verify
asaj/addresses
asaj/agent-dev-env
asaj/announce
asaj/block-skew
asaj/check-middlewares
asaj/check-ownables
asaj/ci
asaj/ci-try
asaj/count-lag
asaj/debug
asaj/debug-ci
asaj/deploy
asaj/deploy-ergonomics
asaj/e2e-fast
asaj/enroll
asaj/fern
asaj/gas-profiling
asaj/hardhat
asaj/hardhat-plugin
asaj/hardhat-task
asaj/hooks
asaj/image
asaj/inbox-checkpoints
asaj/index
asaj/kathy-7
asaj/kathy-9
asaj/key-funder
asaj/lag-count
asaj/ll
asaj/metadata-debug
asaj/new-update
asaj/ownable-replicas-dev
asaj/ownership
asaj/ownerships
asaj/ownersss
asaj/pd
asaj/pi-deployer
asaj/poc
asaj/prettier
asaj/readonly
asaj/relayer-checkpoints
asaj/relayer-isms
asaj/router-govern
asaj/schnorr
asaj/schnorr-2
asaj/sdk-proposal
asaj/sealevel-inclusive
asaj/serialize
asaj/solc
asaj/sovereign
asaj/suffix
asaj/upgrade-dev-scripts
asaj/upgrade-rotate-updater
asaj/upgrades
asaj/v2-create2
asaj/v2-exploration
asaj/v2-helm
asaj/v2-main
asaj/workflows
asaj/zkevm
audit-coverage
audit-q3-2024
avious00-link-to-loglevel
avious00-typo-patch
aws-signer-retry
benchmark-multisig
buddies-main-deployment
build-ccip-server
changeset-release/main
changeset-release/release-test
checkInflight
ci-by-path
cli-2.0-beta
cli-figlet
cli-patches
core-msg-encoding
cosmos-gas-prices
cover-mailbox-100%
coverage-flake
create2-deploy
dan/aggregation-ism-rc
dan/bump-relayer-image
dan/configurable-fallback-deprio
dan/cw-types-reuse
dan/debug-cosmos-rpc
dan/e2e-fixes
dan/eip1967
dan/fast-relayer-startup-e2e
dan/gas-escalator-middleware
dan/index-range-refactor
dan/injective-e2e
dan/injective-testnet-agents
dan/keypair-cosmrs
dan/local-svm-setup
dan/lower-txid-channel-size
dan/merkle-tree-hook-indexer
dan/non-evm-cli-warp-deploy
dan/osmosis-test
dan/processed-commitment-sealevel
dan/rc-relayer-profiling
dan/relayer-images-bump
dan/relayer-migrations
dan/retry-cosmos-e2e
dan/rocksdb-config
dan/rust-caching
dan/stage-agent-fixes
dan/testnet-aggregation-ism
dan/tmp-branch
dan/token-config-schema
dan/v3-e2e
dan/v3-sealevel-e2e
dan/va-urls
dan/zksync-testing
danil/validator_deployment_latest_image
deploy-create2-factory-moonbeam
deploy-ica-proxied
deploy-middlewares-1.3.1
deploy-wait
deployer-options
docs-simplifications
drew/manual_processing_config
dynamic-cli-version
eigenlayer
erc165
fallback-routing-hook-deployer
feat/hl-starknet-29-oct
feat/v3-cosmos
flexible-voting-vault
github-pr-stats
hook-agent-testing
hook-ism-contract-READMEs
injective-ism-fix
interchain-call-tests
kunal/arb-l2-hook-contracts
kunal/arb-selfrelay
kunal/arb-sepolia-deployment
kunal/ascii-art
kunal/avs-contract-deployment
kunal/avs-temp
kunal/avs-update-reward
kunal/avs-validator-check-status
kunal/bump-solana-prio-fee-further
kunal/check-msg-value-send-auth-hooks
kunal/ci-checker-warp-fix
kunal/cli-register-ci
kunal/default-hook
kunal/ica-deployment
kunal/ica-govern-testing
kunal/igp-hook
kunal/ism-factory-warp-deploy
kunal/l2-native-bridge-hook
kunal/latest-height-merkle-root-index
kunal/manta-gas-overpayment-fix
kunal/messageIdAuth-replay-protection
kunal/native-arbitrum-hook
kunal/native-gnosis-hook
kunal/native-polygon-hook
kunal/null-metadata
kunal/op-stack-hook-custom-test
kunal/orphan-format-igp-async
kunal/ownable-caching-hook
kunal/rc-kathy-ism-config
kunal/relayer-metadata-null
kunal/revert-multisig-interface
kunal/revert-weighted-multisig-changes
kunal/rez-avs
kunal/special-case-plume-testnet
kunal/stake-weighted-ism
kunal/update-gasOracle-cron-job
kunal/update-gasOracle-deployer
kunal/v3-pr-comments-fixes
kunal/validator-el-sig-posting
kunal/validator-endpoints
kunal/value-router
kunal/verifiedMessageId-param
kunal/verify-ica
kunal/warp-route-checker
kunal/weighted-ism-relayer-change
light-optimistic
lint.only
liquidity-layer-v2
ltyu/core-apply-defaultIsm
ltyu/hook-config
ltyu/sp1-lightclient-ism
ltyu/warp-apply-hook
ltyu/warp-ism-config
ltyu/zerion-configs
mailbox-branch
mailbox-chainid
main
main-auditv2-merge
main-node-ci
main-to-v3
mattie/512-bit-txoutcomes
mattie/auto-update-prs
mattie/automated-vendoring
mattie/caching-requests
mattie/cosmos-stubs
mattie/finality-blocks-config
mattie/fix-kathy
mattie/inclusive-block-range
mattie/infra-drift-fix
mattie/large-runners
mattie/optional-agent-configuration
mattie/reclaim-funds-from-old-relayer-keys
mattie/relayer-debugging
mattie/sealevel-better-patching
mattie/sealevel-dependency-conflicts-fix
mattie/sealevel/dependencies-part-2
mattie/serejke-fix-1924
mattie/typescript-provider-timeouts
mattie/zkevm-context
merkle-tree-hook-indexer
merkle-vs-mapping
mo/check-avs-cli-command
mo/infra-warp-config-generation
mo/key-funder-debug
mo/keyfunder-707db4a27
mo/non-aw-owned-proxy-checks
mo/verify-proxy-contracts
monitor-war-routes-general
multi-message-relay
multisig-init
nam-rebase
nambrot-patch-1
nambrot/add-gcp-address-to-allconfigs
nambrot/arc-test
nambrot/callforwarder
nambrot/celo-safe
nambrot/chain-connection-to-provider
nambrot/checkpointer-local
nambrot/ci-build
nambrot/circle-relayer
nambrot/core-deploy-fixes
nambrot/debug-fork-ci
nambrot/deploy-aggregation-relayer
nambrot/deploy-helloworld
nambrot/deploy-igp
nambrot/deploy-test-recipient
nambrot/deployment-tooling
nambrot/dev-community
nambrot/dockerignore
nambrot/double-update-script
nambrot/extra-partial-config
nambrot/failed-refactor
nambrot/fix-contract-metrics-avalanche
nambrot/fix-contracts-metrics
nambrot/fix-polygon-updater-old-root
nambrot/foundry-in-ica
nambrot/fundraise-xapp
nambrot/generate-message-with-proof
nambrot/hyp7683
nambrot/igp-deployment-woes
nambrot/in-over-or
nambrot/infra-multiprovider
nambrot/kurtosis-cli
nambrot/loop-with-sleep
nambrot/manual-processing-deploy
nambrot/mintable-token-standard
nambrot/nam-run-feedback
nambrot/optics-ts-interface
nambrot/oracle-updates
nambrot/owner-without-ism
nambrot/parallelize-sol-testing
nambrot/polygon-updater-rotation
nambrot/processor-s3-pusher
nambrot/publish-script
nambrot/relay-specific-message
nambrot/remove-dependabot
nambrot/rename-abacus-solidity-typechain
nambrot/rename-network-to-chain
nambrot/repro-2-2-run-locally
nambrot/resolve-lock
nambrot/rotate-mainnet-etherscan
nambrot/rpc-validator
nambrot/scroll-overrides
nambrot/sdk-0.2.4
nambrot/selective-index-on
nambrot/speed-up-events
nambrot/staging-community-provider
nambrot/static-igp
nambrot/superchain-ism
nambrot/trace-level-s3
nambrot/transfer-owner-no-op
nambrot/try-gas-payment-test-abstraction
nambrot/update-kathy
nambrot/update-optics-provider
nambrot/updater-pause
nambrot/verification-fies
nambrot/watcher-test
nambrot/yo-deploy
nexus-neutron-validators
noah/agg-failure
noah/co
noah/dr-fix
noah/move-safe
noah/no-warp
noah/node-expwarn-cli
noah/prompt
noah/root
noah/warp-ica
noah/zod-2
op-interceptor-deployer
op-stack-hook-deployment
opt-mailbox-delivered
optics-v2
parameterize-infra-paths
pb/chore-test-conditions
pb/duplicate-chainid-support
pb/enable-hyperliquidevmtestnet
pb/sprint32-mainnet
pb/stride-va
pb/submitter-types
pb/test-e2e-breaks
pb/turbo
pb/validator-gcp
pb/validator-version-checker
pb/verify-viction
pb/zerion
pb/zksync
pjson-pruning
pr-analytics
processor-fixes
public-main
rc-validators
rebalance-collateral
retry-signer
reverse-ica
revert-964-hacken-critical-1
rossy/cli-version-fix
rossy/multiprovider-no-generic
router-not-upgradeable
router<0.8
routing-interceptor
rpc-fork-cache
schema-fixes
sdk-release
snapshot-igp-config
storage-ism
submodules-1.0.0
submodules-path-2
suppress-coverage-patch
symbiotic
test-recipient-ism-config
test-sol-fixes
test-sol-speed
testnet-dtm
testnet4
testnet4-deployment
tmp-keyfunder
token-testing-forge
transfer-and-call
transient-current-message-id
trevor/1.4.2-beta69
trevor/add-injective-back
trevor/addtl-igp-cmds
trevor/arbitrum-gas-amounts
trevor/bridge-app-interchain-gas-contracts
trevor/conditional-middlewares-suck
trevor/cosmos-cleanup-2
trevor/dao-ism
trevor/debug-verbosity
trevor/debugging-sept-21
trevor/decimal-consistency-checker
trevor/dependency-attempts
trevor/deploy-relayer-funder-multi-context
trevor/deploy-testrecipient-rollup-testnets
trevor/deploy-v2
trevor/deploy-v2-relayer-feb-1-2024
trevor/deploying-ancient8
trevor/deploying-to-zbc-testnet
trevor/disable-rarichain-rpc
trevor/eclipsedevnet-deploy
trevor/env-var-tip
trevor/fallback-igp
trevor/fastusd-infra-checking
trevor/fix-announcement-issues
trevor/fix-e2e-mar-31
trevor/fix-feat/deploy-new-rc
trevor/fix-inaccurate-svm-comment
trevor/fix-polygon-updater-old-root
trevor/gelato-mainnet-abacus
trevor/gelato-testnet2
trevor/grpc-refactor
trevor/hacky-nautilus-indexing-fix-attempt
trevor/helloworld-check-mostly-works
trevor/helloworld-program
trevor/helloworld-program-and-tooling-not-working
trevor/higher-sol-fees
trevor/key-funder-fallbackprovider
trevor/last-agent-release
trevor/legacy-ethers
trevor/local-igp-for-playing-with
trevor/lz-reorg-periods
trevor/mainnet-rc-quorumprovider
trevor/merge-main-jul-6
trevor/merge-v3
trevor/merkle-indexing-as-message
trevor/native-warp-route-allow-donate
trevor/new-featv3-cosmos
trevor/nits-and-no-invariant
trevor/no-address-filter
trevor/no-eip-1559
trevor/on-chain-fee-quoting-calculator
trevor/opentelemetry
trevor/opentelemetry-stackdriver
trevor/oracle-updates-mode-blast-try-batching
trevor/parallel-pod-management-policy
trevor/play-with-ci
trevor/playing-with-validator-announce
trevor/port-over-addtl-igp-cmds
trevor/proteus-from-last-agent-release
trevor/proteus-from-last-agent-release-1
trevor/quick-scroll-moonbeam-fix
trevor/read-txs
trevor/read-txs-nov-8
trevor/relayer-use-gelato-scaffolding
trevor/sealevel-igp
trevor/sei-fix
trevor/send-unblocking-tx
trevor/suggestion
trevor/test-dispatch-return-value
trevor/try-ethers-quorum-estimate-gas-fix
trevor/try-fix-e2e
trevor/upgrade-registry-update
trevor/use-gas-estimate-components-in-arb
trevor/use-secret-rpc-urls-awk-branch-setup
trevor/wip-transfer-test
trusted-relayer-ism
typechain11
upgradable-warp-routes-rossy
upgrades-v2
v1
v2
v2-2
v2-create2
v3
v3-agents
v3-agents-feedback
v3-agents-rebase
v3-review
validator-correctness
verify-igp
verify-mainnet
verify-new-testnet2
warp-deploy-ism-config
warp-route-v3
webbhorn/gelato-PR-submitter-prep
webbhorn/gelato-tip
webbhorn/gelato-tip-wip
webbhorn/gelato/demo-cli
webbhorn/gelato/op
xeno/better-chain-selection-for-single-chain
xeno/ica-router-management
xeno/ica-router-management-update
xeno/zero-warp-deploys
yarn-4.1.0
yorhodes-patch-1
yorhodes/427
yorhodes/429
yorhodes/450
yorhodes/479
yorhodes/inbox-enrollments
zksync
0.2.1
0.2.4
0.3.1
1.0.0-beta5
2023-06-08
@hyperlane-xyz/cli@3.10.0
@hyperlane-xyz/cli@3.11.0
@hyperlane-xyz/cli@3.11.1
@hyperlane-xyz/cli@3.13.0
@hyperlane-xyz/cli@3.13.0-next.0
@hyperlane-xyz/cli@3.14.0
@hyperlane-xyz/cli@3.15.0
@hyperlane-xyz/cli@3.15.1
@hyperlane-xyz/cli@3.16.0
@hyperlane-xyz/cli@3.2.0
@hyperlane-xyz/cli@3.3.0
@hyperlane-xyz/cli@3.4.0
@hyperlane-xyz/cli@3.5.0
@hyperlane-xyz/cli@3.5.1
@hyperlane-xyz/cli@3.6.0
@hyperlane-xyz/cli@3.6.1
@hyperlane-xyz/cli@3.6.2
@hyperlane-xyz/cli@3.7.0
@hyperlane-xyz/cli@3.8.0
@hyperlane-xyz/cli@3.8.1
@hyperlane-xyz/cli@3.8.2
@hyperlane-xyz/cli@3.9.0
@hyperlane-xyz/cli@4.0.0
@hyperlane-xyz/cli@4.0.0-alpha.0
@hyperlane-xyz/cli@4.0.0-alpha.1
@hyperlane-xyz/cli@4.0.0-alpha.2
@hyperlane-xyz/cli@4.0.0-beta
@hyperlane-xyz/cli@4.1.0
@hyperlane-xyz/cli@5.1.0
@hyperlane-xyz/cli@5.1.1
@hyperlane-xyz/cli@5.1.2
@hyperlane-xyz/cli@5.2.0
@hyperlane-xyz/cli@5.2.1
@hyperlane-xyz/cli@5.2.1-beta.0
@hyperlane-xyz/cli@5.3.0
@hyperlane-xyz/cli@5.4.0
@hyperlane-xyz/cli@5.5.0
@hyperlane-xyz/cli@5.6.0
@hyperlane-xyz/cli@5.6.1
@hyperlane-xyz/cli@5.6.2
@hyperlane-xyz/cli@5.7.0
@hyperlane-xyz/cli@6.0.0
@hyperlane-xyz/cli@7.0.0
@hyperlane-xyz/cli@7.1.0
@hyperlane-xyz/core@3.1.10
@hyperlane-xyz/core@3.10.0
@hyperlane-xyz/core@3.11.0
@hyperlane-xyz/core@3.11.1
@hyperlane-xyz/core@3.12.0
@hyperlane-xyz/core@3.13.0
@hyperlane-xyz/core@3.13.0-next.0
@hyperlane-xyz/core@3.14.0
@hyperlane-xyz/core@3.15.0
@hyperlane-xyz/core@3.15.1
@hyperlane-xyz/core@3.16.0
@hyperlane-xyz/core@3.2.0
@hyperlane-xyz/core@3.3.0
@hyperlane-xyz/core@3.4.0
@hyperlane-xyz/core@3.5.0
@hyperlane-xyz/core@3.5.1
@hyperlane-xyz/core@3.6.0
@hyperlane-xyz/core@3.6.1
@hyperlane-xyz/core@3.6.2
@hyperlane-xyz/core@3.7.0
@hyperlane-xyz/core@3.8.0
@hyperlane-xyz/core@3.8.1
@hyperlane-xyz/core@3.8.2
@hyperlane-xyz/core@3.9.0
@hyperlane-xyz/core@4.0.0
@hyperlane-xyz/core@4.0.0-alpha.0
@hyperlane-xyz/core@4.0.0-alpha.1
@hyperlane-xyz/core@4.0.0-alpha.2
@hyperlane-xyz/core@4.0.0-beta
@hyperlane-xyz/core@4.1.0
@hyperlane-xyz/core@5.1.0
@hyperlane-xyz/core@5.1.1
@hyperlane-xyz/core@5.1.2
@hyperlane-xyz/core@5.2.0
@hyperlane-xyz/core@5.2.1
@hyperlane-xyz/core@5.2.1-beta.0
@hyperlane-xyz/core@5.3.0
@hyperlane-xyz/core@5.4.0
@hyperlane-xyz/core@5.4.1
@hyperlane-xyz/core@5.5.0
@hyperlane-xyz/core@5.6.0
@hyperlane-xyz/core@5.6.1
@hyperlane-xyz/core@5.7.0
@hyperlane-xyz/core@5.7.1
@hyperlane-xyz/core@5.8.0
@hyperlane-xyz/core@5.8.1
@hyperlane-xyz/github-proxy@5.2.0
@hyperlane-xyz/github-proxy@5.2.1-beta.0
@hyperlane-xyz/helloworld@3.1.10
@hyperlane-xyz/helloworld@3.10.0
@hyperlane-xyz/helloworld@3.11.0
@hyperlane-xyz/helloworld@3.11.1
@hyperlane-xyz/helloworld@3.12.0
@hyperlane-xyz/helloworld@3.13.0
@hyperlane-xyz/helloworld@3.13.0-next.0
@hyperlane-xyz/helloworld@3.14.0
@hyperlane-xyz/helloworld@3.15.0
@hyperlane-xyz/helloworld@3.15.1
@hyperlane-xyz/helloworld@3.16.0
@hyperlane-xyz/helloworld@3.2.0
@hyperlane-xyz/helloworld@3.3.0
@hyperlane-xyz/helloworld@3.4.0
@hyperlane-xyz/helloworld@3.5.0
@hyperlane-xyz/helloworld@3.5.1
@hyperlane-xyz/helloworld@3.6.0
@hyperlane-xyz/helloworld@3.6.1
@hyperlane-xyz/helloworld@3.6.2
@hyperlane-xyz/helloworld@3.7.0
@hyperlane-xyz/helloworld@3.8.0
@hyperlane-xyz/helloworld@3.8.1
@hyperlane-xyz/helloworld@3.8.2
@hyperlane-xyz/helloworld@3.9.0
@hyperlane-xyz/helloworld@4.0.0
@hyperlane-xyz/helloworld@4.0.0-alpha.0
@hyperlane-xyz/helloworld@4.0.0-alpha.1
@hyperlane-xyz/helloworld@4.0.0-alpha.2
@hyperlane-xyz/helloworld@4.0.0-beta
@hyperlane-xyz/helloworld@4.1.0
@hyperlane-xyz/helloworld@5.1.0
@hyperlane-xyz/helloworld@5.1.1
@hyperlane-xyz/helloworld@5.1.2
@hyperlane-xyz/helloworld@5.2.0
@hyperlane-xyz/helloworld@5.2.1
@hyperlane-xyz/helloworld@5.2.1-beta.0
@hyperlane-xyz/helloworld@5.3.0
@hyperlane-xyz/helloworld@5.4.0
@hyperlane-xyz/helloworld@5.5.0
@hyperlane-xyz/helloworld@5.6.0
@hyperlane-xyz/helloworld@5.6.1
@hyperlane-xyz/helloworld@5.6.2
@hyperlane-xyz/helloworld@5.7.0
@hyperlane-xyz/helloworld@6.0.0
@hyperlane-xyz/helloworld@7.0.0
@hyperlane-xyz/helloworld@7.1.0
@hyperlane-xyz/sdk@3.1.10
@hyperlane-xyz/sdk@3.10.0
@hyperlane-xyz/sdk@3.11.0
@hyperlane-xyz/sdk@3.11.1
@hyperlane-xyz/sdk@3.12.0
@hyperlane-xyz/sdk@3.13.0
@hyperlane-xyz/sdk@3.13.0-next.0
@hyperlane-xyz/sdk@3.14.0
@hyperlane-xyz/sdk@3.15.0
@hyperlane-xyz/sdk@3.15.1
@hyperlane-xyz/sdk@3.16.0
@hyperlane-xyz/sdk@3.2.0
@hyperlane-xyz/sdk@3.3.0
@hyperlane-xyz/sdk@3.4.0
@hyperlane-xyz/sdk@3.5.0
@hyperlane-xyz/sdk@3.5.1
@hyperlane-xyz/sdk@3.6.0
@hyperlane-xyz/sdk@3.6.1
@hyperlane-xyz/sdk@3.6.2
@hyperlane-xyz/sdk@3.7.0
@hyperlane-xyz/sdk@3.8.0
@hyperlane-xyz/sdk@3.8.1
@hyperlane-xyz/sdk@3.8.2
@hyperlane-xyz/sdk@3.9.0
@hyperlane-xyz/sdk@4.0.0
@hyperlane-xyz/sdk@4.0.0-alpha.0
@hyperlane-xyz/sdk@4.0.0-alpha.1
@hyperlane-xyz/sdk@4.0.0-alpha.2
@hyperlane-xyz/sdk@4.0.0-beta
@hyperlane-xyz/sdk@4.1.0
@hyperlane-xyz/sdk@5.1.0
@hyperlane-xyz/sdk@5.1.1
@hyperlane-xyz/sdk@5.1.2
@hyperlane-xyz/sdk@5.2.0
@hyperlane-xyz/sdk@5.2.1
@hyperlane-xyz/sdk@5.2.1-beta.0
@hyperlane-xyz/sdk@5.3.0
@hyperlane-xyz/sdk@5.4.0
@hyperlane-xyz/sdk@5.5.0
@hyperlane-xyz/sdk@5.6.0
@hyperlane-xyz/sdk@5.6.1
@hyperlane-xyz/sdk@5.6.2
@hyperlane-xyz/sdk@5.7.0
@hyperlane-xyz/sdk@6.0.0
@hyperlane-xyz/sdk@7.0.0
@hyperlane-xyz/sdk@7.1.0
@hyperlane-xyz/utils@3.1.10
@hyperlane-xyz/utils@3.10.0
@hyperlane-xyz/utils@3.11.0
@hyperlane-xyz/utils@3.11.1
@hyperlane-xyz/utils@3.12.0
@hyperlane-xyz/utils@3.13.0
@hyperlane-xyz/utils@3.13.0-next.0
@hyperlane-xyz/utils@3.14.0
@hyperlane-xyz/utils@3.15.0
@hyperlane-xyz/utils@3.15.1
@hyperlane-xyz/utils@3.16.0
@hyperlane-xyz/utils@3.2.0
@hyperlane-xyz/utils@3.3.0
@hyperlane-xyz/utils@3.4.0
@hyperlane-xyz/utils@3.5.0
@hyperlane-xyz/utils@3.5.1
@hyperlane-xyz/utils@3.6.0
@hyperlane-xyz/utils@3.6.1
@hyperlane-xyz/utils@3.6.2
@hyperlane-xyz/utils@3.7.0
@hyperlane-xyz/utils@3.8.0
@hyperlane-xyz/utils@3.8.1
@hyperlane-xyz/utils@3.8.2
@hyperlane-xyz/utils@3.9.0
@hyperlane-xyz/utils@4.0.0
@hyperlane-xyz/utils@4.0.0-alpha.0
@hyperlane-xyz/utils@4.0.0-alpha.1
@hyperlane-xyz/utils@4.0.0-alpha.2
@hyperlane-xyz/utils@4.0.0-beta
@hyperlane-xyz/utils@4.1.0
@hyperlane-xyz/utils@5.1.0
@hyperlane-xyz/utils@5.1.1
@hyperlane-xyz/utils@5.1.2
@hyperlane-xyz/utils@5.2.0
@hyperlane-xyz/utils@5.2.1
@hyperlane-xyz/utils@5.2.1-beta.0
@hyperlane-xyz/utils@5.3.0
@hyperlane-xyz/utils@5.4.0
@hyperlane-xyz/utils@5.5.0
@hyperlane-xyz/utils@5.6.0
@hyperlane-xyz/utils@5.6.1
@hyperlane-xyz/utils@5.6.2
@hyperlane-xyz/utils@5.7.0
@hyperlane-xyz/utils@6.0.0
@hyperlane-xyz/utils@7.0.0
@hyperlane-xyz/utils@7.1.0
@hyperlane-xyz/widgets@5.0.0
@hyperlane-xyz/widgets@5.1.0
@hyperlane-xyz/widgets@5.1.1
@hyperlane-xyz/widgets@5.1.2
@hyperlane-xyz/widgets@5.2.0
@hyperlane-xyz/widgets@5.2.1
@hyperlane-xyz/widgets@5.2.1-beta.0
@hyperlane-xyz/widgets@5.3.0
@hyperlane-xyz/widgets@5.4.0
@hyperlane-xyz/widgets@5.5.0
@hyperlane-xyz/widgets@5.6.0
@hyperlane-xyz/widgets@5.6.1
@hyperlane-xyz/widgets@5.6.2
@hyperlane-xyz/widgets@5.7.0
@hyperlane-xyz/widgets@6.0.0
@hyperlane-xyz/widgets@7.0.0
@hyperlane-xyz/widgets@7.1.0
agents-1.0.0
agents-1.0.1
agents-2023-04-14
agents-2023-05-25
agents-2023-05-26
agents-2023-06-08
agents-2023-06-14
agents-2023-07-24
agents-2023-07-25
agents-2023-08-23
agents-2023-11-28
agents-2023-11-29
agents-2023-11-30
agents-2023-12-14
agents-2024-01-29
agents-2024-03-19
agents-2024-03-21
agents-2024-05-30
agents-2024-06-19
agents-v1.0.0
audit-fyeo-responses-0
audit-remediations
audit-scope-0
audit-v2
fyeo-fixes
hacken-fixes
mainnet-contracts
show
testnet2-contracts
testnet3
v.0.2.0
v.1.5.3
v0.0.0-testnet.0
v0.2.0
v0.2.1
v0.2.2
v0.2.3
v0.3.1
v0.4.0
v0.4.1
v0.5.0
v0.5.0-beta0
v0.5.1
v0.5.2
v0.5.3
v0.5.5
v1.0.0
v1.0.0-beta1
v1.0.0-beta5
v1.0.0-beta6
v1.1.0
v1.2.0
v1.2.1
v1.2.2
v1.2.3
v1.3.0
v1.3.1
v1.3.2
v1.3.3
v1.3.4
v1.3.7
v1.4.0
v1.4.1
v1.5.0
v1.5.1
v1.5.8
v2
v3-audit-remediations
v3-solidity
zksyncbeta
${ noResults }
88 Commits (02d5549608e97401edc5028ba59de0809c5a459e)
Author | SHA1 | Message | Date |
---|---|---|---|
Trevor Porter |
9a83eb4d57
|
Sequence-aware indexing refactor (#3262)
### Description Part 1 of an indexing refactor. This mostly focuses on the sequence-aware cursors. Changes: - Some renames, e.g. `SequenceIndexer` -> `SequenceAwareIndexer`, `sequence_and_tip` -> `latest_sequence_count_and_tip` - Moved cursors out of `contract_sync/cursor.rs` into `contract_sync/cursors/*` - The goal was to make the the Forward sequence-aware cursor, the Backward sequence-aware, and the ForwardBackward sequence aware cursors more resilient, easier to understand, and better tested. - General strategy for doing this was to: - Only move onto a new range to index if the logs passed into the cursor's `update` function justify this - If updated with any weird data, like gaps in logs, rewind the cursor and retry previously queried ranges I'd recommend starting the review in the following order: 1. `rust/hyperlane-base/src/contract_sync/cursors/sequence_aware/forward.rs` - where `ForwardSequenceAwareSyncCursor` & tests live 2. `rust/hyperlane-base/src/contract_sync/cursors/sequence_aware/backward.rs` - where `BackwardSequenceAwareSyncCursor` & tests live 3. `rust/hyperlane-base/src/contract_sync/cursors/sequence_aware/mod.rs` - where `ForwardBackwardSequenceAwareSyncCursor` lives ### Drive-by changes <!-- Are there any minor or drive-by changes also included? --> ### Related issues <!-- - Fixes #[issue number here] --> ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests --> |
9 months ago |
Daniel Savu |
f11878ad08
|
CCIP Read metadata builder fix (#3246)
### Description `H160`'s `ToString` implementation adds ellipsis points instead of outputting the full hex string, for some reason (e.g. `0xc66a…7b6f`). This will result in an error when `Mailbox.process` is called on the CCIP Read ISM. ### Drive-by changes <!-- Are there any minor or drive-by changes also included? --> ### Related issues <!-- - Fixes #[issue number here] --> ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests --> |
10 months ago |
Daniel Savu |
3cbb06a07a
|
feat: fetch chain-specific metrics in standalone task (#3214)
### Description Spawning a tokio task to fetch chain-specific metrics in provider middleware was wasteful because we ended up with 15 tasks doing the same job. Now there is a single task that is spawned inside the relayer, which I added in the struct that used to only fetch relayer balance. Some questions: - I'm realising in the current state I'm probably removing these metrics from validators. Lmk if yes and I'll add back - the chain-specific metrics were moved out of `MiddlewareMetrics` because they're no longer part of middleware, but I wasn't sure where to place them. Maybe `CoreMetrics` is a better place than the current `custom_metrics.rs` file? `tokio-metrics` turned out not to be useful because we'd need to instrument every call site of `tokio::spawn` with it. We should still do it but as a separate task imo. ### Drive-by changes - This PR also makes it very easy to add the metrics tasks for new chains, by extending the `HyperlaneProvider` trait with a `get_chain_metrics` call which seems reasonably general to me to have implemented by all providers. (Bc we currently only track these for evm chains) - the description, naming and logic of the `gas_price` metric was also changed to support new chains ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3047 ### Backward compatibility Yes ### Testing Still need to manually test |
10 months ago |
Daniel Savu |
f2a0e92c7f
|
Cosmos grpc fallbackprovider (#3139)
### Description Implements grpc fallback provider logic for cosmos - initially tried implementing the fallback provider deprioritization logic at middleware level like in the EVM. The difference between ethers and cosmrs is that in the latter, middleware can only live at the transport layer (`tower` crate level). - based on this github [issue](https://github.com/hyperium/tonic/issues/733), that actually doesn't look possible, because the http::Request type isn't `Clone` so it can't be submitted to multiple providers - ended up implementing the fallback provider at the application layer, by keeping an array of grpc channels - There is now a `call` method in `hyperlane_core::FallbackProvider` which I'm actually really happy with. This method handles the fallbackprovider-specific logic by taking in an async closure, running it on each provider, and iterating providers if the closure call fails. In `grpc.rs` you can see how this is slightly verbose but I think it's quite manageable. The only part that bugs me is having to duplicate `Pin::from(Box::from(future))`, but that's need afaict because the regular closure returns an anonymous type - adds `grpcUrls` and `customGrpcUrls` config items - tests the cosmos fallback provider e2e ### Drive-by changes <!-- Are there any minor or drive-by changes also included? --> ### Related issues - Fixes: https://github.com/hyperlane-xyz/issues/issues/998 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests --> |
10 months ago |
Daniel Savu |
c9ef41c109
|
Fallback Provider Refactor (#3127)
### Description - Generalizes the fallback provider. Now any provider type can be used in it, as long as it implements `Into<Box<dyn BlockNumberGetter>> + Clone` (aka it can be wrapped into a struct that reads the current block #, and it can be cloned). - moves the fallback provider implementation to hyperlane-core - had serious issues with getting versions to successfully resolve - next time I run into issues, strongly inclined to create a new crate with dependencies for all chains, but which are only depended on by the agents codebase (rather than the contract as well). Chatted with @tkporter about this. - now fallbackprovider needs to be wrapped in a newtype struct for chain-specific trait implementations - If `Deref` is implemented for the newtype struct, all the function calls will still work (although using Deref for newtypes is [debatable](https://users.rust-lang.org/t/understanding-the-perils-of-deref/47958/18)) - the `request` function required by the `JsonRpcClient` still has some reusable logic but I left it there until it's clearer what can be reused by the cosmos fallback provider - the fallback provider unit tests still live in hyperlane-ethereum because of the logic in `require` ### Drive-by changes - needed to use `async-rwlock` instead of `tokio` for the `RwLock` structure used by the fallback provider for interior mutability. This is because the solana program requirements had rust pinned too far into the past for `tokio` to resolve to a version. ### Related issues - Fixes https://github.com/hyperlane-xyz/issues/issues/892 ### Backward compatibility Yes ### Testing Unit tests that were already there for the fallback provider |
10 months ago |
Daniel Savu |
cdbaf9ef02
|
fix: dedup eth logs (#3108)
### Description Deduplicates ethereum logs by collecting them into a HashSet before returning a Vec. I couldn't find a way to deduplicate using an ethers config, but since `fetch_logs` is only called once in hyperlane-base, I'm doing the deduplication there "globally". I also noted in doc comments that duplicates may be returned. ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3070 ### Backward compatibility Yes ### Testing Will rely on e2e passing but haven't added unit tests for this scenario |
11 months ago |
Daniel Savu |
d18f7ae8e1
|
Cosmos gas price config (#3042)
### Description Adds a cosmos-specific config item for setting the minimum gas price, in the format returned by the `cosmos.base.node.v1beta1.Service/Config` cosmos-sdk grpc endpoint. ### Related issues - Fixes https://github.com/hyperlane-xyz/issues/issues/810 ### Backward compatibility No. Will break existing cosmos configs. ### Testing None yet, will test in e2e |
11 months ago |
Daniel Savu |
8e44bc1b81
|
feat: sealevel merkle indexer + e2e (#3053)
Depends on https://github.com/hyperlane-xyz/hyperlane-monorepo/pull/3048 Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/3046 Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/2754 |
11 months ago |
Daniel Savu |
77aa58c581
|
Relayer balance metrics (#2976)
Done: - scaffolding for fetching custom agent metrics - abstractions for building a metrics fetcher for a given VM - querying cosmos balances; e2e tested. - querying evm balances; e2e tested. - **Note that as a result, evm addresses are now no longer zero-padded when printed in the logs. This may break existing log queries** - fixed a nasty bug on ubuntu where wasmd (osmosisd dependency, part of the grpc query flow) would panic when a block is specified via `x-cosmos-block-height`. The fix was to bump the version of osmosisd from `19.0.0` to `20.5.0`. **Note that when running e2e on Mac OS, the osmosis version in use is still 19.0.0**. That's because we need a fork that publishes a darwin target binary (currently pointing [here](https://github.com/hashableric/osmosis/releases/download/v19.0.0-mnts/osmosisd-19.0.0-mnts-darwin-arm64.tar.gz)) For follow up PR: - sealevel balance querying I'm open to all renaming suggestions, I just tried to speed through and didn't ponder names too much Relates to https://github.com/hyperlane-xyz/issues/issues/701 Closes https://github.com/hyperlane-xyz/issues/issues/702 (because the balance becomes available in the metrics endpoint for polling) |
12 months ago |
Trevor Porter |
1cebc39182
|
Use Polygon gas oracle (#2965)
### Description After investigating #2959, I found the following this is a known problem with Polygon, explanation here https://github.com/ethers-io/ethers.js/issues/2828#issuecomment-1283014250 Fun fact Asa looked into this once https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/771 Here's a discussion it in Foundry, which I found hoping that ethers-rs folks had ran into this before https://github.com/foundry-rs/foundry/issues/1703 Foundry fixed this by using the Polygon gas station oracle which seems to be recommended path https://github.com/foundry-rs/foundry/pull/3368/files#diff-c89a4bbf7a90da118dcf00c5fe70eba78f8e5d95662bb5f039a353113e95042bR205 There's actually a polygon ethers middleware for this https://docs.rs/ethers/latest/ethers/middleware/gas_oracle/polygon/struct.Polygon.html So I (originally) borrowed this code from Foundry https://github.com/foundry-rs/foundry/blob/master/crates/common/src/provider.rs#L254-L290 Changed to use Middlewares This also means we can remove our existing janky Polygon logic ### Drive-by changes <!-- Are there any minor or drive-by changes also included? --> ### Related issues <!-- - Fixes #[issue number here] --> ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests --> |
1 year ago |
Trevor Porter |
ece2be507a
|
Cosmos / CosmWasm agents (#2865)
### Description <!-- What's included in this PR? --> ### Drive-by changes <!-- Are there any minor or drive-by changes also included? --> ### Related issues <!-- - Fixes #[issue number here] --> ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests --> --------- Co-authored-by: Mattie Conover <git@mconover.dev> Co-authored-by: hashableric <hashableric@gmail.com> Co-authored-by: byeongsu-hong <hong@byeongsu.dev> Co-authored-by: Daniel Savu <23065004+daniel-savu@users.noreply.github.com> Co-authored-by: Nam Chu Hoai <nambrot@googlemail.com> Co-authored-by: Yorke Rhodes <yorke@hyperlane.xyz> |
1 year ago |
Nam Chu Hoai |
e4eed2ae3d
|
fix: e2e working with aggregation 2/2 of `message_id` and `merkle_root` (#2861)
### Description - Removed the double mapping logic from the the `merkle_tree_builder.get_proof()` for fixing the following issue: > `get_proof` was expecting a nonce which it then uses to retrieve the `leaf_index` i.e. nonce -> message_id -> leaf_index and then `prove_against_previous` but in our case, we already got the leaf_index in merkle_tree_multisig.rs so what we end up doing is trying to look up the leaf_index twice and either not finding the message_id or proving wrong leaf_index which both causes the "cannot fetch metadata" for the merkle tree builder ### Drive-by changes - additional logging for aggregation to indicate which ism (moduleType, address) we are missing - trace -> debug logging for `sign_and_submit_checkpoint` ### Related issues - closes https://github.com/hyperlane-xyz/issues/issues/695 ### Backward compatibility Yes ### Testing e2e --------- Co-authored-by: -f <kunalarora1729@gmail.com> Co-authored-by: Kunal Arora <55632507+aroralanuk@users.noreply.github.com> |
1 year ago |
Yorke Rhodes |
3501557d38
|
Remove legacy multisig from agents (#2839)
Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/2837 |
1 year ago |
Trevor Porter |
88346bfb64
|
Rm finality blocks and refactor checkpoint_submitter to be resilient to edge cases (#2836)
### Description * https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/532 wasn't actually fully closed out - finality_blocks was used still for indexing. Sadly testnet4 infra wasn't configuring finality blocks anymore, so we weren't indexing only finalized blocks. Moved fully to reorg_period * Refactored `checkpoint_submitter` in light of races revealed by the above ^ problem. It used to assume that message indexing and the `latest_checkpoint()` call would align with one another, and wasn't resilient to the tree already being past the correctness checkpoint. A couple situations were possible before that aren't now: a. Indexing is ahead of the latest_checkpoint() call, which will result in tree ingesting the new indexed messages and the tree being ahead of the correctness checkpoint :( b. It's possible for the tree() call that constructs the tree initially to be made against a block that's after the next latest_checkpoint() call, which would result in the tree being ahead of the correctness checkpoint from the very beginning :( ### Drive-by changes removed a function that wasn't being used anymore ### Related issues https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/532 ### Backward compatibility Removes finality blocks entirely ### Testing Builds, e2e |
1 year ago |
Yorke Rhodes |
1d18549755
|
Merge main to v3 (#2812)
|
1 year ago |
Kunal Arora |
9168cca6d2
|
validator deploy tweaks (#2784)
### Description - fixes to deploy testnet4 for agents ### Drive-by changes - truncating labels to length 63 - adding `.relayer` to `agentConfig.contextChainNames` ### Related issues - for https://github.com/hyperlane-xyz/issues/issues/574 ### Backward compatibility Yes ### Testing Manual --------- Co-authored-by: Trevor Porter <trkporter@ucdavis.edu> Co-authored-by: Nam Chu Hoai <nambrot@googlemail.com> |
1 year ago |
Daniel Savu |
c6cea785ae
|
V3 agents feedback (#2780)
### Description Part of the remediations from https://github.com/hyperlane-xyz/hyperlane-monorepo/pull/2746 --------- Co-authored-by: Trevor Porter <trkporter@ucdavis.edu> |
1 year ago |
Daniel Savu |
af5bd88aa8
|
V3 agents rebase (#2746)
### Description It's your favourite PR coming right back... V3 agents! Closes https://github.com/hyperlane-xyz/issues/issues/561 Builds on top of https://github.com/hyperlane-xyz/hyperlane-monorepo/pull/2742 Depends on https://github.com/hyperlane-xyz/hyperlane-monorepo/pull/2681 for e2e testing This PR includes: - [x] Merkle tree hook indexer - [x] Merkle tree builder task - [x] Update submitter to trigger retries if no proof is available yet Slightly more detailed overview of the work here: https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/2720#issuecomment-1724038643 <!-- What's included in this PR? --> ### Drive-by changes <!-- Are there any minor or drive-by changes also included? --> ### Related issues <!-- - Fixes #[issue number here] --> ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? None/Manual/Unit Tests --> --------- Co-authored-by: -f <kunalarora1729@gmail.com> Co-authored-by: Trevor Porter <trkporter@ucdavis.edu> Co-authored-by: Kunal Arora <55632507+aroralanuk@users.noreply.github.com> Co-authored-by: Mattie Conover <git@mconover.dev> Co-authored-by: Guillaume Bouvignies <guillaumebouvignies@gmail.com> Co-authored-by: Yorke Rhodes <yorke@hyperlane.xyz> Co-authored-by: Guillaume Bouvignies <guillaume.bouvignies@kurtosistech.com> |
1 year ago |
Mattie Conover |
741c9bb553
|
Update Rust (#2765)
### Description Regular rust version and package updates. ### Drive-by changes None ### Related issues ### Backward compatibility Yes ### Testing Unit Tests |
1 year ago |
Kunal Arora |
f0e4f2b89b
|
Prevent invalid destination griefing for the relayer (#2703)
### Description - Adds destinationDomain to the `GasPayment` event - recording destination domain as `destination` while reading events for the relayer ### Drive-by changes - none ### Related issues - fixes https://github.com/hyperlane-xyz/issues/issues/475 ### Backward compatibility No, change in event emitted and relayer indexing ### Testing - Unit --------- Signed-off-by: -f <kunalarora1729@gmail.com> Co-authored-by: Yorke Rhodes <yorke@hyperlane.xyz> |
1 year ago |
Daniel Savu |
71e8988ccd
|
Sealevel igp indexing (#2585)
### Description Depends on https://github.com/hyperlane-xyz/hyperlane-monorepo/pull/2583 Indexes IGP payments related to the relayer's data pda address. Unless this address is specified in the config (`sealevel.relayer_account `), no filtering is applied and all IGP payments are stored in the local database. <!-- What's included in this PR? --> ### Drive-by changes - Sets `HYP_BASE_GASPAYMENTENFORCEMENT` in `run-locally` for the relayer, to test that it correctly indexes the IGP payment before submitting the message - A new config section (`sealevel`) is added to the relayer - The `MessageIndexer` trait is replaced with `SequenceIndexer<HyperlaneMessage>`, renaming `fetch_count_at_tip` to `sequence_at_tip`. `SequenceIndexer` is now common to both the message and igp indexers. - The `parse_addr` macro is modified so it can be reused when parsing the sealevel relayer address config too - `rust/utils/sealevel-test.bash` is included because I was using it to test locally, but I can remove it if the sealevel e2e test already does all the steps there @mattiecnvr - Performs a `try_into` conversion that can be removed once https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/2610 is done ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/2501 ### Backward compatibility <!-- Are these changes backward compatible? Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling? Yes/No --> ### Testing <!-- What kind of testing have these changes undergone? --> e2e tests but the pipeline is failing, likely fixed by https://github.com/hyperlane-xyz/hyperlane-monorepo/pull/2602 --------- Co-authored-by: Trevor Porter <trkporter@ucdavis.edu> |
1 year ago |
Mattie Conover |
389029dafb
|
Agent Config Base Parsing (#2665)
### Description This is a big one for #2215... 1. Splits the parsing of configs from the config definitions to support both the old, new, and future parsers simultaneously. (We might want to rename it from parser to config format or something; not set on this name). 2. Implements the new config format without switching to it or enabling it. This means this PR does introduce dead code that is going to be used in the next PR. ### Drive-by changes - Deleted some unused (or single use) macros defined in hyperlane base - Updated the definition of the config parsing trait to simplify implementation - Added some more ergonomic methods of handling errors in config parsing - Removed any raw `unwrap()` I noticed since these cause difficult to debug errors in prod. - Added some additional validation to catch code mistakes in config path definitions ### Related issues - Progress on #2215 - Comes after #2658 ### Backward compatibility Yes ### Testing Manual (E2E only for now to make sure I did not break the old config format) |
1 year ago |
Daniel Savu |
326eced987
|
Revert "refactor(IndexMode): remove `IndexRange`… (#2562)" (#2655)
This reverts commit
|
1 year ago |
Mattie Conover |
a5e1815746
|
Rust updates (#2619)
### Description Let this one slip a while. Updates our version of rust and as many packages as did not conflict with solana. I think we are going to need to figure something better out going forward with solana since if we have a couple more envs like this, it is going to make updates very hard. ### Drive-by changes None ### Related issues General Maintenance ### Backward compatibility Yes ### Testing Manual & Unit Tests |
1 year ago |
Daniel Savu |
127294decc
|
refactor(IndexMode): remove `IndexRange`, use default index mode per env (#2562)
### Description Removes the `index_mode` config field, default to whichever mode is currently supported by our existing envs. Doing this allows for safely removing runtime checks to see if the correct index mode was configured. Additional work is required to support multiple indexing modes per env. Check this discord thread for the full discussion: https://discord.com/channels/935678348330434570/961711527092682783/1133347733411987568 ### Drive-by changes - `IndexRange` is removed entirely and replaced by `RangeInclusive<u32>` - Moves `is_arbitrum_nitro` into a bigger existing `impl HyperlaneDomain` block for clarity ### Related issues This is part 1 of https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/2511 ### Backward compatibility Yes ### Testing Relies on existing e2e tests |
1 year ago |
Trevor Porter |
8c5983933b
|
Sealevel (#2404)
### Description Opening for that sweet sweet agent image ### Drive-by changes _Are there any minor or drive-by changes also included?_ ### Related issues - Fixes #[issue number here] ### Backward compatibility _Are these changes backward compatible?_ Yes No _Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling?_ None Yes ### Testing _What kind of testing have these changes undergone?_ None Manual Unit Tests --------- Co-authored-by: Steven Sloboda <steven@eclipse.builders> Co-authored-by: Nam Chu Hoai <nambrot@googlemail.com> Co-authored-by: Yorke Rhodes <yorke@hyperlane.xyz> Co-authored-by: J M Rossy <jm.rossy@gmail.com> Co-authored-by: Mattie Conover <git@mconover.dev> Co-authored-by: Asa Oines <asaoines@gmail.com> Co-authored-by: Sergei Patrikeev <serejke.best@gmail.com> Co-authored-by: Daniel Savu <23065004+daniel-savu@users.noreply.github.com> Co-authored-by: Kunal Arora <55632507+aroralanuk@users.noreply.github.com> Co-authored-by: yorhodes <yorkerhodesiv@gmail.com> Co-authored-by: Yorke Rhodes <yorke@useabacus.network> Co-authored-by: Yorke Rhodes <email@yorke.dev> Co-authored-by: Asa Oines <asaoines@Asas-MacBook-Pro.local> Co-authored-by: Kunal Arora <kuarora@ucsd.edu> Co-authored-by: Anett <44020788+anettrolikova@users.noreply.github.com> Co-authored-by: Yaqub Mahmoud <yaqub320@gmail.com> Co-authored-by: Alex <alex@alexbh.dev> |
1 year ago |
Alex |
da25b06254
|
CCIP Read ISM (#2398)
### Description CCIP Read ISM implementation, - [x] Contracts - [x] Relayer - [x] Example HTTP backend ### Drive-by changes _Are there any minor or drive-by changes also included?_ ### Related issues - Fixes #[2211] ### Backward compatibility _Are these changes backward compatible?_ Yes, relayers will skip messages they can't handle. _Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling?_ Yes, relayers won't be able to submit messages that have a CCIP Read ISM. ### Testing _What kind of testing have these changes undergone?_ - [x] Manual - [x] Unit Tests ### General approach - [x] Get a basic [CCIP Read implementation working](https://github.com/AlexBHarley/permissionless-chainlink-feeds/tree/main/contracts) - [x] Build a [mock service that serves CCIP Read compatible data](https://github.com/AlexBHarley/permissionless-chainlink-feeds/tree/main/apps/api) - [x] Update the Relayer to support CCIP Read ISMs |
1 year ago |
Daniel Savu |
6ee5868353
|
fix(validator): announce directly if no gas estimate (#2454)
### Description It has been reported that `contract_call.tx.max_cost()` can fail / not exist on some networks. When that's the case, default to assuming no additional validator gas is required and just send the tx. If the tx fails, report the failure and suggest that gas may be insufficient in the logged error. ### Drive-by changes None ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/2426 ### Backward compatibility _Are these changes backward compatible?_ Yes _Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling?_ None ### Testing _What kind of testing have these changes undergone?_ None --------- Co-authored-by: Nam Chu Hoai <nambrot@googlemail.com> |
1 year ago |
Daniel Savu |
7889385501
|
Relayer aggregation ism (#2411)
### Description Adds AggregationISM support to the relayer, by adding the scaffolding, sub-ism metadata fetching, and custom metadata encoding. ### Drive-by changes - adds `dry_run_verify(...)` to the `InterchainSecurityModule` trait and implements it for `EthereumInterchainSecurityModule` - changes the default ISM in the test environment from `routingIsm(multisigIsm)` to `routingIsm(aggregationIsm([multisigIsm, messageIdIsm], threshold = 1))` ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/1757 ### Backward compatibility _Are these changes backward compatible?_ Yes _Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling?_ None ### Testing The AggregationISM metadata encoding is tested using unit tests whose input was taken from the tests in `AggregationIsm.t.sol`, by printing the individual ISM metadatas and the final metadata. The overall AggregationISM is tested with the `run-locally` script. |
1 year ago |
Daniel Savu |
61892d1d5a
|
feat(fallback provider): re-prioritize providers on error (#2369)
### Description Closes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/2189 Reprioritize providers in the `FallbackProvider` when they stop receiving new blocks (although a `max_block_time` has elapsed). The `JsonRpcClient::request(...)` implementation now takes a snapshot of the provider priority list and iterates on that. This is to minimize lock contention - no lock is held across an `await` so there is no deadlock risk. If one of the errors above occurs, the priority list is overwritten. Note this may cause a prior reprioritization to be lost, if the repriotization occured after the current tokio task's snapshot was taken. I'm not entirely sure whether a specific `FallbackProvider` is referenced by more than one task at a time though. ### Drive-by changes A `PrometheusJsonRpcClientConfigExt` trait is added, so the provider can be mocked. ### Testing Unit tests. |
1 year ago |
Yorke Rhodes |
1fff74ebd8
|
Reduce hyper client pool idle timeout to 20s (#2384)
### Description - configures hyper http client to close connections after 20s - makes singleton signer retry (5) times before bubbling error up ### Backward compatibility Yes ### Testing Local binary testing against cloud resources ![Screen Shot 2023-06-13 at 5 45 47 PM](https://github.com/hyperlane-xyz/hyperlane-monorepo/assets/3020995/de47a03c-b40f-49fd-a32d-c8da6ecffa6e) |
1 year ago |
Yorke Rhodes |
a93daec7a2
|
Implement single signer task in validator (#2342)
### Description Implements singleton signer which allows multiple tasks to use a shared signer that is signing on a single task and migrates validator to use a singleton KMS signer ### Drive-by changes Modifies base agent to allow self to be mutable in run ### Related issues - Fixes error from sharing KMS signer connection across validator tasks https://github.com/rusoto/rusoto/issues/1766 ### Backward compatibility Yes ### Testing E2E Tests --------- Co-authored-by: Mattie Conover <git@mconover.dev> |
1 year ago |
Mattie Conover |
a66652f9f2
|
Reduce log noise (#2336)
### Description Seeing a ton of errors for process estimate costs even though they are fully being handled elsewhere and are also not really an error in the first place. This makes it harder as an operator to spot real errors so I think we should eliminate this error log. (We also already log this error elsewhere so it does not add any new information). ![image](https://github.com/hyperlane-xyz/hyperlane-monorepo/assets/4187749/f149a870-52f3-444c-aa62-84b6aa822f44) This also targets the `ret` logs produced by tracing since many of them are unhelpful and most of the cases where we actually need a log we already have one. ### Drive-by changes None ### Related issues ### Backward compatibility _Are these changes backward compatible?_ Yes _Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling?_ None ### Testing _What kind of testing have these changes undergone?_ None |
1 year ago |
Mattie Conover |
c661f7dccb
|
Handle additional error case in retrying provider (#2330)
### Description Adds a fix for this error message I noticed in the logs: ``` (code: 3, message: execution reverted: INSUFFICIENT_BALANCE, ...) ``` ### Drive-by changes None ### Related issues ### Backward compatibility _Are these changes backward compatible?_ Yes _Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling?_ None ### Testing _What kind of testing have these changes undergone?_ None |
1 year ago |
Yorke Rhodes |
2deb9b8973
|
Fix AWS KMS Signer connection issues (#2319)
### Description - Update ethers-rs fork - Create new KMS client instead of using OnceCell ### Backward compatibility Yes No ### Testing Running validator locally with replica of validator DB |
2 years ago |
Yorke Rhodes |
50f04db1fa
|
Make merkle proofs optional on multisig ISM (#2173)
### Description Validators currently sign `(root, index)` checkpoints and during verification, a `message` is passed as calldata, an `id()` is derived, and a `proof` of `id()` at `index` in `root` is verified This provides “all or nothing” censorship resistance guarantees because a validator can only sign roots to allow any contained messages to be processed. We have considered alternatives where validators sign `message` directly and we lose censorship resistance in exchange for eliminating merkle proof verification gas costs. However, if validators sign `(root, index, message)` tuples, we can skip merkle proof verification on the destination chain while still maintaining censorship resistance by providing two valid metadata formats: 1. existing validator signatures and merkle proof verification of inclusion 2. including merkle proof verification for pathway where validators are censoring `message` It’s worth noting the validator is required to index event data to produce this new signature format. However, this does not require historical indexing and new validators being spun up can simply begin indexing from tip. See https://github.com/hyperlane-xyz/hyperlane-monorepo/pull/2187 for validator changes See https://github.com/hyperlane-xyz/hyperlane-monorepo/pull/2248 for relayer and e2e test changes ### Drive-by changes Merkle index also optional ### Related issues - Fixes https://github.com/hyperlane-xyz/hyperlane-monorepo/issues/2192 ### Backward compatibility - new ISM deployment is necessary (we could upgrade implementation in theory) - Validator and relayer upgrades ### Testing Unit (fuzz) Tests, E2E tests |
2 years ago |
Asa Oines |
63562c7211
|
Refactor agent event indexing (#2246)
### Description This PR refactors event indexing in the agents, allowing similar logic to be shared across multiple event types (i.e. messages, deliveries, gas payments) and database types (i.e. the Relayer rocks DB and Scraper SQL DB). Furthermore, it adds new syncing modes by way of `MessageSyncCursors` that take advantage of the monotonically increasing dispatched message nonce to sync more intelligently. ### Drive-by changes - Fixes a bug in the existing cursor that caused the same block range to be indexed three times - Modifies kathy to get rid of the idea of "rounds", just sends messages with a sleep in between - Minor modifications to the e2e test for performance - Expand macros in settings - Add scraper to e2e test ### Opportunities for improvement - We can further reduce RPC usage (or improve latency) by sharing the view of the latest finalized block number between cursors - We can speed up the effective time for (a relayer to start deliving messages | the scraper to scraper recent events) by creating forward/backward cursors for gas payments and deliveries where the backwards cursor terminates at index_settings.from - We can remove the need for index_settings.from by terminating backwards cursors based on the block number that the first message was dispatched at ### Related issues - Fixes #[issue number here] ### Backward compatibility _Are these changes backward compatible?_ Yes _Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling?_ None ### Testing _What kind of testing have these changes undergone?_ E2E tests --------- Co-authored-by: Mattie Conover <git@mconover.dev> |
2 years ago |
Asa Oines |
f6ad1e9a95
|
Validator automatically self-announces (#2177)
### Description This PR adds the ability for validators to self-announce themselves, so long as the validator key has a large enough balance to pay for the tx. This required setting the retry provider to skip retrying reverting transactions, since with a quorum provider and a very speedy blockchain (like hardhat) the transaction is broadcast multiple times and the later transactions conflict with the first one. ### Drive-by changes None ### Related issues - Fixes #2120 ### Backward compatibility _Are these changes backward compatible?_ Yes --------- Co-authored-by: Mattie Conover <git@mconover.dev> |
2 years ago |
Mattie Conover |
ed17ddc32f
|
Agent Argument Parsing (#2132)
### Description All configs can now be set by arguments as well as env and config files. The arguments will take the highest priority and overwrite the others. We should also update the docs to include this new support when it gets released, but since it is an entirely new feature it also can be a stealth release which we document after the fact. ### Drive-by changes ### Related issues - Fixes #2034 ### Backward compatibility _Are these changes backward compatible?_ Yes _Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling?_ None ### Testing _What kind of testing have these changes undergone?_ Manual Unit Tests |
2 years ago |
Mattie Conover |
b56b022f88
|
Hyperlane-Core WASM support (#2110)
### Description This shuffles some code around and changes dependencies to make `hyperlane-core` WASM compatible and adds a check to the pipeline to ensure it stays that way. To do this it does refactor hyperlane db to the `base` crate, which makes more sense IMO anyway as that is an implementation detail of the agents and not part of the core protocol. ### Drive-by changes ### Related issues - Fixes #1977 ### Backward compatibility _Are these changes backward compatible?_ Yes-ish - It does change where things are but it does not change support. Should only impact people who directly use the libraries. _Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling?_ None ### Testing _What kind of testing have these changes undergone?_ Manual Unit Tests |
2 years ago |
Asa Oines |
1d0e067166
|
Add relayer support for MultisigIsm and RoutingIsm (#2074)
### Description This PR adds support in the relayer for MultisigIsm (non-legacy) and RoutingIsm metadata building. AggregationIsm support is not yet implemented. ### Drive-by changes None ### Backward compatibility _Are these changes backward compatible?_ Yes _Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling?_ None ### Testing _What kind of testing have these changes undergone?_ end-to-end |
2 years ago |
Mattie Conover |
79669902de
|
More handling for eth_feeHistory (#2095)
### Description Adds additional error contexts for `eth_feeHistory` which should not be retried. Was seeing the error pop up for `celo` and `alfajores`. https://cloudlogging.app.goo.gl/SR7gV3PK5QzbnpFt8 ### Drive-by changes None ### Related issues - https://discord.com/channels/935678348330434570/1096400530722537513 ### Backward compatibility _Are these changes backward compatible?_ Yes _Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling?_ None ### Testing _What kind of testing have these changes undergone?_ None |
2 years ago |
Mattie Conover |
1722f4ee7e
|
Better Agent Configuration Parsing (#2070)
### Description This is a significant change to how we parse user configs. The main goal of this PR is to give a clear path and env key to any errors that are encountered when parsing configuration. In order to accomplish this, I have crated a new trait `FromRawConf` which defines a set of steps to validate and convert individual fields. Also for every major config struct, there is now a `Raw*` variant of it which is used by the `config` library to reduce errors that occur during deserialization itself. `Raw*` types should always use the most basic form of a value, such as `String`, `StrOrInt`, `bool`, and ideally optional in all cases. Missing values should be handled during the raw conversion and not by `config`. I also needed to make changes to a number of types stored in the parsed config types to force validation forward to the parsing step instead of doing it when we read the config value. This also required me to create a filter to prevent trying to validate certain configs that we would not ever need to load. These changes can also be built on later to support something other than `config` if we choose to, or add support for merging configs from multiple sources since everything is optional. ### Drive-by changes - Default to `http` for connection type - Default to no gas payment enforcement if not specified instead of failing - `ChainSetup` -> `ChainConf` - `GasPaymentEnforcementConfig` -> `GasPaymentEnforcementConf` - Made ethereum connection configuration more forgiving - Moved hyperlane base settings from `mod.rs` to `base.rs` - Moved config chain tests in hyperlane core to `tests` dir to fix a cyclical import problem - Extension traits to help with config in hyperlane core - Moved `StrOrInt` to new hyperlane core `config` module - Support for parsing `U256` from `StrOrInt` - Removed `HexString` type which is now redundant - Updated base settings to use hyperlane domain - Use `heyKey` as signer type if `type` is not specified and `key` is - Moved hyperlane ethereum chain config to a new module ### Related issues - Fixes #2033 - Fixes #2012 ### Backward compatibility _Are these changes backward compatible?_ Yes - This should take in configs in the same shape but be more forgiving in a few places _Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling?_ None ### Testing _What kind of testing have these changes undergone?_ Manual Unit Test |
2 years ago |
Asa Oines |
1edbecf9e3
|
Lag count in Validator agent (#2073)
### Description This PR adds a lag to `mailbox.count()` in the validator agent. Without this lag, validators can shut down after the first message because the latestCheckpoint call is lagged and will fail due to the lagged count still being zero. ### Drive-by changes None ### Related issues - Fixes #1764 ### Backward compatibility _Are these changes backward compatible?_ Yes _Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling?_ None ### Testing _What kind of testing have these changes undergone?_ None --------- Co-authored-by: Mattie Conover <git@mconover.dev> |
2 years ago |
Mattie Conover |
e91c3100c2
|
Better Indexing (#2036)
### Description * Logs the distance from the tip * Calculates and logs the time to fully sync * Changes indexing timeout when catching up from 1s to 100ms ### Drive-by changes * Cleans up some log messages at the `info` level. * Refactors the indexing logic to be a bit cleaner/simpler * Updated all indexers to use the eta calculations ### Related issues - Fixes #1872 - Fixes #1851 ### Backward compatibility _Are these changes backward compatible?_ Yes _Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling?_ None ### Testing _What kind of testing have these changes undergone?_ Manual |
2 years ago |
Mattie Conover |
b3a1ea5d3a
|
RPC Error Handling (#2021)
### Description We have known for a while that our rules around when to retry certain calls has been a bit rough around the edges. This PR attempts to better handle a number of cases by retrying errors that are server errors and not retrying errors that we expect to have re-occur consistently on retry. I don't expect this to be perfect, but I hope it will get us about 90%+ of the way there. We can followup in the future to capture additional cases. My log investigation: [gcp link](https://console.cloud.google.com/logs/query;cursorTimestamp=2023-02-24T15:24:38.674835362Z;query=severity%3DWARNING%0AjsonPayload.target%3D~%22hyperlane_ethereum::%2528retrying%7Cfallback%2529%22%0A%2528jsonPayload.span.method%3D~%22.*eth_.*%22%20OR%20jsonPayload.fields.method%3D~%22.*eth_.*%22%2529%0A-jsonPayload.fields.text%3D%22%7B%5C%22message%5C%22:%5C%22no%20Route%20matched%20with%20those%20values%5C%22%7D%22%0A-jsonPayload.fields.error%3D~%22.*connection%20closed%20before%20message%20completed.*%22%0A-jsonPayload.fields.error%3D~%22.*tcp%20connect%20error.*%22%0A-jsonPayload.fields.text%3D%22%3Chtml%3E%5Cr%5Cn%3Chead%3E%3Ctitle%3E502%20Bad%20Gateway%3C%2Ftitle%3E%3C%2Fhead%3E%5Cr%5Cn%3Cbody%3E%5Cr%5Cn%3Ccenter%3E%3Ch1%3E502%20Bad%20Gateway%3C%2Fh1%3E%3C%2Fcenter%3E%5Cr%5Cn%3C%2Fbody%3E%5Cr%5Cn%3C%2Fhtml%3E%5Cr%5Cn%22%0A-jsonPayload.fields.error%3D%22%2528code:%20429,%20message:%20Your%20app%20has%20exceeded%20its%20compute%20units%20per%20second%20capacity.%20If%20you%20have%20retries%20enabled,%20you%20can%20safely%20ignore%20this%20message.%20If%20not,%20check%20out%20https:%2F%2Fdocs.alchemy.com%2Freference%2Fthroughput,%20data:%20None%2529%22%0A-jsonPayload.fields.text%3D%22default%20backend%20-%20404%22%0A-jsonPayload.fields.text%3D%22Bad%20Gateway%22%0A-jsonPayload.fields.error%3D~%22.*Connection%20reset%20by%20peer%20%2528os%20error%20104%2529%22%0A-jsonPayload.fields.text%3D%22API%20call%20rejected%20because%20chain%20is%20not%20done%20bootstrapping%22%0A-jsonPayload.fields.error%3D%22%2528code:%20-32601,%20message:%20the%20method%20eth_feeHistory%20does%20not%20exist%2Fis%20not%20available,%20data:%20None%2529%22%0A-jsonPayload.target%3D%22hyperlane_ethereum::fallback%22%0A-jsonPayload.fields.error%3D~%22operation%20timed%20out%22%0A-jsonPayload.fields.error%3D%22%2528code:%20-32000,%20message:%20404%20Not%20Found:%20%7B%5C%22jsonrpc%5C%22:%5C%222.0%5C%22,%5C%22error%5C%22:%7B%5C%22code%5C%22:404,%5C%22message%5C%22:%5C%22arb1-sequencer%20rate%20limit%20hit.%20%20Try%20again%201%20minute%5C%22%7D%7D,%20data:%20None%2529%22%0A-jsonPayload.fields.error%3D%22%2528code:%20-32000,%20message:%20429%20Too%20Many%20Requests:%20%7B%5C%22jsonrpc%5C%22:%5C%222.0%5C%22,%5C%22error%5C%22:%7B%5C%22code%5C%22:429,%5C%22message%5C%22:%5C%22Public%20RPC%20Rate%20Limit%20Hit,%20limit%20will%20reset%20in%2060%20seconds%5C%22%7D%7D,%20data:%20None%2529%22%0A-jsonPayload.fields.error%3D~%22unable%20to%20get%20local%20issuer%20certificate%22%0A-jsonPayload.fields.error%3D%22EOF%20while%20parsing%20a%20value%20at%20line%201%20column%200%22%0A-jsonPayload.fields.text%3D%22internal%20service%20failure%5Cn%22%0A-jsonPayload.fields.text%3D%22%3Chtml%3E%5Cr%5Cn%3Chead%3E%3Ctitle%3E503%20Service%20Temporarily%20Unavailable%3C%2Ftitle%3E%3C%2Fhead%3E%5Cr%5Cn%3Cbody%3E%5Cr%5Cn%3Ccenter%3E%3Ch1%3E503%20Service%20Temporarily%20Unavailable%3C%2Fh1%3E%3C%2Fcenter%3E%5Cr%5Cn%3Chr%3E%3Ccenter%3Enginx%3C%2Fcenter%3E%5Cr%5Cn%3C%2Fbody%3E%5Cr%5Cn%3C%2Fhtml%3E%5Cr%5Cn%22%0A-jsonPayload.fields.text%3D%22%3Chtml%3E%5Cr%5Cn%3Chead%3E%3Ctitle%3E502%20Bad%20Gateway%3C%2Ftitle%3E%3C%2Fhead%3E%5Cr%5Cn%3Cbody%3E%5Cr%5Cn%3Ccenter%3E%3Ch1%3E502%20Bad%20Gateway%3C%2Fh1%3E%3C%2Fcenter%3E%5Cr%5Cn%3Chr%3E%3Ccenter%3Enginx%3C%2Fcenter%3E%5Cr%5Cn%3C%2Fbody%3E%5Cr%5Cn%3C%2Fhtml%3E%5Cr%5Cn%22%0A-jsonPayload.fields.error%3D~%22error%20trying%20to%20connect:%20error:14094410:SSL%20routines:ssl3_read_bytes:sslv3%20alert%20handshake%20failure:..%2Fssl%2Frecord%2Frec_layer_s3.c:1543:SSL%20alert%20number%2040%22%0A-jsonPayload.fields.text%3D~%22The%20gateway%20cannot%20get%20a%20response,%20please%20try%20again%20or%20contact%20the%20administrator%22%0A-jsonPayload.fields.error%3D~%22Connection%20reset%20by%20peer%20%5C%2528os%20error%20104%5C%2529%22%0A-jsonPayload.fields.text%3D%22%3Chtml%3E%5Cr%5Cn%3Chead%3E%3Ctitle%3E502%20Bad%20Gateway%3C%2Ftitle%3E%3C%2Fhead%3E%5Cr%5Cn%3Cbody%3E%5Cr%5Cn%3Ccenter%3E%3Ch1%3E502%20Bad%20Gateway%3C%2Fh1%3E%3C%2Fcenter%3E%5Cr%5Cn%3Chr%3E%3Ccenter%3Ecloudflare%3C%2Fcenter%3E%5Cr%5Cn%3C%2Fbody%3E%5Cr%5Cn%3C%2Fhtml%3E%5Cr%5Cn%22%0A-jsonPayload.fields.text%3D%22%7B%5C%22jsonrpc%5C%22:%5C%222.0%5C%22,%5C%22error%5C%22:%7B%5C%22code%5C%22:0,%5C%22message%5C%22:%5C%22we%20can't%20execute%20this%20request%5C%22%7D,%5C%22id%5C%22:null%7D%22%0A-jsonPayload.fields.error%3D%22%2528code:%20-32000,%20message:%20transaction%20underpriced,%20data:%20None%2529%22%0A-jsonPayload.fields.error%3D%22%2528code:%20-32000,%20message:%20replacement%20transaction%20underpriced,%20data:%20None%2529%22%0A-jsonPayload.fields.text%3D%22%7B%5C%22jsonrpc%5C%22:%5C%222.0%5C%22,%5C%22result%5C%22:%7B%5C%22code%5C%22:429,%5C%22message%5C%22:%5C%22Total%20number%20of%20requests%20exceeded.%20Want%20higher%20rate%20limit%3F%20Contact%20us%20at%20sales@gateway.fm%5C%22%7D,%5C%22id%5C%22:%5C%22%5C%22%7D%22%0A-jsonPayload.fields.text%3D%22%3Chtml%3E%5Cr%5Cn%3Chead%3E%3Ctitle%3E502%20Bad%20Gateway%3C%2Ftitle%3E%3C%2Fhead%3E%5Cr%5Cn%3Cbody%3E%5Cr%5Cn%3Ccenter%3E%3Ch1%3E502%20Bad%20Gateway%3C%2Fh1%3E%3C%2Fcenter%3E%5Cr%5Cn%3Chr%3E%3Ccenter%3Enginx%2F1.20.2%3C%2Fcenter%3E%5Cr%5Cn%3C%2Fbody%3E%5Cr%5Cn%3C%2Fhtml%3E%5Cr%5Cn%22%0A-jsonPayload.fields.text%3D~%22504%20ERROR%22%0A-jsonPayload.fields.text%3D%22Gateway%20Timeout%22%0A-jsonPayload.fields.text%3D%22404%20page%20not%20found%5Cn%22%0A-jsonPayload.fields.error%3D~%22error%20trying%20to%20connect:%20unexpected%20EOF%22%0A-jsonPayload.fields.error%3D~%22execution%20reverted:%20No%20router%20enrolled%20for%20domain.%20Did%20you%20specify%20the%20right%20domain%20ID%3F%22%0A-jsonPayload.fields.error%3D~%22VM%20Exception%20while%20processing%20transaction:%20revert%20No%20router%20enrolled%20for%20domain.%20Did%20you%20specify%20the%20right%20domain%20ID%3F%22%0A-jsonPayload.fields.error%3D%22%2528code:%20-32000,%20message:%20invalid%20transaction:%20nonce%20too%20low,%20data:%20None%2529%22%0A-jsonPayload.fields.error%3D%22%2528code:%20-32000,%20message:%20already%20known,%20data:%20None%2529%22%0A-jsonPayload.fields.error%3D%22%2528code:%20-32010,%20message:%20AlreadyKnown,%20data:%20None%2529%22%0A-jsonPayload.fields.error%3D~%22message:%20nonce%20too%20low%22%0A-jsonPayload.fields.error%3D~%22message:%20execution%20reverted:%20delivered%22%0A-jsonPayload.fields.error%3D%22%2528code:%20-32603,%20message:%20already%20known,%20data:%20None%2529%22%0A-jsonPayload.fields.error%3D%22%2528code:%20-32000,%20message:%20ALREADY_EXISTS:%20already%20known,%20data:%20None%2529%22%0A-jsonPayload.fields.text%3D%22%7B%5Cn%20%20%5C%22message%5C%22:%5C%22An%20invalid%20response%20was%20received%20from%20the%20upstream%20server%5C%22%5Cn%7D%22%0A-jsonPayload.fields.error%3D%22%2528code:%20-32601,%20message:%20Method%20not%20found,%20data:%20Some%2528Object%20%7B%5C%22method%5C%22:%20String%2528%5C%22'eth_getLogs'%20is%20not%20available%20on%20our%20public%20API.%20Head%20over%20to%20https:%2F%2Fdocs.blastapi.io%2Fblast-documentation%2Ftutorials-and-guides%2Fusing-blast-to-get-a-blockchain-endpoint%20for%20more%20information%5C%22%2529%7D%2529%2529%22%0A-jsonPayload.fields.error%3D~%22insufficient%20funds%22%0A-jsonPayload.fields.text%3D%22%7B%5C%22jsonrpc%5C%22:%5C%222.0%5C%22,%5C%22result%5C%22:%7B%5C%22code%5C%22:429,%5C%22message%5C%22:%5C%22Total%20number%20of%20requests%20exceeded%5C%22%7D,%5C%22id%5C%22:%5C%22%5C%22%7D%22%0A-jsonPayload.fields.text%3D~%22data%20not%20instance%20of%20model%22;summaryFields=jsonPayload%252Ffields%252Ftext,jsonPayload%252Fspan%252Fmethod,jsonPayload%252Ffields%252Ferror:false:32:beginning;timeRange=2023-02-16T06:56:50.422Z%2F2023-03-23T20:56:50.422Z?project=abacus-labs-dev) Since that will eventually rot I am also listing my query here: ``` severity=WARNING jsonPayload.target=~"hyperlane_ethereum::(retrying|fallback)" (jsonPayload.span.method=~".*eth_.*" OR jsonPayload.fields.method=~".*eth_.*") -jsonPayload.fields.text="{\"message\":\"no Route matched with those values\"}" -jsonPayload.fields.error=~".*connection closed before message completed.*" -jsonPayload.fields.error=~".*tcp connect error.*" -jsonPayload.fields.text="<html>\r\n<head><title>502 Bad Gateway</title></head>\r\n<body>\r\n<center><h1>502 Bad Gateway</h1></center>\r\n</body>\r\n</html>\r\n" -jsonPayload.fields.error="(code: 429, message: Your app has exceeded its compute units per second capacity. If you have retries enabled, you can safely ignore this message. If not, check out https://docs.alchemy.com/reference/throughput, data: None)" -jsonPayload.fields.text="default backend - 404" -jsonPayload.fields.text="Bad Gateway" -jsonPayload.fields.error=~".*Connection reset by peer (os error 104)" -jsonPayload.fields.text="API call rejected because chain is not done bootstrapping" -jsonPayload.fields.error="(code: -32601, message: the method eth_feeHistory does not exist/is not available, data: None)" -jsonPayload.target="hyperlane_ethereum::fallback" -jsonPayload.fields.error=~"operation timed out" -jsonPayload.fields.error="(code: -32000, message: 404 Not Found: {\"jsonrpc\":\"2.0\",\"error\":{\"code\":404,\"message\":\"arb1-sequencer rate limit hit. Try again 1 minute\"}}, data: None)" -jsonPayload.fields.error="(code: -32000, message: 429 Too Many Requests: {\"jsonrpc\":\"2.0\",\"error\":{\"code\":429,\"message\":\"Public RPC Rate Limit Hit, limit will reset in 60 seconds\"}}, data: None)" -jsonPayload.fields.error=~"unable to get local issuer certificate" -jsonPayload.fields.error="EOF while parsing a value at line 1 column 0" -jsonPayload.fields.text="internal service failure\n" -jsonPayload.fields.text="<html>\r\n<head><title>503 Service Temporarily Unavailable</title></head>\r\n<body>\r\n<center><h1>503 Service Temporarily Unavailable</h1></center>\r\n<hr><center>nginx</center>\r\n</body>\r\n</html>\r\n" -jsonPayload.fields.text="<html>\r\n<head><title>502 Bad Gateway</title></head>\r\n<body>\r\n<center><h1>502 Bad Gateway</h1></center>\r\n<hr><center>nginx</center>\r\n</body>\r\n</html>\r\n" -jsonPayload.fields.error=~"error trying to connect: error:14094410:SSL routines:ssl3_read_bytes:sslv3 alert handshake failure:../ssl/record/rec_layer_s3.c:1543:SSL alert number 40" -jsonPayload.fields.text=~"The gateway cannot get a response, please try again or contact the administrator" -jsonPayload.fields.error=~"Connection reset by peer \(os error 104\)" -jsonPayload.fields.text="<html>\r\n<head><title>502 Bad Gateway</title></head>\r\n<body>\r\n<center><h1>502 Bad Gateway</h1></center>\r\n<hr><center>cloudflare</center>\r\n</body>\r\n</html>\r\n" -jsonPayload.fields.text="{\"jsonrpc\":\"2.0\",\"error\":{\"code\":0,\"message\":\"we can't execute this request\"},\"id\":null}" -jsonPayload.fields.error="(code: -32000, message: transaction underpriced, data: None)" -jsonPayload.fields.error="(code: -32000, message: replacement transaction underpriced, data: None)" -jsonPayload.fields.text="{\"jsonrpc\":\"2.0\",\"result\":{\"code\":429,\"message\":\"Total number of requests exceeded. Want higher rate limit? Contact us at sales@gateway.fm\"},\"id\":\"\"}" -jsonPayload.fields.text="<html>\r\n<head><title>502 Bad Gateway</title></head>\r\n<body>\r\n<center><h1>502 Bad Gateway</h1></center>\r\n<hr><center>nginx/1.20.2</center>\r\n</body>\r\n</html>\r\n" -jsonPayload.fields.text=~"504 ERROR" -jsonPayload.fields.text="Gateway Timeout" -jsonPayload.fields.text="404 page not found\n" -jsonPayload.fields.error=~"error trying to connect: unexpected EOF" -jsonPayload.fields.error=~"execution reverted: No router enrolled for domain. Did you specify the right domain ID?" -jsonPayload.fields.error=~"VM Exception while processing transaction: revert No router enrolled for domain. Did you specify the right domain ID?" -jsonPayload.fields.error="(code: -32000, message: invalid transaction: nonce too low, data: None)" -jsonPayload.fields.error="(code: -32000, message: already known, data: None)" -jsonPayload.fields.error="(code: -32010, message: AlreadyKnown, data: None)" -jsonPayload.fields.error=~"message: nonce too low" -jsonPayload.fields.error=~"message: execution reverted: delivered" -jsonPayload.fields.error="(code: -32603, message: already known, data: None)" -jsonPayload.fields.error="(code: -32000, message: ALREADY_EXISTS: already known, data: None)" -jsonPayload.fields.text="{\n \"message\":\"An invalid response was received from the upstream server\"\n}" -jsonPayload.fields.error="(code: -32601, message: Method not found, data: Some(Object {\"method\": String(\"'eth_getLogs' is not available on our public API. Head over to https://docs.blastapi.io/blast-documentation/tutorials-and-guides/using-blast-to-get-a-blockchain-endpoint for more information\")}))" -jsonPayload.fields.error=~"insufficient funds" -jsonPayload.fields.text="{\"jsonrpc\":\"2.0\",\"result\":{\"code\":429,\"message\":\"Total number of requests exceeded\"},\"id\":\"\"}" -jsonPayload.fields.text=~"data not instance of model" ``` Which managed to categorize errors over a large time range and I used to verify that my logic is sound. ### Drive-by changes - Moves code logic to avoid duplication ### Related issues - Fixes #1944 - Fixes hyperlane-xyz/issues#412 - Fixes hyperlane-xyz/issues#414 ### Backward compatibility _Are these changes backward compatible?_ Yes _Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling?_ None ### Testing _What kind of testing have these changes undergone?_ Manual |
2 years ago |
Asa Oines |
f25feecfa7
|
Scaffolding for multiple ISM types in the relayer (#2028)
### Description This PR adds scaffolding in the relayer to support building metadata for multiple ISM types. To add a new ISM type: - Add a new implementation of MetadataBuilder for that type - Add the type to the SupportedIsmTypes enum - Add the type to the match statement in BaseMetadataBuilder ### Drive-by changes None ### Related issues - #1757 ### Backward compatibility _Are these changes backward compatible?_ Yes _Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling?_ None ### Testing _What kind of testing have these changes undergone?_ E2E tests |
2 years ago |
Asa Oines |
63558af85d
|
Use interfaces in agents (#2022)
### Description Move agents to use contract interfaces artifacts rather than the artifacts themselves. This ensures we don't anything that we can't guarantee is in every implementation of that interface. Particularly relevant for IGPs and ISMs. ### Drive-by changes - Moves `solidity/interfaces` to `solidity/contracts/interfaces` so that their artifacts can be used in `update_abis.sh` ### Related issues - #1757 ### Backward compatibility _Are these changes backward compatible?_ Yes _Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling?_ None ### Testing _What kind of testing have these changes undergone?_ None |
2 years ago |
Yorke Rhodes |
6f7495320b
|
Regenerate test fixtures and unskip hardhat tests (#2035)
|
2 years ago |
Mattie Conover |
1c2eb1bc07
|
Scraper Refresh (#1932)
### Description Since we need to re-scrape everything anyway, wanted to go ahead and make some improvements and bug fixes now. * Adds code to scrape gas payments from the IGP during the sync loop * Updates gas payments table to work with new gas payment format * Fixed support with scraper for new configuration format (adds configurable list of chains to scrape) * Adds a new view for messages to display all relevant information * Adds a new view for gas payments to show total amounts paid for a given message * Fixed a bug introduced by seaorm (0.10) where `last_inserted_id` switched from being the first insert id to being the last * Pulled in a fix from @serejke in #1925 * Updated seaorm to 0.11.1 * Adds support for sepolia * Improved logging output at various levels ### Drive-by changes * Updated fallback provider to still retry even if it only has one url * Adds support for postgres `numeric` types to store Wei values (supported as of seaorm 0.11) * Switches to `bytea` representations of binary values * Switched from the `chrono` library to `time` (`chrono` is outdated and uses an unpatched version of `time`) * Removed redundant timestamp from `message` table * Cleans up some unused code ### Related issues - Fixes #1925 - Fixes #1156 ### Backward compatibility _Are these changes backward compatible?_ No - this has a new database format and for this reason defines entirely new migrations. _Are there any infrastructure implications, e.g. changes that would prohibit deploying older commits using this infra tooling?_ Yes - I changed it to `scraper3` so that we can run it along side the old scraper. It now also lines up with the name in the database. There is a new env var to specify what chains are scraped `HYP_BASE_CHAINSTOSCRAPE`. ### Testing _What kind of testing have these changes undergone?_ Manual - Been running the scraper locally and also deployed a current version of it to testnet3 for a subset of chains. |
2 years ago |