Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
9890aa1
adding reportFail on forwarder with go tests
yashnevatia Nov 12, 2025
bafbad6
mod
yashnevatia Nov 12, 2025
395efb1
go.md
yashnevatia Nov 12, 2025
72f178a
fix build
yashnevatia Nov 12, 2025
6a68b90
Adding go testS
yashnevatia Nov 12, 2025
3deae09
Adding go testS
yashnevatia Nov 12, 2025
66f02e4
Adding go testS
yashnevatia Nov 12, 2025
d51624d
Adding go testS
yashnevatia Nov 12, 2025
7ab9a6c
Adding go testS
yashnevatia Nov 12, 2025
2081ce7
Adding go testS
yashnevatia Nov 12, 2025
492641f
Adding go testS
yashnevatia Nov 12, 2025
b360e43
finishing up go tests for forwarder
yashnevatia Nov 13, 2025
5ff8795
merging
yashnevatia Nov 13, 2025
6de0672
polish
yashnevatia Nov 13, 2025
293c711
de dup code and add tests
yashnevatia Nov 14, 2025
fe5ba9c
polish
yashnevatia Nov 14, 2025
5a097e8
reverting one function
yashnevatia Nov 14, 2025
c93cad4
changing status to enum, adding transmitter verification on failure
yashnevatia Nov 18, 2025
c790701
de dup some code for sig verification
yashnevatia Nov 18, 2025
3998398
dedup contract code
yashnevatia Nov 18, 2025
14347f8
trying to fix ts test
yashnevatia Nov 18, 2025
6e195e4
upload report fix
yashnevatia Nov 18, 2025
27af24f
lint
yashnevatia Nov 18, 2025
87f292f
format
yashnevatia Nov 19, 2025
2787890
Merge branch 'develop' into forwarder-report-failure
yashnevatia Nov 19, 2025
1e01ba3
cargo lint
yashnevatia Nov 19, 2025
3c3b132
Merge branch 'forwarder-report-failure' of ssh://github.com/smartcont…
yashnevatia Nov 19, 2025
a9b648d
trying to get ts tests to pass
yashnevatia Nov 19, 2025
e8c07e6
fixing ts test
yashnevatia Nov 19, 2025
e98daa3
transmitter to buffer
yashnevatia Nov 19, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
9 changes: 5 additions & 4 deletions .github/workflows/golangci-lint.yml
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@
checkout-repo: false
golangci-lint-version: v${{ steps.get-version.outputs.version }}
go-directory: integration-tests
golangci-lint-config: ${{ github.workspace }}/.golangci.yml
golangci-lint-config: ${{ github.workspace }}/.golangci.yml
golang_lint_relay:
name: Golang Lint Relay tests
runs-on: ubuntu-latest
Expand All @@ -48,16 +48,17 @@
version=$(grep '^golangci-lint ' .tool-versions | awk '{print $2}')
echo "version=${version}" | tee -a "$GITHUB_OUTPUT"

- name: Run golangci-lint (integration-tests)
- name: Run golangci-lint (relay)
if: ${{ always() && !contains(join(github.event.pull_request.labels.*.name, ' '), 'allow-lint-issues') }}
uses: smartcontractkit/.github/actions/ci-lint-go@ci-lint-go/3.0.0

Check warning

Code scanning / CodeQL

Unpinned tag for a non-immutable Action in workflow Medium

