Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
5f48889
feat: initial composable setup
vr16x Mar 27, 2026
6c3eb90
init composable setup and folder structure
vr16x Mar 27, 2026
514b149
ci: add github workflows and commitlint
vr16x Mar 27, 2026
6ff71ed
feat: add runtime abi encoding and fix ts config
vr16x Mar 27, 2026
ae36887
fix lint errors
vr16x Mar 27, 2026
bc2de0d
feat: integrated composable encoding and runtime values
vr16x Apr 3, 2026
c2d3127
feat: quick type fix
vr16x Apr 3, 2026
c257540
feat: type imports fix
vr16x Apr 3, 2026
6b5a539
feat: fixed the workflow process
vr16x Apr 3, 2026
2f0c3bd
feat: added composability encoding
vr16x Apr 3, 2026
c67616d
feat: added batch composable instance
vr16x Apr 6, 2026
81204ee
feat: added calls method and tests
vr16x Apr 6, 2026
6ab7599
feat: added a integration test for the composable batch call
vr16x Apr 7, 2026
12842ce
feat: added a write method for the erc20Token instance
vr16x Apr 7, 2026
a6d5a7b
feat: added a predicates flows wip
vr16x Apr 7, 2026
291cd9b
feat: added more test coverage for predicates
vr16x Apr 8, 2026
cef524f
feat: added composable storage flows
vr16x Apr 8, 2026
88a23d7
feat: added a integration test for storage flows
vr16x Apr 9, 2026
80c052d
feat: added test cases for storage flows
vr16x Apr 9, 2026
875c15e
feat: renamed all the instances to have a create prefix
vr16x Apr 9, 2026
d18f4e0
feat: added a separate github workflow for integration tests
vr16x Apr 9, 2026
a5a4d8d
feat: fixed the test cases
vr16x Apr 9, 2026
9cda0b1
feat: integration test pipeline is fixed
vr16x Apr 9, 2026
75317a5
more test coverage
vr16x Apr 14, 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
8 changes: 8 additions & 0 deletions .changeset/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# Changesets

