Skip to content

Typescript Library and Monorepo#11

Open
reednaa wants to merge 127 commits into
mainfrom
ts-library
Open

Typescript Library and Monorepo#11
reednaa wants to merge 127 commits into
mainfrom
ts-library

Conversation

@reednaa
Copy link
Copy Markdown
Member

@reednaa reednaa commented Dec 16, 2025

Fixes: https://linear.app/lifi-linear/issue/API-174/create-catapultar-library-with-webauth-and-viem-support

Implements:

New Features

Adds support for new key types:

  • P256
  • WebAuthn

Along with supporting an additionally SHA256 hash of the payload before signature validation.

Set Signatures & execution payloads as pre-validated. This allows the ability to schedule calls where one calls execution allows a follow up call to be executed along with other composability features.

Multichain actions without the chainId set in signed domain separators using: Solady's _hashTypedDataSansChainId.

Mono Repo

This repository now uses a mono-repo for both the smart account and a companion typescript library.

Summary by CodeRabbit

New Features

  • Multi-key Ownership Support: Smart accounts now support multiple cryptographic key types (ECDSA, P256, WebAuthnP256) via new KeyedOwnable system.
  • Account Factory: CatapultarFactory enables deterministic deployment of smart account clones with configurable ownership and digest approvals.
  • Constrained Transactions: CATValidator enables approval and token allowance-based execution flows with EIP-712 signatures.
  • TypeScript SDK: Full TypeScript library for account management, transaction construction, and batch execution.
  • Tron Compatibility: Added Tron-specific factory and cloning libraries.

Documentation

  • Added comprehensive README files and development guidelines (AGENTS.md).

Tests

  • Extensive test coverage for new contracts and TypeScript functionality.

reednaa and others added 17 commits April 24, 2026 12:33
…owngrade (#28)

* Zero old ownership slots when relevant

* Optimise code
* Change factaory salting behavior to maintain a single standard flow, avoiding non-obvious reuse behaviour

* Test for tooManyOwners

* Remove incorrect command and also used custom salt for upgradable version

* Implement salt changes in Tron
…#22)

* Fix signature length cutoff below 32 bytes

* Double iszero instead of not iszero
* Use balanceOf function that raises reverts when they happen instead of silently returning 0.

* Update balance of logic in allowance handle
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* forge fmt

* Fix tests

* Set foundry stable
Co-authored-by: aikido-pr-checks[bot] <169896070+aikido-pr-checks[bot]@users.noreply.github.com>
Co-authored-by: aikido-pr-checks[bot] <169896070+aikido-pr-checks[bot]@users.noreply.github.com>
Co-authored-by: aikido-pr-checks[bot] <169896070+aikido-pr-checks[bot]@users.noreply.github.com>
Co-authored-by: aikido-pr-checks[bot] <169896070+aikido-pr-checks[bot]@users.noreply.github.com>
Use path.resolve and add a distDir boundary check to guard against
any path escaping the dist/ tree, per aikido security scanner finding.

Co-Authored-By: Claude Sonnet 4.6 (1M context) <noreply@anthropic.com>
@reednaa
Copy link
Copy Markdown
Member Author

reednaa commented Apr 29, 2026

@codex review

reednaa added 10 commits April 29, 2026 14:37
…ntentExecutor (#32)

* Create Tron version of CATValidator and IntentExecutor

* Update namings and add failure check for non-tron contracts.

* forge fmt

* Scope test to make coverage pass

* Use overwrites for Tron contracts instead of re-impleentation.

* Update solidity pragma version

* Set Tron pragma

* chore: Add audit report for pr
Comment thread solidity/src/CallProxy.sol
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants