diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 00000000..dc9d1e79 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,291 @@ +# This file was autogenerated by dist: https://opensource.axo.dev/cargo-dist/ +# +# Copyright 2022-2024, axodotdev +# SPDX-License-Identifier: MIT or Apache-2.0 +# +# CI that: +# +# * checks for a Git Tag that looks like a release +# * builds artifacts with dist (archives, installers, hashes) +# * uploads those artifacts to temporary workflow zip +# * on success, uploads the artifacts to a GitHub Release +# +# Note that the GitHub Release will be created with a generated +# title/body based on your changelogs. + +name: Release +permissions: + "contents": "write" + +# This task will run whenever you push a git tag that looks like a version +# like "1.0.0", "v0.1.0-prerelease.1", "my-app/0.1.0", "releases/v1.0.0", etc. +# Various formats will be parsed into a VERSION and an optional PACKAGE_NAME, where +# PACKAGE_NAME must be the name of a Cargo package in your workspace, and VERSION +# must be a Cargo-style SemVer Version (must have at least major.minor.patch). +# +# If PACKAGE_NAME is specified, then the announcement will be for that +# package (erroring out if it doesn't have the given version or isn't dist-able). +# +# If PACKAGE_NAME isn't specified, then the announcement will be for all +# (dist-able) packages in the workspace with that version (this mode is +# intended for workspaces with only one dist-able package, or with all dist-able +# packages versioned/released in lockstep). +# +# If you push multiple tags at once, separate instances of this workflow will +# spin up, creating an independent announcement for each one. However, GitHub +# will hard limit this to 3 tags per commit, as it will assume more tags is a +# mistake. +# +# If there's a prerelease-style suffix to the version, then the release(s) +# will be marked as a prerelease. +on: + pull_request: + push: + tags: + - '**[0-9]+.[0-9]+.[0-9]+*' + +jobs: + # Run 'dist plan' (or host) to determine what tasks we need to do + plan: + runs-on: "ubuntu-20.04" + outputs: + val: ${{ steps.plan.outputs.manifest }} + tag: ${{ !github.event.pull_request && github.ref_name || '' }} + tag-flag: ${{ !github.event.pull_request && format('--tag={0}', github.ref_name) || '' }} + publishing: ${{ !github.event.pull_request }} + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + - name: Install dist + # we specify bash to get pipefail; it guards against the `curl` command + # failing. otherwise `sh` won't catch that `curl` returned non-0 + shell: bash + run: "curl --proto '=https' --tlsv1.2 -LsSf https://github.com/axodotdev/cargo-dist/releases/download/v0.28.0/cargo-dist-installer.sh | sh" + - name: Cache dist + uses: actions/upload-artifact@v4 + with: + name: cargo-dist-cache + path: ~/.cargo/bin/dist + # sure would be cool if github gave us proper conditionals... + # so here's a doubly-nested ternary-via-truthiness to try to provide the best possible + # functionality based on whether this is a pull_request, and whether it's from a fork. + # (PRs run on the *source* but secrets are usually on the *target* -- that's *good* + # but also really annoying to build CI around when it needs secrets to work right.) + - id: plan + run: | + dist ${{ (!github.event.pull_request && format('host --steps=create --tag={0}', github.ref_name)) || 'plan' }} --output-format=json > plan-dist-manifest.json + echo "dist ran successfully" + cat plan-dist-manifest.json + echo "manifest=$(jq -c "." plan-dist-manifest.json)" >> "$GITHUB_OUTPUT" + - name: "Upload dist-manifest.json" + uses: actions/upload-artifact@v4 + with: + name: artifacts-plan-dist-manifest + path: plan-dist-manifest.json + + # Build and packages all the platform-specific things + build-local-artifacts: + name: build-local-artifacts (${{ join(matrix.targets, ', ') }}) + # Let the initial task tell us to not run (currently very blunt) + needs: + - plan + if: ${{ fromJson(needs.plan.outputs.val).ci.github.artifacts_matrix.include != null && (needs.plan.outputs.publishing == 'true' || fromJson(needs.plan.outputs.val).ci.github.pr_run_mode == 'upload') }} + strategy: + fail-fast: false + # Target platforms/runners are computed by dist in create-release. + # Each member of the matrix has the following arguments: + # + # - runner: the github runner + # - dist-args: cli flags to pass to dist + # - install-dist: expression to run to install dist on the runner + # + # Typically there will be: + # - 1 "global" task that builds universal installers + # - N "local" tasks that build each platform's binaries and platform-specific installers + matrix: ${{ fromJson(needs.plan.outputs.val).ci.github.artifacts_matrix }} + runs-on: ${{ matrix.runner }} + container: ${{ matrix.container && matrix.container.image || null }} + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + BUILD_MANIFEST_NAME: target/distrib/${{ join(matrix.targets, '-') }}-dist-manifest.json + steps: + - name: enable windows longpaths + run: | + git config --global core.longpaths true + - uses: actions/checkout@v4 + with: + submodules: recursive + - name: Install Rust non-interactively if not already installed + if: ${{ matrix.container }} + run: | + if ! command -v cargo > /dev/null 2>&1; then + curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y + echo "$HOME/.cargo/bin" >> $GITHUB_PATH + fi + - name: Install dist + run: ${{ matrix.install_dist.run }} + # Get the dist-manifest + - name: Fetch local artifacts + uses: actions/download-artifact@v4 + with: + pattern: artifacts-* + path: target/distrib/ + merge-multiple: true + - name: Install dependencies + run: | + ${{ matrix.packages_install }} + - name: Build artifacts + run: | + # Actually do builds and make zips and whatnot + dist build ${{ needs.plan.outputs.tag-flag }} --print=linkage --output-format=json ${{ matrix.dist_args }} > dist-manifest.json + echo "dist ran successfully" + - id: cargo-dist + name: Post-build + # We force bash here just because github makes it really hard to get values up + # to "real" actions without writing to env-vars, and writing to env-vars has + # inconsistent syntax between shell and powershell. + shell: bash + run: | + # Parse out what we just built and upload it to scratch storage + echo "paths<> "$GITHUB_OUTPUT" + dist print-upload-files-from-manifest --manifest dist-manifest.json >> "$GITHUB_OUTPUT" + echo "EOF" >> "$GITHUB_OUTPUT" + + cp dist-manifest.json "$BUILD_MANIFEST_NAME" + - name: "Upload artifacts" + uses: actions/upload-artifact@v4 + with: + name: artifacts-build-local-${{ join(matrix.targets, '_') }} + path: | + ${{ steps.cargo-dist.outputs.paths }} + ${{ env.BUILD_MANIFEST_NAME }} + + # Build and package all the platform-agnostic(ish) things + build-global-artifacts: + needs: + - plan + - build-local-artifacts + runs-on: "ubuntu-20.04" + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + BUILD_MANIFEST_NAME: target/distrib/global-dist-manifest.json + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + - name: Install cached dist + uses: actions/download-artifact@v4 + with: + name: cargo-dist-cache + path: ~/.cargo/bin/ + - run: chmod +x ~/.cargo/bin/dist + # Get all the local artifacts for the global tasks to use (for e.g. checksums) + - name: Fetch local artifacts + uses: actions/download-artifact@v4 + with: + pattern: artifacts-* + path: target/distrib/ + merge-multiple: true + - id: cargo-dist + shell: bash + run: | + dist build ${{ needs.plan.outputs.tag-flag }} --output-format=json "--artifacts=global" > dist-manifest.json + echo "dist ran successfully" + + # Parse out what we just built and upload it to scratch storage + echo "paths<> "$GITHUB_OUTPUT" + jq --raw-output ".upload_files[]" dist-manifest.json >> "$GITHUB_OUTPUT" + echo "EOF" >> "$GITHUB_OUTPUT" + + cp dist-manifest.json "$BUILD_MANIFEST_NAME" + - name: "Upload artifacts" + uses: actions/upload-artifact@v4 + with: + name: artifacts-build-global + path: | + ${{ steps.cargo-dist.outputs.paths }} + ${{ env.BUILD_MANIFEST_NAME }} + # Determines if we should publish/announce + host: + needs: + - plan + - build-local-artifacts + - build-global-artifacts + # Only run if we're "publishing", and only if local and global didn't fail (skipped is fine) + if: ${{ always() && needs.plan.outputs.publishing == 'true' && (needs.build-global-artifacts.result == 'skipped' || needs.build-global-artifacts.result == 'success') && (needs.build-local-artifacts.result == 'skipped' || needs.build-local-artifacts.result == 'success') }} + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + runs-on: "ubuntu-20.04" + outputs: + val: ${{ steps.host.outputs.manifest }} + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + - name: Install cached dist + uses: actions/download-artifact@v4 + with: + name: cargo-dist-cache + path: ~/.cargo/bin/ + - run: chmod +x ~/.cargo/bin/dist + # Fetch artifacts from scratch-storage + - name: Fetch artifacts + uses: actions/download-artifact@v4 + with: + pattern: artifacts-* + path: target/distrib/ + merge-multiple: true + - id: host + shell: bash + run: | + dist host ${{ needs.plan.outputs.tag-flag }} --steps=upload --steps=release --output-format=json > dist-manifest.json + echo "artifacts uploaded and released successfully" + cat dist-manifest.json + echo "manifest=$(jq -c "." dist-manifest.json)" >> "$GITHUB_OUTPUT" + - name: "Upload dist-manifest.json" + uses: actions/upload-artifact@v4 + with: + # Overwrite the previous copy + name: artifacts-dist-manifest + path: dist-manifest.json + # Create a GitHub Release while uploading all files to it + - name: "Download GitHub Artifacts" + uses: actions/download-artifact@v4 + with: + pattern: artifacts-* + path: artifacts + merge-multiple: true + - name: Cleanup + run: | + # Remove the granular manifests + rm -f artifacts/*-dist-manifest.json + - name: Create GitHub Release + env: + PRERELEASE_FLAG: "${{ fromJson(steps.host.outputs.manifest).announcement_is_prerelease && '--prerelease' || '' }}" + ANNOUNCEMENT_TITLE: "${{ fromJson(steps.host.outputs.manifest).announcement_title }}" + ANNOUNCEMENT_BODY: "${{ fromJson(steps.host.outputs.manifest).announcement_github_body }}" + RELEASE_COMMIT: "${{ github.sha }}" + run: | + # Write and read notes from a file to avoid quoting breaking things + echo "$ANNOUNCEMENT_BODY" > $RUNNER_TEMP/notes.txt + + gh release create "${{ needs.plan.outputs.tag }}" --target "$RELEASE_COMMIT" $PRERELEASE_FLAG --title "$ANNOUNCEMENT_TITLE" --notes-file "$RUNNER_TEMP/notes.txt" artifacts/* + + announce: + needs: + - plan + - host + # use "always() && ..." to allow us to wait for all publish jobs while + # still allowing individual publish jobs to skip themselves (for prereleases). + # "host" however must run to completion, no skipping allowed! + if: ${{ always() && needs.host.result == 'success' }} + runs-on: "ubuntu-20.04" + env: + GH_TOKEN: ${{ secrets.GITHUB_TOKEN }} + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive diff --git a/.github/workflows/update-contracts.yaml b/.github/workflows/update-contracts.yaml index 3761c649..6fc4a989 100644 --- a/.github/workflows/update-contracts.yaml +++ b/.github/workflows/update-contracts.yaml @@ -1,7 +1,7 @@ on: push: tags: - - '*' + - 'contracts-v[0-9]+.[0-9]+.[0-9]+*' workflow_dispatch: diff --git a/dist-workspace.toml b/dist-workspace.toml new file mode 100644 index 00000000..99954e21 --- /dev/null +++ b/dist-workspace.toml @@ -0,0 +1,17 @@ +[workspace] +members = ["cargo:omni-relayer"] + +# Config for 'dist' +[dist] +# The preferred dist version to use in CI (Cargo.toml SemVer syntax) +cargo-dist-version = "0.28.0" +# CI backends to support +ci = "github" +# The installers to generate for each app +installers = ["shell"] +# Target platforms to build apps for (Rust target-triple syntax) +targets = ["aarch64-apple-darwin", "aarch64-unknown-linux-gnu", "x86_64-apple-darwin", "x86_64-unknown-linux-gnu", "x86_64-pc-windows-msvc"] +# Path that installers should place binaries in +install-path = "CARGO_HOME" +# Whether to install an updater program +install-updater = false diff --git a/omni-relayer/Cargo.lock b/omni-relayer/Cargo.lock index 1ec0a50c..5a28a5e8 100644 --- a/omni-relayer/Cargo.lock +++ b/omni-relayer/Cargo.lock @@ -1173,9 +1173,9 @@ checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "aws-config" -version = "1.5.15" +version = "1.5.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc47e70fc35d054c8fcd296d47a61711f043ac80534a10b4f741904f81e73a90" +checksum = "50236e4d60fe8458de90a71c0922c761e41755adf091b1b03de1cef537179915" dependencies = [ "aws-credential-types", "aws-runtime", @@ -1215,9 +1215,9 @@ dependencies = [ [[package]] name = "aws-runtime" -version = "1.5.4" +version = "1.5.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bee7643696e7fdd74c10f9eb42848a87fe469d35eae9c3323f80aa98f350baac" +checksum = "76dd04d39cc12844c0994f2c9c5a6f5184c22e9188ec1ff723de41910a21dcad" dependencies = [ "aws-credential-types", "aws-sigv4", @@ -1236,14 +1236,14 @@ dependencies = [ "percent-encoding", "pin-project-lite", "tracing", - "uuid 1.12.1", + "uuid 1.13.1", ] [[package]] name = "aws-sdk-s3" -version = "1.72.0" +version = "1.73.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c7ce6d85596c4bcb3aba8ad5bb134b08e204c8a475c9999c1af9290f80aa8ad" +checksum = "3978e0a211bdc5cddecfd91fb468665a662a27fbdaef39ddf36a2a18fef12cb4" dependencies = [ "aws-credential-types", "aws-runtime", @@ -1275,9 +1275,9 @@ dependencies = [ [[package]] name = "aws-sdk-sso" -version = "1.57.0" +version = "1.58.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c54bab121fe1881a74c338c5f723d1592bf3b53167f80268a1274f404e1acc38" +checksum = "16ff718c9ee45cc1ebd4774a0e086bb80a6ab752b4902edf1c9f56b86ee1f770" dependencies = [ "aws-credential-types", "aws-runtime", @@ -1297,9 +1297,9 @@ dependencies = [ [[package]] name = "aws-sdk-ssooidc" -version = "1.58.0" +version = "1.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8c8234fd024f7ac61c4e44ea008029bde934250f371efe7d4a39708397b1080c" +checksum = "5183e088715cc135d8d396fdd3bc02f018f0da4c511f53cb8d795b6a31c55809" dependencies = [ "aws-credential-types", "aws-runtime", @@ -1319,9 +1319,9 @@ dependencies = [ [[package]] name = "aws-sdk-sts" -version = "1.58.0" +version = "1.59.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ba60e1d519d6f23a9df712c04fdeadd7872ac911c84b2f62a8bda92e129b7962" +checksum = "c9f944ef032717596639cea4a2118a3a457268ef51bbb5fde9637e54c465da00" dependencies = [ "aws-credential-types", "aws-runtime", @@ -1342,9 +1342,9 @@ dependencies = [ [[package]] name = "aws-sigv4" -version = "1.2.7" +version = "1.2.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "690118821e46967b3c4501d67d7d52dd75106a9c54cf36cefa1985cedbe94e05" +checksum = "0bc5bbd1e4a2648fd8c5982af03935972c24a2f9846b396de661d351ee3ce837" dependencies = [ "aws-credential-types", "aws-smithy-eventstream", @@ -1455,9 +1455,9 @@ dependencies = [ [[package]] name = "aws-smithy-runtime" -version = "1.7.7" +version = "1.7.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "865f7050bbc7107a6c98a397a9fcd9413690c27fa718446967cf03b2d3ac517e" +checksum = "d526a12d9ed61fadefda24abe2e682892ba288c2018bcb38b1b4c111d13f6d92" dependencies = [ "aws-smithy-async", "aws-smithy-http", @@ -1499,9 +1499,9 @@ dependencies = [ [[package]] name = "aws-smithy-types" -version = "1.2.12" +version = "1.2.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a28f6feb647fb5e0d5b50f0472c19a7db9462b74e2fec01bb0b44eedcc834e97" +checksum = "c7b8a53819e42f10d0821f56da995e1470b199686a1809168db6ca485665f042" dependencies = [ "base64-simd", "bytes", @@ -1534,9 +1534,9 @@ dependencies = [ [[package]] name = "aws-types" -version = "1.3.4" +version = "1.3.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0df5a18c4f951c645300d365fec53a61418bcf4650f604f85fe2a665bfaa0c2" +checksum = "dfbd0a668309ec1f66c0f6bda4840dd6d4796ae26d699ebc266d7cc95c6d040f" dependencies = [ "aws-credential-types", "aws-smithy-async", @@ -1815,7 +1815,7 @@ dependencies = [ [[package]] name = "bridge-connector-common" version = "0.2.0" -source = "git+https://github.com/Near-One/bridge-sdk-rs#a23d35bc76e9079decb11c85d436845baa1c1cc2" +source = "git+https://github.com/Near-One/bridge-sdk-rs#cdf2800d33f3fc267234001ce8463d637eed9ef1" dependencies = [ "eth-proof", "ethers", @@ -1914,9 +1914,9 @@ checksum = "1fd0f2584146f6f2ef48085050886acf353beff7305ebd1ae69500e27c67f64b" [[package]] name = "bytes" -version = "1.9.0" +version = "1.10.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "325918d6fe32f23b19878fe4b34794ae41fc19ddbe53b10571a4874d44ffd39b" +checksum = "f61dac84819c6588b558454b194026eb1f09c293b9036ae9b159e74e73ab6cf9" dependencies = [ "serde", ] @@ -2034,14 +2034,14 @@ dependencies = [ "serde_json", "syn 2.0.98", "tempfile", - "toml 0.8.19", + "toml 0.8.20", ] [[package]] name = "cc" -version = "1.2.11" +version = "1.2.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e4730490333d58093109dc02c23174c3f4d490998c3fed3cc8e82d57afedb9cf" +checksum = "755717a7de9ec452bf7f3f1a3099085deabd7f2962b861dae91ecd7a365903d2" dependencies = [ "jobserver", "libc", @@ -2121,9 +2121,9 @@ dependencies = [ [[package]] name = "clap" -version = "4.5.27" +version = "4.5.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "769b0145982b4b48713e01ec42d61614425f27b7058bda7180a3a41f30104796" +checksum = "3e77c3243bd94243c03672cb5154667347c457ca271254724f9f393aee1c05ff" dependencies = [ "clap_builder", "clap_derive", @@ -2143,9 +2143,9 @@ dependencies = [ [[package]] name = "clap_derive" -version = "4.5.24" +version = "4.5.28" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54b755194d6389280185988721fffba69495eed5ee9feeee9a599b53db80318c" +checksum = "bf4ced95c6f4a675af3da73304b9ac4ed991640c36374e4b46795c49e17cf1ed" dependencies = [ "heck 0.5.0", "proc-macro2", @@ -2766,9 +2766,9 @@ dependencies = [ [[package]] name = "derive_more" -version = "0.99.18" +version = "0.99.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5f33878137e4dafd7fa914ad4e259e18a4e8e532b9617a2d0150262bf53abfce" +checksum = "3da29a38df43d6f156149c9b43ded5e018ddff2a855cf2cfd62e8cd7d079c69f" dependencies = [ "convert_case", "proc-macro2", @@ -2907,6 +2907,12 @@ version = "1.0.5" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "92773504d58c093f6de2459af4af33faa518c13451eb8f2b5698ed3d36e7c813" +[[package]] +name = "dyn-clone" +version = "1.0.18" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "feeef44e73baff3a26d371801df019877a9866a8c493d315ab00177843314f35" + [[package]] name = "eager" version = "0.1.0" @@ -3183,7 +3189,7 @@ dependencies = [ [[package]] name = "eth-proof" version = "0.2.0" -source = "git+https://github.com/Near-One/bridge-sdk-rs#a23d35bc76e9079decb11c85d436845baa1c1cc2" +source = "git+https://github.com/Near-One/bridge-sdk-rs#cdf2800d33f3fc267234001ce8463d637eed9ef1" dependencies = [ "borsh 1.5.5", "cita_trie", @@ -3341,7 +3347,7 @@ dependencies = [ "serde", "serde_json", "syn 2.0.98", - "toml 0.8.19", + "toml 0.8.20", "walkdir", ] @@ -3552,7 +3558,7 @@ dependencies = [ [[package]] name = "evm-bridge-client" version = "0.2.0" -source = "git+https://github.com/Near-One/bridge-sdk-rs#a23d35bc76e9079decb11c85d436845baa1c1cc2" +source = "git+https://github.com/Near-One/bridge-sdk-rs#cdf2800d33f3fc267234001ce8463d637eed9ef1" dependencies = [ "borsh 1.5.5", "bridge-connector-common", @@ -5075,7 +5081,7 @@ dependencies = [ [[package]] name = "near-bridge-client" version = "0.2.0" -source = "git+https://github.com/Near-One/bridge-sdk-rs#a23d35bc76e9079decb11c85d436845baa1c1cc2" +source = "git+https://github.com/Near-One/bridge-sdk-rs#cdf2800d33f3fc267234001ce8463d637eed9ef1" dependencies = [ "borsh 1.5.5", "bridge-connector-common", @@ -5101,7 +5107,7 @@ dependencies = [ "anyhow", "bytesize", "chrono", - "derive_more 0.99.18", + "derive_more 0.99.19", "near-config-utils 0.28.0", "near-crypto 0.28.0", "near-parameters 0.28.0", @@ -5159,7 +5165,7 @@ dependencies = [ "borsh 1.5.5", "bs58 0.4.0", "curve25519-dalek 4.1.3", - "derive_more 0.99.18", + "derive_more 0.99.19", "ed25519-dalek 2.1.1", "hex", "near-account-id", @@ -5184,7 +5190,7 @@ dependencies = [ "borsh 1.5.5", "bs58 0.4.0", "curve25519-dalek 4.1.3", - "derive_more 0.99.18", + "derive_more 0.99.19", "ed25519-dalek 2.1.1", "hex", "near-account-id", @@ -5304,7 +5310,7 @@ dependencies = [ [[package]] name = "near-light-client-on-eth" version = "0.2.0" -source = "git+https://github.com/Near-One/bridge-sdk-rs#a23d35bc76e9079decb11c85d436845baa1c1cc2" +source = "git+https://github.com/Near-One/bridge-sdk-rs#cdf2800d33f3fc267234001ce8463d637eed9ef1" dependencies = [ "ethereum-types 0.14.1", "ethers", @@ -5364,7 +5370,7 @@ dependencies = [ "bytesize", "cfg-if 1.0.0", "chrono", - "derive_more 0.99.18", + "derive_more 0.99.19", "easy-ext", "enum-map", "hex", @@ -5403,7 +5409,7 @@ dependencies = [ "bytesize", "cfg-if 1.0.0", "chrono", - "derive_more 0.99.18", + "derive_more 0.99.19", "easy-ext", "enum-map", "hex", @@ -5441,7 +5447,7 @@ dependencies = [ "base64 0.21.7", "borsh 1.5.5", "bs58 0.4.0", - "derive_more 0.99.18", + "derive_more 0.99.19", "enum-map", "near-account-id", "near-schema-checker-lib 0.27.0", @@ -5462,7 +5468,7 @@ dependencies = [ "base64 0.21.7", "borsh 1.5.5", "bs58 0.4.0", - "derive_more 0.99.18", + "derive_more 0.99.19", "enum-map", "near-account-id", "near-schema-checker-lib 0.28.0", @@ -5476,7 +5482,7 @@ dependencies = [ [[package]] name = "near-rpc-client" version = "0.2.0" -source = "git+https://github.com/Near-One/bridge-sdk-rs#a23d35bc76e9079decb11c85d436845baa1c1cc2" +source = "git+https://github.com/Near-One/bridge-sdk-rs#cdf2800d33f3fc267234001ce8463d637eed9ef1" dependencies = [ "borsh 1.5.5", "lazy_static", @@ -5868,8 +5874,8 @@ dependencies = [ [[package]] name = "omni-connector" -version = "0.2.0" -source = "git+https://github.com/Near-One/bridge-sdk-rs#a23d35bc76e9079decb11c85d436845baa1c1cc2" +version = "0.2.1" +source = "git+https://github.com/Near-One/bridge-sdk-rs#cdf2800d33f3fc267234001ce8463d637eed9ef1" dependencies = [ "borsh 1.5.5", "bridge-connector-common", @@ -5931,14 +5937,14 @@ dependencies = [ "solana-transaction-status", "tokio", "tokio-stream", - "toml 0.8.19", + "toml 0.8.20", "wormhole-bridge-client", ] [[package]] name = "omni-types" version = "2.0.0" -source = "git+https://github.com/near-one/omni-bridge?rev=b0ca4e1fb6a34086076511d1162747b154fa8a55#b0ca4e1fb6a34086076511d1162747b154fa8a55" +source = "git+https://github.com/near-one/omni-bridge?rev=49b2c98023be430148fc048046632fee0ad7f3d7#49b2c98023be430148fc048046632fee0ad7f3d7" dependencies = [ "alloy-primitives", "alloy-rlp", @@ -5949,7 +5955,9 @@ dependencies = [ "hex", "near-contract-standards", "near-sdk", + "num_enum", "rlp 0.6.1", + "schemars", "serde", "sha3", "strum_macros 0.26.4", @@ -6280,18 +6288,18 @@ dependencies = [ [[package]] name = "pin-project" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e2ec53ad785f4d35dac0adea7f7dc6f1bb277ad84a680c7afefeae05d1f5916" +checksum = "dfe2e71e1471fe07709406bf725f710b02927c9c54b2b5b2ec0e8087d97c327d" dependencies = [ "pin-project-internal", ] [[package]] name = "pin-project-internal" -version = "1.1.8" +version = "1.1.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d56a66c0c55993aa927429d0f8a0abfd74f084e4d9c192cffed01e418d83eefb" +checksum = "f6e859e6e5bd50440ab63c47e3ebabc90f26251f7c73c3d3e837b74a1cc3fa67" dependencies = [ "proc-macro2", "quote", @@ -7019,9 +7027,9 @@ checksum = "719b953e2095829ee67db738b3bfa9fa368c94900df327b3f07fe6e794d2fe1f" [[package]] name = "rustc-hash" -version = "2.1.0" +version = "2.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c7fb8039b3032c191086b10f11f319a6e99e1e82889c5cc6046f515c9db1d497" +checksum = "357703d41365b4b27c590e3ed91eabb1b663f07c4c084095e60cbed4362dff0d" [[package]] name = "rustc-hex" @@ -7270,6 +7278,30 @@ dependencies = [ "windows-sys 0.59.0", ] +[[package]] +name = "schemars" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09c024468a378b7e36765cd36702b7a90cc3cba11654f6685c8f233408e89e92" +dependencies = [ + "dyn-clone", + "schemars_derive", + "serde", + "serde_json", +] + +[[package]] +name = "schemars_derive" +version = "0.8.21" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "b1eee588578aff73f856ab961cd2f79e36bc45d7ded33a7562adba4667aecc0e" +dependencies = [ + "proc-macro2", + "quote", + "serde_derive_internals", + "syn 2.0.98", +] + [[package]] name = "schnellru" version = "0.2.4" @@ -7454,6 +7486,17 @@ dependencies = [ "syn 2.0.98", ] +[[package]] +name = "serde_derive_internals" +version = "0.29.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "18d26a20a969b9e3fdf2fc2d9f21eda6c40e2de84c9408bb5d3b05d499aae711" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.98", +] + [[package]] name = "serde_json" version = "1.0.138" @@ -7702,9 +7745,9 @@ dependencies = [ [[package]] name = "solana-account" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "af199e43e00e46fd74c825a5a815a62c105b69fe24aeea67cce34167cb3c8246" +checksum = "e2197f7b15bc6041fa833974025a6006a111977cd4fd35848b743757c1a409f5" dependencies = [ "bincode", "serde", @@ -7716,9 +7759,9 @@ dependencies = [ [[package]] name = "solana-account-decoder" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62aebffd03315ce52610db64368738a93b76e2e10045eae1e816b75f4789096d" +checksum = "fd87b663fb20629017104e7428894dbd020e362a51a117cc5edf5e46a81f7f40" dependencies = [ "Inflector", "base64 0.22.1", @@ -7742,9 +7785,9 @@ dependencies = [ [[package]] name = "solana-account-decoder-client-types" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "387a8d7161b5643d2e7be8c58ab5ebbb1819f1fc8ed7e225d1379f0b44886d25" +checksum = "508a03567b2b5421f9e0f01518f77eb1d0131d1c48f5f22223fe626d6902b622" dependencies = [ "base64 0.22.1", "bs58 0.5.1", @@ -7758,9 +7801,9 @@ dependencies = [ [[package]] name = "solana-account-info" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0108d43d0dc6cb62f2fb5c5c6dddbbd2944cd41d674e78cfd7ab25505112fa83" +checksum = "1a67b02d022266e0979a3033f58f83c6e4d45f7e7cc85e6beeaf90b32ef5ede8" dependencies = [ "bincode", "serde", @@ -7771,18 +7814,18 @@ dependencies = [ [[package]] name = "solana-atomic-u64" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb870569c01e96a8bada5423e1e2499f65c83fc23e18d15290c921eaa7464562" +checksum = "2453e9e0f5e948d83d1ea5ceef6a0488b39cb57f21e19d73d5dc57f27464ec8d" dependencies = [ "parking_lot", ] [[package]] name = "solana-bincode" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eeb4dc964902dbe248bcfc57d6c5e7e814d300e0a8fee1fb5e9e517dacda0c12" +checksum = "b235339197024a4f5c80b2ab5961f616c3ee2aa4542af082a0cc9c84c82b3c09" dependencies = [ "bincode", "serde", @@ -7791,9 +7834,9 @@ dependencies = [ [[package]] name = "solana-bn254" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a5f3acfa2be716cce5ae92a0e6919e48ea84505a81791f1f4966d2cabd06abdf" +checksum = "6f1b3e79f6ad47ffeb75be02d69828c00926af536083dadc6db8282ef1f0774e" dependencies = [ "ark-bn254", "ark-ec", @@ -7806,9 +7849,9 @@ dependencies = [ [[package]] name = "solana-borsh" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9616b7f3914d8b630d8bc61bed5340c05ec2d932e7c9694615c1c37f312529c6" +checksum = "3950d83165c85ac9cb92be986a76c7a543c5c14c1e98982d6dfad3d98e6b2353" dependencies = [ "borsh 0.10.4", "borsh 1.5.5", @@ -7817,7 +7860,7 @@ dependencies = [ [[package]] name = "solana-bridge-client" version = "0.2.0" -source = "git+https://github.com/Near-One/bridge-sdk-rs#a23d35bc76e9079decb11c85d436845baa1c1cc2" +source = "git+https://github.com/Near-One/bridge-sdk-rs#cdf2800d33f3fc267234001ce8463d637eed9ef1" dependencies = [ "borsh 1.5.5", "derive_builder 0.20.2", @@ -7832,9 +7875,9 @@ dependencies = [ [[package]] name = "solana-client" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "55bd69782e1a5ac38beb8621970318f8a3c242cb6ed48d06b7862465b9c624e2" +checksum = "ffc03746e1f603959963e91da0476d13a93235eb201236e2172e68fc680c03f9" dependencies = [ "async-trait", "bincode", @@ -7864,9 +7907,9 @@ dependencies = [ [[package]] name = "solana-clock" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "27b7f7803b61bc339c57d7b3beed7c93d9757dcd2fdc90bf74660670378ed307" +checksum = "4bfdce9a9f46965ffb6e1e7cc0e52efeb834c89dc67d7399770a9d4447498fdb" dependencies = [ "serde", "serde_derive", @@ -7876,18 +7919,18 @@ dependencies = [ [[package]] name = "solana-compute-budget" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ec695847457a262bd5fc5a834bb00215ad39ebc4111a9db4003bc0df86ca86b" +checksum = "6989b3fa34b7190243346bee5c4c208b7d24da189c6c3cbd329227d5ab0d6b8b" dependencies = [ "solana-sdk", ] [[package]] name = "solana-config-program" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1dd59294e3aab93e718ba128c8022869ae2ac8a76762ab4c9cafad721dd449a4" +checksum = "26640009743713f9a5dfa195e511cc817aa5d793e0068415cab80dc03474bca0" dependencies = [ "bincode", "chrono", @@ -7901,9 +7944,9 @@ dependencies = [ [[package]] name = "solana-connection-cache" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd194666e1ddc8123229510d73572c9221d1a420786903ea3d3f1fb31ac5d50" +checksum = "925c4c2ab4ff3ae185cc5d52eb1478aed91c052df0c307c9bb1c7f5b595b6b26" dependencies = [ "async-trait", "bincode", @@ -7922,9 +7965,9 @@ dependencies = [ [[package]] name = "solana-cpi" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "faece18bae6d818d5121b40f10acd5a0f1f0d1ee2283e79ad00825a43a4dfaaa" +checksum = "dd452db5b927c0abbbd47ccc9f233a480754ecc7d07a9c5826c4d1f09168b6e1" dependencies = [ "solana-account-info", "solana-define-syscall", @@ -7936,9 +7979,9 @@ dependencies = [ [[package]] name = "solana-curve25519" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddd364b9c90c05406baa604743a266a4526fd7ac1e7a048c40971ca28200851b" +checksum = "af29b27893aa7bc5082f30ef653c9319b36ac2b2d0f5c44688a5e80c42fcd892" dependencies = [ "bytemuck", "bytemuck_derive", @@ -7949,24 +7992,24 @@ dependencies = [ [[package]] name = "solana-decode-error" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e97eddcef283b84b0bc040550796de561dd52d5b2599d3791d2d8d20121dc6dc" +checksum = "4a1d529c1056b4d461609224fa1bf2a6584eafddf435c6394697b0f5de8c812c" dependencies = [ "num-traits", ] [[package]] name = "solana-define-syscall" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "366739af4e4606111a1c62ab1c91376d7d42864f79b9b863b5544fc56e140c27" +checksum = "3c012a5bdc1122a74880faf6684b32286a9fae0086ff0a3efb16d7f3681fca90" [[package]] name = "solana-derivation-path" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "549c98194387fac54f13558c701653bca55a14f2fbfa007ecc4fae601832cbc5" +checksum = "0803b6ea9c3b9f3c3f540535d6a9d32e6fa6a2ae368a3a93eb4a61c3a216c65d" dependencies = [ "derivation-path", "qstring", @@ -7975,9 +8018,9 @@ dependencies = [ [[package]] name = "solana-epoch-schedule" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fd5c9e8f4a155d29cb8e6aa2e4856e1200c6d1b41d63c189823a074a55e31aff" +checksum = "dc5bd1733a0099c803b5e63be64ef6be1041b52010481f12a7d81124615e030d" dependencies = [ "serde", "serde_derive", @@ -7987,9 +8030,9 @@ dependencies = [ [[package]] name = "solana-feature-set" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6b782063b475df133508569bc7b4bb490b067a45da35c7aa2eea0f758c159c79" +checksum = "4d7034fc05eae9180a5ae63f87a2e9985f8e0ae3c1269973c523d1028a78ffe3" dependencies = [ "lazy_static", "solana-clock", @@ -8001,9 +8044,9 @@ dependencies = [ [[package]] name = "solana-fee-calculator" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8959bafc64a69bc622b8ac8079f665aefcad14b234629ee742f34deef2d3167f" +checksum = "6337eace41da19d476fe80c86a8a2f5cad76125c2aa672788ec7f2814a62478a" dependencies = [ "log", "serde", @@ -8012,9 +8055,9 @@ dependencies = [ [[package]] name = "solana-hash" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9d7983e14fd607a13fa6ef89ab2ddad91fd3e65fd24b2b37c142ddc94ac8cb27" +checksum = "36647a50db4d401721e55d6bc1d259a8cea7bc333ab41c6358d2f5b344a1ab4e" dependencies = [ "borsh 1.5.5", "bs58 0.5.1", @@ -8030,9 +8073,9 @@ dependencies = [ [[package]] name = "solana-inflation" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c4250c724fafb1b30c39eb5af6f45ce918611d148712e3aa9b55470cc15069d7" +checksum = "4c2ea0e34ad32c6a1a026f284716c9c21cd1c3dc496a595640f76ef4bf364f1d" dependencies = [ "serde", "serde_derive", @@ -8040,9 +8083,9 @@ dependencies = [ [[package]] name = "solana-inline-spl" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c2e58fd15eed588914072f91ceaf19f4c9d59aab287a8bd5a5a97a820bc9c0b" +checksum = "4ad76e0824d7e4fdd313a53080320e653f453f4f76737fe1b92c9c66db246ee7" dependencies = [ "bytemuck", "solana-pubkey", @@ -8050,9 +8093,9 @@ dependencies = [ [[package]] name = "solana-instruction" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "34de1bf4e8abcc182bf90888b84b9656eee5fef7a252a44a20fed7c778abfbda" +checksum = "d7a99a1276782510f3f9d8dac058b9fccadfc62ff4fd5b7c6d462dbf46632181" dependencies = [ "bincode", "borsh 1.5.5", @@ -8068,9 +8111,9 @@ dependencies = [ [[package]] name = "solana-last-restart-slot" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "21db3a4a50b400bb03d32971bb9fefafb421e4210f86081d3c3217d8d98c1a77" +checksum = "55a1090667f03719f886b86f90a333b0741df8692fb7076529ae2ab066e2f4b4" dependencies = [ "serde", "serde_derive", @@ -8080,24 +8123,24 @@ dependencies = [ [[package]] name = "solana-log-collector" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0af672ade9beba20d59eb0b6e3a9a1800b8c772138bcadb96bf6894bc552821" +checksum = "606f71865c0889b7dbdccd2a75586ec028461d648901708f2bb5f5c6bee5693d" dependencies = [ "log", ] [[package]] name = "solana-measure" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6f3f0a8b37208c237452f2612049f338711c8d28242cb989c4d755452d84a6e0" +checksum = "04cd58f210630986a5c3f0344da347bb75fc2a90f2fe287438a81cd2c6ffcc8b" [[package]] name = "solana-metrics" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d2f52947d3edea1d8924dd9f8b9898fb9c828887198871b5ba9af0e0597757bc" +checksum = "58eec7006fe02032aa28f0ff49f3b378d64f16597d725af2887febc0f4ba3e9c" dependencies = [ "crossbeam-channel", "gethostname", @@ -8110,24 +8153,24 @@ dependencies = [ [[package]] name = "solana-msg" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b772497c73933dc8f0123f1fc1c8ccae1e6edee194606e7fd5cb0a2f074f0cc6" +checksum = "59b84934c69aa9799b661f87aa1c47f8d358c3912fe5843571a5d047a222a0e6" dependencies = [ "solana-define-syscall", ] [[package]] name = "solana-native-token" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "880eea211f489f04d9aa8d436ea3dd172b1188dee97bdd7ec64acb05bef29a32" +checksum = "1e628d59c4f2ca1e5765a99bf7a1f5fb87e6c834ad2992d84024141be32f21c8" [[package]] name = "solana-net-utils" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1e278dffb6a0a99f5b152764196c1d3a5f3b7e0d59cb8c158b4e31b70cf89c3" +checksum = "23805df410fef2238a6710205c5b4de92f4f46cabd2555538795404ba09b0b7a" dependencies = [ "bincode", "crossbeam-channel", @@ -8144,9 +8187,9 @@ dependencies = [ [[package]] name = "solana-packet" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bf06ea5042a29391f26bfbeeb30cd4709de4f47642f8a0ec2e15c5faa099cf44" +checksum = "cf27339d38ffc14b456e93f59a998cdd79079bec6776bef364a8aa1ee2ceed69" dependencies = [ "bincode", "bitflags 2.8.0", @@ -8158,9 +8201,9 @@ dependencies = [ [[package]] name = "solana-perf" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1048cc942d584b263124076e42970ef1f0b1104a7cfa703e1badd28fafb2dd21" +checksum = "448f819049c558369f24607de2e8240476cfc7549be51e98a5c4c62c38032780" dependencies = [ "ahash", "bincode", @@ -8185,9 +8228,9 @@ dependencies = [ [[package]] name = "solana-precompile-error" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "307485e198c542e975a916c354764c2ced285b6df520793a2f10beb39d0d7f1c" +checksum = "c439844f1c18ec47ab13b5ed229cb0d9eacd75a7fafb8f150004b9a5ee11445e" dependencies = [ "num-traits", "solana-decode-error", @@ -8195,9 +8238,9 @@ dependencies = [ [[package]] name = "solana-program" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0a2334209564c9fa7673b01a5a5dac16c0a474bea95e218135ef1430c20ecba5" +checksum = "5b23f3bdb67fec4edc60ce12b5583c5425aab96dbb029636d400cd3f36242412" dependencies = [ "base64 0.22.1", "bincode", @@ -8268,9 +8311,9 @@ dependencies = [ [[package]] name = "solana-program-entrypoint" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "39fdb97781dc0f4093f0a5ebe0b5c353da217d8c8a13fb7ded3c62a4774f7d13" +checksum = "bc27bbb6ff7f346b93173cacd14a44873e24a1702a07ebbe4a9295bf53eed3cb" dependencies = [ "solana-account-info", "solana-msg", @@ -8280,9 +8323,9 @@ dependencies = [ [[package]] name = "solana-program-error" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6a18ee0aac9905389f424598fd3656c981ed09268c04e160d08a468b25ecc7b1" +checksum = "f5f48931e21e648410a17a1a42b3ace669e1b6c55516357f40ac6b91d4f81ef1" dependencies = [ "borsh 1.5.5", "num-traits", @@ -8296,9 +8339,9 @@ dependencies = [ [[package]] name = "solana-program-memory" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d4473c6315820301c873c3df0a110a4ded9874579be27362a1a7cc4b8c904d37" +checksum = "783ed2a707f3e875480ab0beda89951e8807cb0f76e30c19f82dd305b9169ab3" dependencies = [ "num-traits", "solana-define-syscall", @@ -8306,24 +8349,24 @@ dependencies = [ [[package]] name = "solana-program-option" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c68158410c335eeb28e95520ab3628c6d887ea6acb07f20dfce55780e127cf87" +checksum = "af0be45a0148239936e931a0ae95052a66e0b8f257205c9304af39bf2211a8de" [[package]] name = "solana-program-pack" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "31d03d7ad1c427cf50af1c51f82abe330c5dec09a0a4bace05fb303788fe58d8" +checksum = "02d992004feb5e4b8bec891470f38b029fa8a304ce762ca835ffcc67cc6bf385" dependencies = [ "solana-program-error", ] [[package]] name = "solana-program-runtime" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "18c14d71bc78f0b09c3dd3f4cb06e1dab74354b2a96c79e86441e04cfeabebd7" +checksum = "09ed4dedcffb93dcf823dd0db043bb142ecc839d354c15347e75a370585b7c71" dependencies = [ "base64 0.22.1", "bincode", @@ -8351,9 +8394,9 @@ dependencies = [ [[package]] name = "solana-pubkey" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d87a0e1282ea13d3fab42d1c5df8f00283f8f739b2e5a9a5b530f76c4292e2b5" +checksum = "2d4cb0f3b71f466fe8e11bef05dc562060b5c8f526e969ecd150ce5bedc6e3eb" dependencies = [ "borsh 0.10.4", "borsh 1.5.5", @@ -8378,9 +8421,9 @@ dependencies = [ [[package]] name = "solana-pubsub-client" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "350983b022bab3228143099f90cc422a2a18423c3321527be9e8365a47dae8e3" +checksum = "52a1c92ef08fa6754295c6e0b358e3255937dfb72c9c5a96bc04e9ec07f795dc" dependencies = [ "crossbeam-channel", "futures-util", @@ -8403,9 +8446,9 @@ dependencies = [ [[package]] name = "solana-quic-client" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e92ae085cdccd05290c8ed630a9a3fe8f69c5cb7d94fb274c2ffd627c95e128" +checksum = "0f4780e9e7c5e14566fee78ba7f8844c4d8ca2175572d92dcf8444fc845d144b" dependencies = [ "async-lock", "async-trait", @@ -8429,9 +8472,9 @@ dependencies = [ [[package]] name = "solana-rayon-threadlimit" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "028863b869a84a064967c5b9d174f5424af66cdf6be6cfc38f31f68e7e94b655" +checksum = "3ef222b9c11ee0f451505c073774e279f484921b1af53201dfc7e49bd4106259" dependencies = [ "lazy_static", "num_cpus", @@ -8439,9 +8482,9 @@ dependencies = [ [[package]] name = "solana-rent" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d0ae7a8fb4d869c6134d9ebdde2bb68e4cfd6034fe947932ade7721e236b66bb" +checksum = "4cb62c792559733d5f5d2ee42383e8d3b336e5168472ebdaaf157fd6f1949973" dependencies = [ "serde", "serde_derive", @@ -8451,9 +8494,9 @@ dependencies = [ [[package]] name = "solana-rpc-client" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ea4f8b9b337acd7e3ac0376bc79397bd64a292d9a839a58889ffad0ccf0b3300" +checksum = "e7b40d68b77b47a7786965eca51207dd19cb68bb518da7476e84cc4f87f5c334" dependencies = [ "async-trait", "base64 0.22.1", @@ -8478,9 +8521,9 @@ dependencies = [ [[package]] name = "solana-rpc-client-api" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abe8a2d84814609dcb41e3a6953e8ef1631d3a75e0e2c553dd2292fb3137d26f" +checksum = "4520467a0bb012c7ecf121eaae0182d4c3c0647844c6bbcbeea87997a9cdc97e" dependencies = [ "anyhow", "base64 0.22.1", @@ -8502,9 +8545,9 @@ dependencies = [ [[package]] name = "solana-rpc-client-nonce-utils" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c65fafc816a26d2c4df9551e66f7b088f36549d04b5f17e99ecc7b08e5d15c02" +checksum = "1396307c7e3a72ed8074cb1c31f7f6613d3e71f0f3414911ccbaeea29690158d" dependencies = [ "solana-rpc-client", "solana-sdk", @@ -8513,15 +8556,15 @@ dependencies = [ [[package]] name = "solana-sanitize" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f83981cbb16d532c96a7911e810bf3302fd14fd2651096130c3d3cc4e2b3410e" +checksum = "e956e49e563eb8a9aa09425d676180a0a0509038be4457f230bb6e1dfa036053" [[package]] name = "solana-sdk" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "54e2e78e01f045ae38199cacd980773e711ac8c8a3af6d9d21424184aa4dae1a" +checksum = "a2625a64d46eccd46452df612f4266f24d266eb43ccac2a566ec41ee2ec76262" dependencies = [ "bincode", "bitflags 2.8.0", @@ -8583,9 +8626,9 @@ dependencies = [ [[package]] name = "solana-sdk-macro" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6822c0596b48342e7e6acebce6b0a4aa6bb57c9bef03ebf11405b5f5c7124627" +checksum = "6102303ef82f601e178970388256cd2841618d0789246c087c164760bd976b2f" dependencies = [ "bs58 0.5.1", "proc-macro2", @@ -8595,9 +8638,9 @@ dependencies = [ [[package]] name = "solana-secp256k1-recover" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4e19dfea19083c99baecbf09dc96f0c6abf56e39a610cb1c817935e54e03eaf" +checksum = "a5658cf3a6792df8bc40da3c6cd8ff2d96ad494f3102a6c70ee41774647b0b0e" dependencies = [ "borsh 1.5.5", "libsecp256k1", @@ -8607,9 +8650,9 @@ dependencies = [ [[package]] name = "solana-secp256r1-program" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "12a60175bd0890161815bf5a1b8bec6f1db2fe5c4cd2b6d0a8eea3db6b362930" +checksum = "3f1acf1413825581b79339a3b8427466f0a3b677c85cafe5d0827a3a6f7a6680" dependencies = [ "bytemuck", "openssl", @@ -8627,18 +8670,18 @@ checksum = "468aa43b7edb1f9b7b7b686d5c3aeb6630dc1708e86e31343499dd5c4d775183" [[package]] name = "solana-serde-varint" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "75c3085b541f48338be527a5bb55bab216dd5b3715184473239efa09719e935d" +checksum = "591ff7fba3f641998d613f6934bd89222cf45b0393225dc3c4af09b2b8f94d33" dependencies = [ "serde", ] [[package]] name = "solana-serialize-utils" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "410bd8c5aab8a447fcb925e59e03753333f1a43483cf2445d700ba72d5c133a6" +checksum = "304f0afa82feddfdab31a97148717bf33a0e1cd67261aa1fce55835eff0a5a90" dependencies = [ "solana-instruction", "solana-pubkey", @@ -8647,9 +8690,9 @@ dependencies = [ [[package]] name = "solana-sha256-hasher" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8ef58345b6473a4045299ce77a90a1e6c46e360ed94899c9178fe2d03ea3e5e4" +checksum = "de0e647536438a92f1b02424d94c703534566aa9b1d8aae87f3b181d2dc5787c" dependencies = [ "sha2 0.10.8", "solana-define-syscall", @@ -8658,18 +8701,18 @@ dependencies = [ [[package]] name = "solana-short-vec" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5a27e2842e02e138a8a4156f7d71c318539f8aae65b80bc7dc311e0ee350eefa" +checksum = "8cfbe01016ac7c0ac992fae610f46607b7d8cadba5c526f2b8701123bc28e5ce" dependencies = [ "serde", ] [[package]] name = "solana-signature" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7da51452851bdbee15558f23f23579b3dcdf93aefdbcb911bca41bbf1e875f0a" +checksum = "7a515db8b6bbce5a603e09cda69e459ec8d5964a8711e40689ae596da0d9907a" dependencies = [ "bs58 0.5.1", "ed25519-dalek 1.0.1", @@ -8682,9 +8725,9 @@ dependencies = [ [[package]] name = "solana-slot-hashes" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f7c1e1ea9b27d21b094162462b026f47de83102fafabf9ed2b6221d59e6f28a" +checksum = "327614604f49be7b292e4fefeca60da6b16720ef2edf35458b1923f0a34b0e2e" dependencies = [ "serde", "serde_derive", @@ -8694,9 +8737,9 @@ dependencies = [ [[package]] name = "solana-slot-history" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0882d70244b024ae16463c7c8ad547f8ee4e42c4331a0641f7e817c9da3fac49" +checksum = "bfd9d02ec3cdf702027aaee2faac215aa0d8825f6b399b205236f349bd6c8e79" dependencies = [ "bv", "serde", @@ -8706,9 +8749,9 @@ dependencies = [ [[package]] name = "solana-stable-layout" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7db19a6a2bab0e421b73ebd2930e990c391ac34ccb14b464108b1d071fb44fa7" +checksum = "6ee6374e06b1373c4d526e87f02a5ee165093d341c0c5ab548fc79f6ff18e331" dependencies = [ "solana-instruction", "solana-pubkey", @@ -8716,9 +8759,9 @@ dependencies = [ [[package]] name = "solana-streamer" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bb417ef7fae4238b28ded6679a1ccb6376f9bf7416ab615ed11a136924ff4390" +checksum = "85090db4563b271711d44275a20d1becb4a92e2fdeb41f5234b45df0321e807d" dependencies = [ "async-channel", "bytes", @@ -8754,18 +8797,18 @@ dependencies = [ [[package]] name = "solana-sysvar-id" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "803ec4576594f2c633f670be4cfe2e8febc6e8fb387a0f3f2555972b7309bdb6" +checksum = "d11cdbc013ed4f65a636762b9a62cb878dd530062804e6a6be0faa76f5902914" dependencies = [ "solana-pubkey", ] [[package]] name = "solana-thin-client" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "86df1ee1cb5378f10efec879e266761f060b4140f1e57c0a384e141cfa3048ad" +checksum = "791e9df56e5a0bee348868b292f6b187c2392bd8f4227b53afdc5da41bfeb4de" dependencies = [ "bincode", "log", @@ -8778,9 +8821,9 @@ dependencies = [ [[package]] name = "solana-timings" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2a9d1bb674024ec73911c7f86020b270d982ee39888598549938800d11bb510d" +checksum = "629d606363f36eed6c79a1a96083050380733e5785ba05e52321ff593e806efe" dependencies = [ "eager", "enum-iterator", @@ -8789,9 +8832,9 @@ dependencies = [ [[package]] name = "solana-tpu-client" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "331c9627d2bf56260c2efe4d8e4db012c7e0610fc5381299f2712342442d3e46" +checksum = "b4b059f1d7251f59aa827e0142ff3a7120e782bc10197f26ec931bcfdecb3b06" dependencies = [ "async-trait", "bincode", @@ -8812,9 +8855,9 @@ dependencies = [ [[package]] name = "solana-transaction-error" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1a7f870884ac7127bfdc9b68c16f4d5236e7300ea06f22028638e01b3fd5a7b9" +checksum = "589ed4a290547a8ad581f4ede34cb9c164953203aa23b415c761cfb8b06cac89" dependencies = [ "serde", "serde_derive", @@ -8824,9 +8867,9 @@ dependencies = [ [[package]] name = "solana-transaction-metrics-tracker" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f32859feecdf70241dcf0b95a61cc94458d4bd7f9e61fcf259a986776eaa32d5" +checksum = "73ac92b4805fa6e26b8e6c299152028a62d187b82a38448aba77e32713b0504f" dependencies = [ "base64 0.22.1", "bincode", @@ -8840,9 +8883,9 @@ dependencies = [ [[package]] name = "solana-transaction-status" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8fdb4f5d42a130ee25287f08f94a299584143d026b7fed3b90ba7a47e954e232" +checksum = "aba18ead34f69642fc0bda6440a79b905feb4f7c22ace8e922e79d44eaa401fa" dependencies = [ "Inflector", "base64 0.22.1", @@ -8868,9 +8911,9 @@ dependencies = [ [[package]] name = "solana-transaction-status-client-types" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7b710871be4ea981115a51fcbcd5666d7ec11139fdbe7831783d97da4afe4f74" +checksum = "d699c9fb614eb6c5e85ad5992c7ce13cfa8fcc107e3d44c3767386c1c3d96b96" dependencies = [ "base64 0.22.1", "bincode", @@ -8886,9 +8929,9 @@ dependencies = [ [[package]] name = "solana-type-overrides" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9dde9f11d4ae3d701ef2cfc5eb40dbdb9d42977de3d74a11949406fb9e75d6a1" +checksum = "21ac99386eaec9b90c55a22dee445d88b04398e31023bd1749dd58dff150385e" dependencies = [ "lazy_static", "rand 0.8.5", @@ -8896,9 +8939,9 @@ dependencies = [ [[package]] name = "solana-udp-client" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6ad8075ebcb118e9c626445e01dc8f56b2d247c0c85feb40b23cae475a245c96" +checksum = "8f27b8036385c11703a2caaea746575d938d11c97ef4fa8c1260434ac04b1d2d" dependencies = [ "async-trait", "solana-connection-cache", @@ -8911,9 +8954,9 @@ dependencies = [ [[package]] name = "solana-version" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "295094544c3487280e32dfd323887b8e2df6810cd6681c10f2397a97abfa58e7" +checksum = "9659399d0f2cdaa928632f4dbb342c327f4b1cd0d8034c2d4e58272fa2f5dfad" dependencies = [ "semver 1.0.25", "serde", @@ -8925,9 +8968,9 @@ dependencies = [ [[package]] name = "solana-vote" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e36de277406038484902b3ec5909d3a7e967f321800c9b7e2fe21e373074978e" +checksum = "3d7917e3041555c37ba15028415ec424ff7833acc4f62941ce077ad5c6661198" dependencies = [ "itertools 0.12.1", "log", @@ -8939,9 +8982,9 @@ dependencies = [ [[package]] name = "solana-vote-program" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1e5f5be40dbb7a8592e1968995907bf03d47007ba29d9bdea4e2c07562479abc" +checksum = "3e0a99621fd1c0e49c429de07c0837bf0b00f73ac91d7ed2c3a8fd4cdf884fd8" dependencies = [ "bincode", "log", @@ -8959,9 +9002,9 @@ dependencies = [ [[package]] name = "solana-zk-sdk" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b2aab701561fac2d5124e1e2eb5ab3962723e5b4a7a2e57bdf528374c8ee7831" +checksum = "d07c66d2589fb44e2050be900519070a15dbe8e7793977f586952fe9d1248ae6" dependencies = [ "aes-gcm-siv", "base64 0.22.1", @@ -8991,9 +9034,9 @@ dependencies = [ [[package]] name = "solana-zk-token-sdk" -version = "2.1.12" +version = "2.1.13" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c518ceed28518ac563f57bde2d2126c2adfe7c3339439496a3acbf8ca9024f3b" +checksum = "69b8b882464177ef5621d2b91124d3a0d8f7d6b107eca8a58f76e6c84c642104" dependencies = [ "aes-gcm-siv", "base64 0.22.1", @@ -10094,9 +10137,9 @@ dependencies = [ [[package]] name = "toml" -version = "0.8.19" +version = "0.8.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a1ed1f98e3fdc28d6d910e6737ae6ab1a93bf1985935a1193e68f93eeb68d24e" +checksum = "cd87a5cdd6ffab733b2f74bc4fd7ee5fff6634124999ac278c35fc78c6120148" dependencies = [ "serde", "serde_spanned", @@ -10408,9 +10451,9 @@ dependencies = [ [[package]] name = "uuid" -version = "1.12.1" +version = "1.13.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b3758f5e68192bb96cc8f9b7e2c2cfdabb435499a28499a42f8f984092adad4b" +checksum = "ced87ca4be083373936a67f8de945faa23b6b42384bd5b64434850802c6dccd0" [[package]] name = "valuable" @@ -10444,9 +10487,9 @@ checksum = "5c3082ca00d5a5ef149bb8b555a72ae84c9c59f7250f013ac822ac2e49b19c64" [[package]] name = "wait-timeout" -version = "0.2.0" +version = "0.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9f200f5b12eb75f8c1ed65abd4b2db8a6e1b138a20de009dacee265a2498f3f6" +checksum = "09ac3b126d3914f9849036f826e054cbabdc8519970b8998ddaf3b5bd3c65f11" dependencies = [ "libc", ] @@ -10861,9 +10904,9 @@ checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" [[package]] name = "winnow" -version = "0.7.0" +version = "0.7.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7e49d2d35d3fad69b39b94139037ecfb4f359f08958b9c11e7315ce770462419" +checksum = "86e376c75f4f43f44db463cf729e0d3acbf954d13e22c51e26e4c264b4ab545f" dependencies = [ "memchr", ] @@ -10890,7 +10933,7 @@ dependencies = [ [[package]] name = "wormhole-bridge-client" version = "0.2.0" -source = "git+https://github.com/Near-One/bridge-sdk-rs#a23d35bc76e9079decb11c85d436845baa1c1cc2" +source = "git+https://github.com/Near-One/bridge-sdk-rs#cdf2800d33f3fc267234001ce8463d637eed9ef1" dependencies = [ "bridge-connector-common", "derive_builder 0.20.2", diff --git a/omni-relayer/Cargo.toml b/omni-relayer/Cargo.toml index a55be415..d0916508 100644 --- a/omni-relayer/Cargo.toml +++ b/omni-relayer/Cargo.toml @@ -3,6 +3,7 @@ name = "omni-relayer" version = "0.1.0" edition = "2021" resolver = "2" +repository = "https://github.com/Near-One/omni-bridge" [dependencies] log = "0.4" @@ -28,7 +29,7 @@ solana-transaction-status = "2.1.9" solana-rpc-client-api = "2.1.9" ethereum-types = "0.14.1" -omni-types = { git = "https://github.com/near-one/omni-bridge", package = "omni-types", rev = "b0ca4e1fb6a34086076511d1162747b154fa8a55" } +omni-types = { git = "https://github.com/near-one/omni-bridge", package = "omni-types", rev = "49b2c98023be430148fc048046632fee0ad7f3d7" } near-lake-framework = "0.7.9" near-jsonrpc-client = "0.15.1" @@ -55,3 +56,8 @@ omni-connector = { git = "https://github.com/Near-One/bridge-sdk-rs", package = [features] disable_fee_check = [] + +# The profile that 'dist' will build with +[profile.dist] +inherits = "release" +lto = "thin" diff --git a/omni-relayer/src/startup/evm.rs b/omni-relayer/src/startup/evm.rs index 33a61951..4e8adcb3 100644 --- a/omni-relayer/src/startup/evm.rs +++ b/omni-relayer/src/startup/evm.rs @@ -178,6 +178,7 @@ async fn process_log( }; if log.log_decode::().is_ok() { + info!("Received InitTransfer on {:?} ({})", chain_kind, tx_hash); utils::redis::add_event( redis_connection, utils::redis::EVM_INIT_TRANSFER_EVENTS, @@ -194,6 +195,8 @@ async fn process_log( ) .await; } else if log.log_decode::().is_ok() { + info!("Received FinTransfer on {:?} ({})", chain_kind, tx_hash); + utils::redis::add_event( redis_connection, utils::redis::FINALIZED_TRANSFERS, @@ -209,6 +212,8 @@ async fn process_log( ) .await; } else if log.log_decode::().is_ok() { + info!("Received DeployToken on {:?} ({})", chain_kind, tx_hash); + utils::redis::add_event( redis_connection, utils::redis::DEPLOY_TOKEN_EVENTS, @@ -223,6 +228,8 @@ async fn process_log( }, ) .await; + } else { + warn!("Received unknown log on {:?}: {:?}", chain_kind, log); } utils::redis::update_last_processed( diff --git a/omni-relayer/src/utils/near.rs b/omni-relayer/src/utils/near.rs index ae26462a..909eb5a2 100644 --- a/omni-relayer/src/utils/near.rs +++ b/omni-relayer/src/utils/near.rs @@ -1,4 +1,4 @@ -use anyhow::{Context, Result}; +use anyhow::Result; use log::{info, warn}; use near_jsonrpc_client::{ @@ -31,6 +31,7 @@ pub async fn get_final_block(jsonrpc_client: &JsonRpcClient) -> Result { near_primitives::types::Finality::Final, ), }; + jsonrpc_client .call(block_response) .await @@ -43,21 +44,14 @@ struct EthLightClientResponse { last_block_number: u64, } -pub async fn get_eth_light_client_last_block_number( - config: &config::Config, +pub async fn get_evm_light_client_last_block_number( jsonrpc_client: &JsonRpcClient, + light_client: AccountId, ) -> Result { - let Some(ref eth) = config.eth else { - anyhow::bail!("Failed to get ETH light client"); - }; - let request = methods::query::RpcQueryRequest { block_reference: BlockReference::latest(), request: QueryRequest::CallFunction { - account_id: eth - .light_client - .clone() - .context("Failed to get ETH light client")?, + account_id: light_client, method_name: "last_block_number".to_string(), args: Vec::new().into(), }, @@ -147,7 +141,7 @@ pub async fn handle_streamer_message( .collect::>(); for log in nep_locker_event_logs { - info!("Processing OmniBridgeEvent: {:?}", log); + info!("Received OmniBridgeEvent: {:?}", log); match log { OmniBridgeEvent::InitTransferEvent { @@ -197,7 +191,10 @@ pub async fn handle_streamer_message( .await; } } - OmniBridgeEvent::ClaimFeeEvent { .. } | OmniBridgeEvent::LogMetadataEvent { .. } => {} + OmniBridgeEvent::ClaimFeeEvent { .. } + | OmniBridgeEvent::LogMetadataEvent { .. } + | OmniBridgeEvent::DeployTokenEvent { .. } + | OmniBridgeEvent::BindTokenEvent { .. } => {} } } } diff --git a/omni-relayer/src/utils/solana.rs b/omni-relayer/src/utils/solana.rs index 92031b32..6e4846dd 100644 --- a/omni-relayer/src/utils/solana.rs +++ b/omni-relayer/src/utils/solana.rs @@ -75,7 +75,7 @@ async fn decode_instruction( .starts_with(discriminator) .then_some((discriminator, len)) }) { - info!("Received InitTransfer on Solana"); + info!("Received InitTransfer on Solana ({})", signature); let mut payload_data = decoded_data .get(offset..) @@ -162,7 +162,7 @@ async fn decode_instruction( .into_iter() .find(|discriminator| decoded_data.starts_with(discriminator)) { - info!("Received FinTransfer on Solana"); + info!("Received FinTransfer on Solana: {}", signature); let emitter = if discriminator == &solana.finalize_transfer_discriminator { account_keys @@ -211,7 +211,7 @@ async fn decode_instruction( } } } else if decoded_data.starts_with(&solana.deploy_token_discriminator) { - info!("Received DeployToken on Solana"); + info!("Received DeployToken on Solana ({})", signature); if let Some(OptionSerializer::Some(logs)) = transaction.clone().meta.map(|meta| meta.log_messages) diff --git a/omni-relayer/src/workers/evm.rs b/omni-relayer/src/workers/evm.rs index 34826437..3fdaf866 100644 --- a/omni-relayer/src/workers/evm.rs +++ b/omni-relayer/src/workers/evm.rs @@ -191,8 +191,14 @@ async fn handle_init_transfer_event( if vaa.is_none() { if init_transfer_with_timestamp.chain_kind == ChainKind::Eth { + let Some(Some(light_client)) = config.eth.map(|eth| eth.light_client) else { + warn!("Eth chain is not configured or light client account id is missing"); + return; + }; + let Ok(light_client_latest_block_number) = - utils::near::get_eth_light_client_last_block_number(&config, &jsonrpc_client).await + utils::near::get_evm_light_client_last_block_number(&jsonrpc_client, light_client) + .await else { warn!("Failed to get eth light client last block number"); return; diff --git a/omni-relayer/src/workers/near.rs b/omni-relayer/src/workers/near.rs index 68bcdcb6..45b89e2a 100644 --- a/omni-relayer/src/workers/near.rs +++ b/omni-relayer/src/workers/near.rs @@ -21,6 +21,7 @@ use omni_types::{ use crate::{config, utils}; +const SIGNATURE_VERIFICATION_FAILED: u32 = 6001; const NONCE_ALREADY_USED: u32 = 6003; #[derive(Debug, serde::Serialize, serde::Deserialize)] @@ -95,7 +96,7 @@ pub async fn sign_transfer( }; info!( - "Received InitTransferEvent/FinTransferEvent/UpdateFeeEvent", + "Trying to process InitTransferEvent/FinTransferEvent/UpdateFeeEvent", ); #[cfg(not(feature = "disable_fee_check"))] @@ -144,7 +145,8 @@ pub async fn sign_transfer( Some( vec![ "Signature request has already been submitted. Please try again later.".to_string(), - "Signature request has timed out.".to_string() + "Signature request has timed out.".to_string(), + "Attached deposit is lower than required".to_string() ] ) ).await { @@ -311,6 +313,13 @@ pub async fn finalize_transfer( 0, InstructionError::Custom(NONCE_ALREADY_USED), )) + || result.err + == Some(TransactionError::InstructionError( + 0, + InstructionError::Custom( + SIGNATURE_VERIFICATION_FAILED, + ), + )) { utils::redis::remove_event( &mut redis_connection, @@ -442,8 +451,14 @@ async fn handle_evm_fin_transfer( if vaa.is_none() { if chain_kind == ChainKind::Eth { + let Some(Some(light_client)) = config.eth.clone().map(|eth| eth.light_client) else { + warn!("Eth chain is not configured or light client account id is missing"); + return; + }; + let Ok(light_client_latest_block_number) = - utils::near::get_eth_light_client_last_block_number(&config, &jsonrpc_client).await + utils::near::get_evm_light_client_last_block_number(&jsonrpc_client, light_client) + .await else { warn!("Failed to get eth light client last block number"); return; @@ -666,8 +681,14 @@ async fn handle_evm_deploy_token_event( if vaa.is_none() { if chain_kind == ChainKind::Eth { + let Some(Some(light_client)) = config.eth.clone().map(|eth| eth.light_client) else { + warn!("Eth chain is not configured or light client account id is missing"); + return; + }; + let Ok(light_client_latest_block_number) = - utils::near::get_eth_light_client_last_block_number(&config, &jsonrpc_client).await + utils::near::get_evm_light_client_last_block_number(&jsonrpc_client, light_client) + .await else { warn!("Failed to get eth light client last block number"); return;