Unpinned 3rd party Action 'golangci_lint' step
Uses Step
uses 'smartcontractkit/.github/actions/ci-lint-go' with ref 'ci-lint-go/3.0.0', not a pinned commit hash
with:
checkout-repo: false
golangci-lint-version: v${{ steps.get-version.outputs.version }}
go-directory: pkg
go-directory: pkg
golangci-lint-args: --output.checkstyle.path=${{ github.workspace }}/pkg/golangci-lint-report.xml --output.text.path=stdout
- name: Upload report
if: always()
uses: actions/upload-artifact@v4
with:
name: golangci-lint-relay-report
path: pkg/golangci-lint-report.xml
path: ${{ github.workspace }}/pkg/golangci-lint-report.xml
190 changes: 117 additions & 73 deletions .github/workflows/rust.yml
Original file line number Diff line number Diff line change
Expand Up @@ -39,84 +39,84 @@ jobs:
runs-on: ubuntu-latest-8cores-32GB
needs: [get_projectserum_version, build_wrapped_anchor_image]
steps:
- uses: actions/checkout@v4
- name: Cache cargo target dir
uses: actions/cache@v4
with:
path: contracts/target
key: ${{ runner.os }}-v2-cargo-build-target-${{ hashFiles('contracts/**/Cargo.lock') }}
- name: Cache hello-world target dir
uses: actions/cache@v4
with:
path: contracts/examples/hello-world/target
key: ${{ runner.os }}-v2-cargo-build-target-hello-world-${{ hashFiles('contracts/**/Cargo.lock') }}
- name: cache docker build image
id: cache-image
uses: actions/cache@v4
with:
path: contracts/docker-build.tar
key: ${{ runner.os }}-docker-pnpm-build-${{ needs.get_projectserum_version.outputs.projectserum_version }}-${{ hashFiles('contracts/**/Cargo.lock') }}
- name: load cached image
run: |
docker load --input docker-build.tar
- name: run tests
run: |
docker run -v "$(pwd)/../":/repo chainlink-solana:build bash -c "\
set -eoux pipefail &&\
RUSTUP_HOME=\"/root/.rustup\" &&\
FORCE_COLOR=1 &&\
cd /repo/contracts &&\
solana-keygen new -o id.json --no-bip39-passphrase &&\
cd /repo/ts &&\
pnpm install --frozen-lockfile &&\
pnpm build &&\
cd /repo/contracts &&\
pnpm install --frozen-lockfile &&\
anchor test &&\
chmod -R 755 ./target &&\
cd /repo/contracts/examples/hello-world &&\
pnpm install --frozen-lockfile &&\
anchor test &&\
chmod -R 755 ./target"
- uses: actions/checkout@v4
- name: Cache cargo target dir
uses: actions/cache@v4
with:
path: contracts/target
key: ${{ runner.os }}-v2-cargo-build-target-${{ hashFiles('contracts/**/Cargo.lock') }}
- name: Cache hello-world target dir
uses: actions/cache@v4
with:
path: contracts/examples/hello-world/target
key: ${{ runner.os }}-v2-cargo-build-target-hello-world-${{ hashFiles('contracts/**/Cargo.lock') }}
- name: cache docker build image
id: cache-image
uses: actions/cache@v4
with:
path: contracts/docker-build.tar
key: ${{ runner.os }}-docker-pnpm-build-${{ needs.get_projectserum_version.outputs.projectserum_version }}-${{ hashFiles('contracts/**/Cargo.lock') }}
- name: load cached image
run: |
docker load --input docker-build.tar
- name: run tests
run: |
docker run -v "$(pwd)/../":/repo chainlink-solana:build bash -c "\
set -eoux pipefail &&\
RUSTUP_HOME=\"/root/.rustup\" &&\
FORCE_COLOR=1 &&\
cd /repo/contracts &&\
solana-keygen new -o id.json --no-bip39-passphrase &&\
cd /repo/ts &&\
pnpm install --frozen-lockfile &&\
pnpm build &&\
cd /repo/contracts &&\
pnpm install --frozen-lockfile &&\
anchor test &&\
chmod -R 755 ./target &&\
cd /repo/contracts/examples/hello-world &&\
pnpm install --frozen-lockfile &&\
anchor test &&\
chmod -R 755 ./target"

rust_lint:
name: Rust Lint
runs-on: ubuntu-latest
needs: [get_projectserum_version, build_wrapped_anchor_image]
steps:
- uses: actions/checkout@v4
- name: Cache cargo target dir
uses: actions/cache@v4
with:
path: contracts/target
key: ${{ runner.os }}-v2-cargo-build-target-${{ hashFiles('contracts/**/Cargo.lock') }}
- name: cache docker build image
id: cache-image
uses: actions/cache@v4
with:
path: contracts/docker-build.tar
key: ${{ runner.os }}-docker-pnpm-build-${{ needs.get_projectserum_version.outputs.projectserum_version }}-${{ hashFiles('contracts/**/Cargo.lock') }}
- name: load cached image
run: |
docker load --input docker-build.tar
- name: format contracts + artifacts
run: |
npm install -g pnpm
pnpm install --frozen-lockfile
cd ../ # back to root
make format-contracts
echo "run 'make format-contracts' if this fails"
git diff --stat --exit-code

