Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
11cc696
feat: migrate raindex to soldeer for dependency management
thedavidmeister May 22, 2026
bf51b1f
chore: align prep-base.sh + fs_permissions with soldeer
thedavidmeister May 22, 2026
b7639ef
fix(soldeer): drop rain-math-fixedpoint + OZ 4.8.3 transitive
thedavidmeister May 22, 2026
06cc55a
fix(soldeer): strip submodule preludes from pointers.sh
thedavidmeister May 22, 2026
45cabb5
fix: bump rainix pin + drop obsolete prelude calls
thedavidmeister May 23, 2026
6ffa7e7
wip: drop alloy-ethers-typecast (foundation + bump rain.interpreter)
thedavidmeister May 23, 2026
86ec6e0
ci: stop recursing submodules during checkout
thedavidmeister May 23, 2026
1a8feea
feat: drop alloy-ethers-typecast — use alloy Provider directly
thedavidmeister May 27, 2026
7aa455b
Cut Rust crates over to crates.io; drop the foundry-evm git dep
thedavidmeister May 28, 2026
87cba95
Bump rainlang-eval 0.1.2 and rain-math-float 0.1.6
thedavidmeister May 28, 2026
b5c7655
test_fixtures: deploy canonical TOFUTokenDecimals bytecode
thedavidmeister May 28, 2026
6d64b57
Fix serialize snapshot padding + replay error variant
thedavidmeister May 29, 2026
045cc29
Remove git submodules; all Solidity deps are Soldeer-managed
thedavidmeister May 29, 2026
0e7a58b
Gitignore local .pre-commit-config.yaml
thedavidmeister May 29, 2026
3f1078f
Update no-rpc-response assertion for alloy transport error
thedavidmeister May 29, 2026
0f0bf1c
Merge branch 'main' of https://github.com/rainlanguage/raindex into 2…
thedavidmeister May 29, 2026
528e4e1
Update quote-debugger fork-error assertion for rain-forker
thedavidmeister May 29, 2026
e25a17f
Fix CI: getrandom wasm, error-enum boxing, codehash regen, fmt
thedavidmeister May 29, 2026
5639577
Drop submodules/fetch-depth from CI checkouts
thedavidmeister May 29, 2026
64d1f60
Define sol/rs CI task wrappers; fix reuse compliance
thedavidmeister May 29, 2026
452f7eb
Use rainix reusable workflows for sol + artifact checks
thedavidmeister May 29, 2026
016562a
Split sol + copy-artifacts into rainlang-style reusable callers
thedavidmeister May 29, 2026
4950580
Fix JS/subgraph CI broken by submodule removal
thedavidmeister May 29, 2026
028cf36
Fix sol legal + address-config for the new deterministic address
thedavidmeister May 29, 2026
ba7bcf6
Drop codegen preludes; deploy + tests use committed artifacts
thedavidmeister May 29, 2026
11d8b46
Deploy via rainix-manual-sol-artifacts reusable
thedavidmeister May 29, 2026
8af265b
Fix JS/subgraph CI and set new RaindexV6 deploy start blocks
thedavidmeister May 29, 2026
74326cb
Force-compile concrete DecimalFloat ABI for the subgraph
thedavidmeister May 29, 2026
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: 0 additions & 9 deletions .github/workflows/copilot-setup-steps.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
name: Copilot Agent Setup

on:
workflow_dispatch:
push:
Expand All @@ -16,36 +15,28 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0

- uses: nixbuild/nix-quick-install-action@v30
with:
nix_conf: |
keep-env-derivations = true
keep-outputs = true

- name: Restore and save Nix store
uses: nix-community/cache-nix-action@v6
with:
primary-key: nix-${{ runner.os }}-${{ hashFiles('**/*.nix', '**/flake.lock') }}
restore-prefixes-first-match: nix-${{ runner.os }}-
gc-max-store-size-linux: 1G

- name: Prepare environment files
run: |
set -euxo pipefail
cp -f .env.example .env
cp -f packages/webapp/.env.example packages/webapp/.env
cp -f .env.example crates/common/.env

- name: Prepare repository dependencies
run: ./prep-all.sh
env:
PUBLIC_WALLETCONNECT_PROJECT_ID: ${{ secrets.WALLETCONNECT_PROJECT_ID || 'test' }}
COMMIT_SHA: ${{ github.sha }}