Hello and welcome! This folder has been automatically generated by `@changesets/cli`, a build tool that works
with multi-package repos, or single-package repos to help you version and publish your code. You can
find the full documentation for it [in our repository](https://github.com/changesets/changesets).

We have a quick list of common questions to get you started engaging with this project in
[our documentation](https://github.com/changesets/changesets/blob/main/docs/common-questions.md).
11 changes: 11 additions & 0 deletions .changeset/config.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"$schema": "https://unpkg.com/@changesets/config@3.1.3/schema.json",
"changelog": "@changesets/cli/changelog",
"commit": false,
"fixed": [],
"linked": [],
"access": "public",
"baseBranch": "main",
"updateInternalDependencies": "patch",
"ignore": []
}
5 changes: 5 additions & 0 deletions .claude/settings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
{
"permissions": {
"deny": ["Read(./.env)", "Read(./.env.*)"]
}
}
2 changes: 2 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
PRIVATE_KEY=
BASE_SEPOLIA_RPC_URL=
13 changes: 13 additions & 0 deletions .github/actions/install-dependencies/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
name: Install Dependencies
description: Setup Bun and install dependencies with frozen lockfile

runs:
using: composite
steps:
- uses: oven-sh/setup-bun@v2
with:
bun-version: latest

- name: Install dependencies
shell: bash
run: bun install --frozen-lockfile
26 changes: 26 additions & 0 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Build

on:
workflow_dispatch:
push:
branches: [main]
pull_request:
types: [opened, reopened, synchronize, ready_for_review]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
build:
name: TypeScript
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4

- name: Install dependencies
uses: ./.github/actions/install-dependencies

- name: Build
run: bun run build
29 changes: 29 additions & 0 deletions .github/workflows/integration-test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
name: Integration Test

on:
workflow_dispatch:
push:
branches: [main]
pull_request:
types: [opened, reopened, synchronize, ready_for_review]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
integration-test:
name: Integration Tests
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v4

- name: Install dependencies
uses: ./.github/actions/install-dependencies

- name: Integration Test
run: bun run test:integration
env:
PRIVATE_KEY: ${{ secrets.PRIVATE_KEY }}
BASE_SEPOLIA_RPC_URL: ${{ secrets.BASE_SEPOLIA_RPC_URL }}
26 changes: 26 additions & 0 deletions .github/workflows/lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Lint

on:
workflow_dispatch:
push:
branches: [main]
pull_request:
types: [opened, reopened, synchronize, ready_for_review]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
lint:
name: Biome
runs-on: ubuntu-latest
timeout-minutes: 10
steps:
- uses: actions/checkout@v4

- name: Install dependencies
uses: ./.github/actions/install-dependencies

- name: Check
run: bun run check
19 changes: 19 additions & 0 deletions .github/workflows/pr-lint.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
name: PR Lint

on:
pull_request:
types: [opened, reopened, synchronize, ready_for_review, edited]

jobs:
pr-lint:
name: Commitlint
runs-on: ubuntu-latest
timeout-minutes: 5
steps:
- uses: actions/checkout@v4

- name: Install dependencies
uses: ./.github/actions/install-dependencies

- name: Lint PR title
run: echo "${{ github.event.pull_request.title }}" | bun commitlint
26 changes: 26 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
name: Test

on:
workflow_dispatch:
push:
branches: [main]
pull_request:
types: [opened, reopened, synchronize, ready_for_review]

concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true

jobs:
test:
name: Vitest
runs-on: ubuntu-latest
timeout-minutes: 15
steps:
- uses: actions/checkout@v4

- name: Install dependencies
uses: ./.github/actions/install-dependencies

- name: Test
run: bun run test
34 changes: 34 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,34 @@
# dependencies (bun install)
node_modules

# output
out
dist
*.tgz

# code coverage
coverage
*.lcov

# logs
logs
_.log
report.[0-9]_.[0-9]_.[0-9]_.[0-9]_.json

# dotenv environment variable files
.env
.env.development.local
.env.test.local
.env.production.local
.env.local

# caches
.eslintcache
.cache
*.tsbuildinfo

# IntelliJ based IDEs
.idea

# Finder (MacOS) folder config
.DS_Store
48 changes: 48 additions & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@

Default to using Bun instead of Node.js.

- Use `bun <file>` instead of `node <file>` or `ts-node <file>`
- Use `bun test` instead of `jest` or `vitest`
- Use `bun build <file.html|file.ts|file.css>` instead of `webpack` or `esbuild`
- Use `bun install` instead of `npm install` or `yarn install` or `pnpm install`
- Use `bun run <script>` instead of `npm run <script>` or `yarn run <script>` or `pnpm run <script>`
- Bun automatically loads .env, so don't use dotenv.


## Code Style

Always refer to `biome.json` for coding style rules — indentation, quotes, semicolons, import order, and lint rules are all defined there. Do not deviate from them.

After writing or modifying any code, always run:

```bash
bun run check
```

This formats and lints in one pass. Fix any errors before considering the task done.

## Build

After writing or modifying any code, always run:

```bash
bun run build
```

Resolve any TypeScript errors before finishing. Do not leave the build in a broken state.

## Documentation

Always use Context7 (`mcp__context7__resolve-library-id` + `mcp__context7__query-docs`) for library/API documentation, code generation, and setup or configuration steps without waiting for an explicit ask.

## Testing

Use `bun test` to run tests.

```ts#index.test.ts
import { test, expect } from "bun:test";

test("hello world", () => {
expect(1).toBe(1);
});
```
74 changes: 74 additions & 0 deletions biome.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
{
"$schema": "https://biomejs.dev/schemas/2.4.9/schema.json",
"vcs": {
"enabled": true,
"clientKind": "git",
"useIgnoreFile": true
},
"files": {
"ignoreUnknown": false,
"includes": [
"**/*.ts",
"**/*.tsx",
"**/*.js",
"**/*.jsx",
"**/*.json",
"!**/node_modules",
"!**/dist",
"!**/.changeset"
]
},
"formatter": {
"enabled": true,
"indentStyle": "space",
"indentWidth": 2,
"lineWidth": 100,
"lineEnding": "lf"
},
"javascript": {
"formatter": {
"quoteStyle": "single",
"jsxQuoteStyle": "double",
"semicolons": "always",
"trailingCommas": "all",
"arrowParentheses": "always"
}
},
"linter": {
"enabled": true,
"rules": {
"recommended": true,
"correctness": {
"noUnusedVariables": "error",
"noUnusedImports": "error"
},
"suspicious": {
"noDebugger": "error",
"noExplicitAny": "error",
"noConsole": "warn",
"noTsIgnore": "error"
},
"style": {
"useConst": "error",
"useTemplate": "error",
"useImportType": "error",
"useExportType": "error",
"noNonNullAssertion": "error",
"noParameterAssign": "error",
"noInferrableTypes": "error",
"useConsistentArrayType": "error",
"useShorthandFunctionType": "error",
"useConsistentTypeDefinitions": "error",
"useDefaultParameterLast": "error"
}
}
},
"assist": {
"enabled": true,
"actions": {
"source": {
"organizeImports": "on"
}
}
}
}
Loading
Loading