Skip to content

Commit ba4414b

Browse files
committed
initial commit
0 parents  commit ba4414b

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

44 files changed

+5142
-0
lines changed

.cspell/custom-dictionary.txt

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
# Custom Dictionary Words
2+
Aptos
3+
Devnet
4+
hashv
5+
idls
6+
keccak
7+
permissionless
8+
permissionlessly
9+
pubkey
10+
Pubkey
11+
Ruleset
12+
Rulesets
13+
runtimes
14+
Solana
15+
struct
16+
structs

.github/workflows/evm.yml

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
name: evm
2+
3+
on: pull_request
4+
5+
env:
6+
FOUNDRY_PROFILE: ci
7+
8+
jobs:
9+
check:
10+
strategy:
11+
fail-fast: true
12+
13+
name: Foundry project
14+
runs-on: ubuntu-latest
15+
defaults:
16+
run:
17+
working-directory: evm
18+
steps:
19+
- uses: actions/checkout@v4
20+
with:
21+
submodules: recursive
22+
23+
- name: Install Foundry
24+
uses: foundry-rs/foundry-toolchain@v1
25+
with:
26+
version: nightly
27+
28+
- name: Show Forge version
29+
run: |
30+
forge --version
31+
32+
- name: Run Forge fmt
33+
run: |
34+
forge fmt --check
35+
id: fmt
36+
37+
- name: Run Forge build
38+
run: |
39+
forge build --sizes
40+
id: build
41+
42+
- name: Run Forge tests
43+
run: |
44+
forge test -vvv
45+
id: test

.github/workflows/format.yml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
name: format
2+
on: pull_request
3+
jobs:
4+
prettier:
5+
runs-on: ubuntu-latest
6+
steps:
7+
- uses: actions/checkout@v4
8+
- uses: oven-sh/setup-bun@v2
9+
- run: bun install --frozen-lockfile
10+
- run: bunx prettier --check .
11+
spellcheck:
12+
runs-on: ubuntu-latest
13+
steps:
14+
- uses: actions/checkout@v4
15+
# Pinned version of the v6 tag, which is a lightweight and hence mutable tag
16+
- uses: streetsidesoftware/cspell-action@214db1e3138f326d33b7a6a51c92852e89ab0618
17+
with:
18+
# For now, only lint markdown files
19+
files: "**/*.md"
20+
inline: warning
21+
# Only check files in the PR or push
22+
incremental_files_only: true

.github/workflows/svm.yml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
name: svm
2+
3+
on:
4+
pull_request:
5+
6+
jobs:
7+
test:
8+
name: Anchor Test
9+
runs-on: ubuntu-latest
10+
defaults:
11+
run:
12+
working-directory: svm
13+
steps:
14+
- uses: actions/checkout@v4
15+
- name: Get solana version
16+
id: solana
17+
run: |
18+
SOLANA_VERSION="$(awk '/solana_version =/ { print substr($3, 2, length($3)-2) }' Anchor.toml)"
19+
echo "::set-output name=version::${SOLANA_VERSION}"
20+
- name: Get anchor version
21+
id: anchor
22+
run: |
23+
ANCHOR_VERSION="$(awk '/anchor_version =/ { print substr($3, 2, length($3)-2) }' Anchor.toml)"
24+
echo "::set-output name=version::${ANCHOR_VERSION}"
25+
- uses: evan-gray/anchor-test@24c04ecece7b484fa1218bab4318818b36436005
26+
with:
27+
anchor-version: "${{steps.anchor.outputs.version}}"
28+
solana-cli-version: "${{steps.solana.outputs.version}}"
29+
working-directory: "svm"
30+
31+
- run: cargo fmt --check --all
32+
- run: cargo clippy
33+
- run: cargo test

.gitignore

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
node_modules/
2+
lcov.info
3+
.env
4+
.env.*

.gitmodules

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
[submodule "evm/lib/forge-std"]
2+
path = evm/lib/forge-std
3+
url = https://github.com/foundry-rs/forge-std

.prettierignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
evm/cache/
2+
evm/lib/
3+
evm/out/

.vscode/extensions.json

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
{
2+
// See https://go.microsoft.com/fwlink/?LinkId=827846 to learn about workspace recommendations.
3+
// Extension identifier format: ${publisher}.${name}. Example: vscode.csharp
4+
5+
// List of extensions which should be recommended for users of this workspace.
6+
"recommendations": [
7+
"esbenp.prettier-vscode",
8+
"JuanBlanco.solidity",
9+
"rust-lang.rust-analyzer",
10+
"streetsidesoftware.code-spell-checker"
11+
],
12+
// List of extensions recommended by VS Code that should not be recommended for users of this workspace.
13+
"unwantedRecommendations": []
14+
}

.vscode/settings.json

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
{
2+
"editor.formatOnSave": true,
3+
"editor.defaultFormatter": "esbenp.prettier-vscode",
4+
"files.insertFinalNewline": true,
5+
"[solidity]": {
6+
"editor.defaultFormatter": "JuanBlanco.solidity"
7+
},
8+
"solidity.formatter": "forge"
9+
}

DEVELOP.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Executor Development Notes
2+
3+
## Overview
4+
5+
This repository is generated from this [multi-chain template](https://github.com/evan-gray/multichain-template).
6+
7+
## Runtime Support
8+
9+
- [x] [EVM](https://ethereum.org/en/developers/docs/evm/)
10+
- [x] [SVM](https://solana.com/developers/evm-to-svm/smart-contracts)
11+
- [ ] [Sui Move](https://sui.io/move)
12+
- [ ] [Aptos Move](https://aptos.dev/en/build/smart-contracts)
13+
14+
## Developer Dependencies
15+
16+
### Off-Chain
17+
18+
- [Bun](https://bun.sh/docs/installation)
19+
20+
Run `bun install --frozen-lockfile` at the root of this repo to install the off-chain dependencies.
21+
22+
### EVM
23+
24+
- [Foundry](https://book.getfoundry.sh/getting-started/installation)
25+
26+
### SVM
27+
28+
- [Rust 1.75.0](https://www.rust-lang.org/tools/install)
29+
- [Solana 1.18.17](https://solana.com/docs/intro/installation)
30+
- [Yarn](https://yarnpkg.com/getting-started/install)
31+
- [Anchor 0.30.1](https://www.anchor-lang.com/docs/installation)
32+
33+
Required versions are defined in [./svm/rust-toolchain.toml](./svm/rust-toolchain.toml) and [./svm/Anchor.toml](./svm/Anchor.toml)
34+
35+
## Recommended VSCode Settings
36+
37+
Recommended VSCode settings and extensions have been included as workspace settings in this repository (`.vscode`).
38+
39+
This includes:
40+
41+
- Foundry's [forge formatting](https://book.getfoundry.sh/config/vscode#3-formatter)
42+
- [Prettier](https://marketplace.visualstudio.com/items?itemName=esbenp.prettier-vscode)
43+
- This should work after running `npm ci` at the root of this repo.
44+
45+
Additional, related settings may be required based on your use.

0 commit comments

Comments
 (0)