# forwards status to telegram chat if this ci fails or gets canceled, only runs for default branch
- name: Forward CI Status
if: always()
Expand Down
9 changes: 9 additions & 0 deletions .github/workflows/copy-artifacts.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
name: copy-artifacts
on: [push]
jobs:
copy-artifacts:
# Build from committed sources and assert the committed meta/pointer
# artifacts are still current (no prelude — committing the artifacts is what
# removes the need for one). secrets: inherit carries CACHIX_AUTH_TOKEN.
uses: rainlanguage/rainix/.github/workflows/rainix-copy-artifacts.yaml@main
secrets: inherit
8 changes: 0 additions & 8 deletions .github/workflows/deploy-subgraph.yaml
Original file line number Diff line number Diff line change
@@ -1,7 +1,6 @@
name: Deploy subgraph
on:
workflow_dispatch:

jobs:
deploy:
permissions:
Expand All @@ -13,13 +12,8 @@ jobs:
GOLDSKY_SUBGRAPH_NAME: raindex
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0

- name: Free disk space
uses: jlumbroso/free-disk-space@v1.3.1

- uses: nixbuild/nix-quick-install-action@v30
with:
nix_conf: |
Expand All @@ -31,9 +25,7 @@ jobs:
primary-key: nix-${{ runner.os }}-${{ hashFiles('**/*.nix', '**/flake.lock') }}
restore-prefixes-first-match: nix-${{ runner.os }}-
gc-max-store-size-linux: 1G

- run: nix develop -c subgraph-deploy

# forwards status to telegram chat if this ci fails or gets canceled, only runs for default branch
- name: Forward CI Status
if: always()
Expand Down
11 changes: 0 additions & 11 deletions .github/workflows/git-clean.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,11 +4,9 @@ on:
branches:
- main
pull_request:

concurrency:
group: ${{ github.ref }}-git-clean
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}

jobs:
git-clean:
permissions:
Expand All @@ -17,13 +15,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0

- name: Free disk space
uses: jlumbroso/free-disk-space@v1.3.1

- uses: nixbuild/nix-quick-install-action@v30
with:
nix_conf: |
Expand All @@ -40,17 +33,13 @@ jobs:
# before trying to save a new cache
# 1G = 1073741824
gc-max-store-size-linux: 1G

# Build metas etc. required to do a correct pointer build.
- run: ./pointers.sh

# Format the repo after generating pointers so that the pointer files are
# formatted too.
- run: nix develop -c forge fmt

# Check if the repo is clean after generating pointers and formatting.
- run: git diff --exit-code

# forwards status to telegram chat if this ci fails or gets canceled, only runs for default branch
- name: Forward CI Status
if: always() # This ensures it runs regardless of previous step outcomes
Expand Down
7 changes: 0 additions & 7 deletions .github/workflows/manual-rs-release.yml
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
name: Manual rs release
on: [workflow_dispatch]

jobs:
release:
runs-on: ubuntu-latest
Expand All @@ -9,10 +8,6 @@ jobs:
contents: read
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive

- uses: nixbuild/nix-quick-install-action@v30
with:
nix_conf: |
Expand All @@ -29,9 +24,7 @@ jobs:
# before trying to save a new cache
# 1G = 1073741824
gc-max-store-size-linux: 1G

- run: nix develop --command cargo release --workspace

# forwards status to telegram chat if this ci fails or gets canceled, only runs for default branch
- name: Forward CI Status
if: always()
Expand Down
64 changes: 4 additions & 60 deletions .github/workflows/manual-sol-artifacts.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -13,65 +13,9 @@ on:
- arb-generic-pool-order-taker
- arb-route-processor-order-taker
- arb-generic-pool-flash-borrower

jobs:
deploy:
runs-on: ubuntu-latest
permissions:
id-token: write
contents: read
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0

- uses: nixbuild/nix-quick-install-action@v30
with:
nix_conf: |
keep-env-derivations = true
keep-outputs = true
- name: Restore and save Nix store
uses: nix-community/cache-nix-action@v6
with:
# restore and save a cache using this key
primary-key: nix-${{ runner.os }}-${{ hashFiles('**/*.nix', '**/flake.lock') }}
# if there's no cache hit, restore a cache by this prefix
restore-prefixes-first-match: nix-${{ runner.os }}-
# collect garbage until the Nix store size (in bytes) is at most this number
# before trying to save a new cache
# 1G = 1073741824
gc-max-store-size-linux: 1G

- run: nix develop -c rainix-sol-prelude
- run: nix develop -c rainix-rs-prelude
- run: nix develop -c raindex-prelude