- name: cargo check
run: |
docker run -v "$(pwd)/../":/repo chainlink-solana:build bash -c "\
set -eoux pipefail &&\
RUSTUP_HOME=\"/root/.rustup\" &&\
FORCE_COLOR=1 &&\
cd /repo/contracts &&\
cargo check &&\
cargo clippy -- -D warnings"
- uses: actions/checkout@v4
- name: Cache cargo target dir
uses: actions/cache@v4
with:
path: contracts/target
key: ${{ runner.os }}-v2-cargo-build-target-${{ hashFiles('contracts/**/Cargo.lock') }}
- name: cache docker build image
id: cache-image
uses: actions/cache@v4
with:
path: contracts/docker-build.tar
key: ${{ runner.os }}-docker-pnpm-build-${{ needs.get_projectserum_version.outputs.projectserum_version }}-${{ hashFiles('contracts/**/Cargo.lock') }}
- name: load cached image
run: |
docker load --input docker-build.tar
- name: format contracts + artifacts
run: |
npm install -g pnpm
pnpm install --frozen-lockfile
cd ../ # back to root
make format-contracts
echo "run 'make format-contracts' if this fails"
git diff --stat --exit-code

- name: cargo check
run: |
docker run -v "$(pwd)/../":/repo chainlink-solana:build bash -c "\
set -eoux pipefail &&\
RUSTUP_HOME=\"/root/.rustup\" &&\
FORCE_COLOR=1 &&\
cd /repo/contracts &&\
cargo check &&\
cargo clippy -- -D warnings"

relay_run_interface_tests:
name: Relay Run Interface Tests
Expand Down Expand Up @@ -160,7 +160,7 @@ jobs:
- name: Setup Postgres
uses: smartcontractkit/.github/actions/setup-postgres@13b05e8b4e11a8c4402f8034daaf9a4332032dc7 # v1.0.0
with:
tmpfs: 'true'
tmpfs: "true"

- name: Get core ref
id: get-core-ref
Expand All @@ -187,3 +187,47 @@ jobs:

cd ..
make test_relay_integration

go:
name: Go tests for contracts
permissions:
contents: read
actions: read
runs-on: ubuntu-latest-8cores-32GB
needs: [get_projectserum_version, build_wrapped_anchor_image]
steps:
- uses: actions/checkout@v4
- name: Cache cargo target dir
uses: actions/cache@v4
with:
path: contracts/target
key: ${{ runner.os }}-v2-cargo-build-target-${{ hashFiles('contracts/**/Cargo.lock') }}
- name: cache docker build image
id: cache-image
uses: actions/cache@v4
with:
path: contracts/docker-build.tar
key: ${{ runner.os }}-docker-pnpm-build-${{ needs.get_projectserum_version.outputs.projectserum_version }}-${{ hashFiles('contracts/**/Cargo.lock') }}
- name: load cached image
run: |
docker load --input docker-build.tar
- name: Setup go
uses: actions/setup-go@v5
with:
go-version-file: "./go.mod"
check-latest: true
cache-dependency-path: "./go.sum"
- name: Install Solana CLI
run: ../scripts/install-solana-ci.sh
- name: Build contracts + Test
run: |
set -eoux pipefail
# compile artifacts
docker run -v "$(pwd)/../":/repo chainlink-solana:build bash -c "\
set -eoux pipefail &&\
RUSTUP_HOME=\"/root/.rustup\" && \
FORCE_COLOR=1 && \
cd /repo/contracts && \
anchor build"
cd gotests
go test -v ./...
41 changes: 32 additions & 9 deletions contracts/generated/keystone_forwarder/InitOraclesConfig.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading
Loading