- name: deploy to all supported networks
run: nix develop -c rainix-sol-artifacts
env:
DEPLOYMENT_SUITE: ${{ inputs.suite }}
DEPLOY_BROADCAST: "1"
DEPLOYMENT_KEY: ${{ secrets.PRIVATE_KEY }}
ETH_RPC_URL: ${{ secrets.CI_DEPLOY_BASE_RPC_URL || vars.CI_DEPLOY_BASE_RPC_URL || '' }}

CI_DEPLOY_ARBITRUM_RPC_URL: ${{ secrets.CI_DEPLOY_ARBITRUM_RPC_URL || vars.CI_DEPLOY_ARBITRUM_RPC_URL || '' }}
CI_DEPLOY_BASE_RPC_URL: ${{ secrets.CI_DEPLOY_BASE_RPC_URL || vars.CI_DEPLOY_BASE_RPC_URL || '' }}
CI_DEPLOY_BASE_SEPOLIA_RPC_URL: ${{ secrets.CI_DEPLOY_BASE_SEPOLIA_RPC_URL || vars.CI_DEPLOY_BASE_SEPOLIA_RPC_URL || '' }}
CI_DEPLOY_FLARE_RPC_URL: ${{ secrets.CI_DEPLOY_FLARE_RPC_URL || vars.CI_DEPLOY_FLARE_RPC_URL || '' }}
CI_DEPLOY_POLYGON_RPC_URL: ${{ secrets.CI_DEPLOY_POLYGON_RPC_URL || vars.CI_DEPLOY_POLYGON_RPC_URL || '' }}

CI_DEPLOY_ARBITRUM_ETHERSCAN_API_KEY: ${{ secrets.CI_DEPLOY_ARBITRUM_ETHERSCAN_API_KEY || vars.CI_DEPLOY_ARBITRUM_ETHERSCAN_API_KEY || '' }}
CI_DEPLOY_BASE_ETHERSCAN_API_KEY: ${{ secrets.CI_DEPLOY_BASE_ETHERSCAN_API_KEY || vars.CI_DEPLOY_BASE_ETHERSCAN_API_KEY || '' }}
CI_DEPLOY_BASE_SEPOLIA_ETHERSCAN_API_KEY: ${{ secrets.CI_DEPLOY_BASE_SEPOLIA_ETHERSCAN_API_KEY || vars.CI_DEPLOY_BASE_SEPOLIA_ETHERSCAN_API_KEY || '' }}
CI_DEPLOY_FLARE_ETHERSCAN_API_KEY: ${{ secrets.CI_DEPLOY_FLARE_ETHERSCAN_API_KEY || vars.CI_DEPLOY_FLARE_ETHERSCAN_API_KEY || '' }}
CI_DEPLOY_POLYGON_ETHERSCAN_API_KEY: ${{ secrets.CI_DEPLOY_POLYGON_ETHERSCAN_API_KEY || vars.CI_DEPLOY_POLYGON_ETHERSCAN_API_KEY || '' }}

# forwards status to telegram chat if this ci fails or gets canceled, only runs for default branch
- name: Forward CI Status
if: always()
uses: rainlanguage/github-chore/.github/actions/telegram-status-report@main
with:
status: ${{ job.status }}
telegram-bot-token: ${{ secrets.TELEGRAM_BOT_TOKEN }}
telegram-chat-id: ${{ secrets.TELEGRAM_CHAT_ID }}
uses: rainlanguage/rainix/.github/workflows/rainix-manual-sol-artifacts.yaml@main
with:
suite: ${{ inputs.suite }}
secrets: inherit
6 changes: 6 additions & 0 deletions .github/workflows/rainix-sol.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
name: rainix-sol
on: [push]
jobs:
rainix-sol:
uses: rainlanguage/rainix/.github/workflows/rainix-sol.yaml@main
secrets: inherit
33 changes: 6 additions & 27 deletions .github/workflows/rainix.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,25 @@ on:
branches:
- main
pull_request:

concurrency:
group: ${{ github.ref }}-rainix
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}

jobs:
# Rust / wasm / JS bindings run on raindex's own devshell: they need sqlite3
# (rusqlite) and the forge-build artifacts, which the slim rainix rs reusables
# don't provide. Solidity + artifact checks live in rainix-sol.yaml and
# copy-artifacts.yaml (rainix reusables).
standard-tests:
permissions:
id-token: write
contents: read
strategy:
matrix:
os: [ubuntu-latest, macos-latest]
task: [raindex-rs-test, rainix-rs-artifacts]
task: [raindex-rs-test, "cargo build --release"]
is-not-main:
- ${{ github.ref != 'refs/heads/main' }}
include:
# Solidity doesn't need to be tested on multiple platforms
- os: ubuntu-latest
task: rainix-sol-test
- os: ubuntu-latest
task: rainix-sol-static
# We don't need to do rust static analysis on multiple platforms
- os: ubuntu-latest
task: rainix-rs-static
Expand All @@ -39,9 +36,6 @@ jobs:
# Testing JS/TS bindings doesnt need to run on multiple platforms
- os: ubuntu-latest
task: test-js-bindings
# Legal doesnt need to run on multiple platforms
- os: ubuntu-latest
task: rainix-sol-legal
exclude:
- is-not-main: true
os: macos-latest
Expand All @@ -51,16 +45,11 @@ jobs:
COMMIT_SHA: ${{ github.sha }}
steps:
- uses: actions/checkout@v4
with:
submodules: recursive
fetch-depth: 0

- name: Free disk space
if: matrix.os == 'ubuntu-latest'
uses: jlumbroso/free-disk-space@v1.3.1
with:
large-packages: ${{ matrix.task != 'rainix-wasm-browser-test' }}

- uses: nixbuild/nix-quick-install-action@v30
with:
nix_conf: |
Expand All @@ -76,22 +65,12 @@ jobs:
# collect garbage until the Nix store size is at most this number
# before trying to save a new cache
gc-max-store-size-linux: 10G

- run: ./pointers.sh

- name: Run ${{ matrix.task }}
env:
ETH_RPC_URL: ${{ secrets.CI_DEPLOY_BASE_RPC_URL || vars.CI_DEPLOY_BASE_RPC_URL || '' }}
CI_DEPLOY_ARBITRUM_RPC_URL: ${{ secrets.CI_DEPLOY_ARBITRUM_RPC_URL || vars.CI_DEPLOY_ARBITRUM_RPC_URL || '' }}
CI_DEPLOY_BASE_RPC_URL: ${{ secrets.CI_DEPLOY_BASE_RPC_URL || vars.CI_DEPLOY_BASE_RPC_URL || '' }}
CI_DEPLOY_BASE_SEPOLIA_RPC_URL: ${{ secrets.CI_DEPLOY_BASE_SEPOLIA_RPC_URL || vars.CI_DEPLOY_BASE_SEPOLIA_RPC_URL || '' }}
CI_DEPLOY_FLARE_RPC_URL: ${{ secrets.CI_DEPLOY_FLARE_RPC_URL || vars.CI_DEPLOY_FLARE_RPC_URL || '' }}
CI_DEPLOY_POLYGON_RPC_URL: ${{ secrets.CI_DEPLOY_POLYGON_RPC_URL || vars.CI_DEPLOY_POLYGON_RPC_URL || '' }}
run: nix develop -c ${{ matrix.task }}

# forwards status to telegram chat if this ci fails or gets canceled, only runs for default branch
- name: Forward CI Status
if: always()
if: always()
uses: rainlanguage/github-chore/.github/actions/telegram-status-report@main
with:
status: ${{ job.status }}
Expand Down
16 changes: 2 additions & 14 deletions .github/workflows/test-subgraph.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,28 +4,20 @@ on:
branches:
- main
pull_request:

concurrency:
group: ${{ github.ref }}-subgraph
cancel-in-progress: ${{ github.ref != 'refs/heads/main' }}

jobs:
test:
permissions:
id-token: write
contents: read
runs-on: ubuntu-latest

steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
submodules: recursive

- name: Free disk space
uses: jlumbroso/free-disk-space@v1.3.1

- uses: nixbuild/nix-quick-install-action@v30
with:
nix_conf: |
Expand All @@ -42,16 +34,12 @@ jobs:
# before trying to save a new cache
# 1G = 1073741824
gc-max-store-size-linux: 1G

- run: |
(cd lib/rain.interpreter/lib/rain.interpreter.interface/lib/rain.math.float && nix develop -c rainix-sol-prelude)

- name: Install Soldeer dependencies
run: nix develop -c forge soldeer install
- name: Build subgraph
run: nix develop -c subgraph-build

- name: Matchstick tests
run: nix develop -c subgraph-test

# forwards status to telegram chat if this ci fails or gets canceled, only runs for default branch
- name: Forward CI Status
if: always()
Expand Down
Loading
Loading