Skip to content

Commit

Permalink
Merge Develop to Main (#417)
Browse files Browse the repository at this point in the history
* Fix UserOpResponse wait confirmations

* birth of V4 SDK (#401)

* feat: accounts update

* update other packages with viem types

* fix: account compatibility

* minor fix

* code refactor with latest releases

* fix: resolve build

* turned off bundler tests

* fix: default validation params

* fix!: make bundler and paymaster public

* feat: reduce the bundle size

* fix: lint and temp test

* fix: gasless paymaster flow

* minor fixes

* remove the default chain

* fix: lint

* fix: method comment

* fix: bundler abstraction in v4

* feat: add Logger class to v4

* Feedback by @joepegler #352

* fix: logic error

* Feat(DEVX-410): Reinclude tests

* remove unused package

* fix: constructor validation initialisation

* fix: build issue

* Resolved DEVX-405

* Added e2e test for multiChain module

* Updated the "addSigner" method

* Fixed lint

* Resolved DEVX-402

Added esbuild

* Remove unused file

* Added negative tests

* Added multichainValidation tests

* Fix import

* Multichain testing support

* Added session validation module tests

* fix issues with address and update gitignore

* linkAll improvement

* watch package builds

cont

* WIP Session module

* Added tests for multi-chain validation and session validation

* unit tests fix

* Remove duplicate test

* revert tsconfig change

* Added check for paymaster in BiconomySmartAccountV2 class

* Fixed session file storage path and gitignore

* Fixed e2e nft mint test

* Added wait for tx before checking balance in test

* Resolved SMA-526

* test workflow

* test again

* fix command

* fix again

* test again

* cont.

* Added SPONSORED and ERC20 paymaster check logic in SDK + tests

* Feat(DEVX-425): Support ethers (#370)

Resolved DEVX-425: Support ethers

* Fixed lint

* Merged with v4

* Changed parameter name

* Uncomment PaymasterMode

* Added fix for selected quote case ERC20 paymaster

* Changed send user op approach in ERC20 paymaster test

* Modify sendUserOp function description

* Added throw instead of return user op

* continued

* Fix branch for deployment of docs

* Removed try catch

* Added utility func to get balance in tests

* Removed unused value param from tx obj

* Apply Signer Abstraction to modules (#375)

* Added Signer Abstraction

* fix:circular_dependency

* Resolved SM-547

* lint:fix

* Removed lint-staged (#382)

Co-authored-by: GabiDev <gv@popoo.io>

* README tweaks (#377)

* Update README.md

* createSmartAccountClient (#385)

* Add paymasterAndData validation in e2e tests (#381)

* Add paymasterAndData validation in e2e tests

* Use config values instead of hardcoded in tests

---------

Co-authored-by: GabiDev <gv@popoo.io>

* Use RpcUrl from provider  (#379)

* Resolved SMA-549

lint:fix

log

* continued

* continued

* continued

* Remove e2e test from unit test

commit lockfile

* rpc test

* fix tests

* Feat/sma 540 check paymaster userop (#384)

* Refactor paymasterServiceData validation logic for ERC20 mode

* Add assertions and test case for ERC20 Paymaster user op

* Changed isNullOrUndefined function param to any type

* Update createSmartWalletClient to createSmartAccountClient

* Added ts-doc for setPaymasterUserOp

* Export FeeQuotesOrDataResponse from @account and update import path in test

* Refactor setPaymasterUserOp --> getPaymasterUserOp

---------

Co-authored-by: GabiDev <gv@popoo.io>

* update lockfile

* Add ethersV6 compatibility (#387)

* Fix for etherv6 signer compatibility

* Refactor name

---------

Co-authored-by: GabiDev <gv@popoo.io>

* Feat(SMA-559): Improved dx for erc20 paymaster calls (#388)

* Resolved SMA-559

* Fix await

* Fix tests

* Update docs

* remove unused import

* Fix broken tests

* Fix rpc url

* buildTokenPaymasterUserOp

* lint:fix

* Fix spender

* Abstract tokenlist away

* fix test

* fix await

* lint:fix

* Make getPaymasterUserOp public

* remove log

* Except sessionStorageData folder from gitignore but not files (#389)

Co-authored-by: GabiDev <gv@popoo.io>

* fixes in v4 for front end frameworks (#392)

* fixes in v4 for front end frameworks

* revert build scripts

* Added simulationType flag (#390)

* Added simulationType flag

* Change params for sendTransaction

* Modified sendTransaction params for simulationType + moduleInfo params

---------

Co-authored-by: GabiDev <gv@popoo.io>

* Fix(SMA-574): ESM builds (#393)

* es build fixes

Resolved SMA-574

* Include both builds

* Default build with tsc

* minify_tsc_build

* Fix check for maxApproval in BiconomySmartAccountV2 (#395)

Co-authored-by: GabiDev <gv@popoo.io>

* Bugfix/api error message (#396)

* Fix check for maxApproval in BiconomySmartAccountV2

* Fixed api error response + increment time for test

---------

Co-authored-by: GabiDev <gv@popoo.io>

* Change type: sessionSigner: SupportedSigner (#397)

* Fixed merkletreejs import (#400)

* Fixed merkletreejs import

* Removed console log

---------

Co-authored-by: GabiDev <gv@popoo.io>

* Feat(SMA-579): Allow empty tokenInfo fields during getTokenFees (#399)

* Resolved SMA-579

* added e2e tests

* lint:fix & update docs

* fix: token paymaster approval flows

* continued

* test fix

* Remove max approval from tests

---------

Co-authored-by: livingrockrises <90545960+livingrockrises@users.noreply.github.com>

* yarn lock

* Feat(SMA-583): Update README.md with v4 examples (#405)

* continued docs + readme updates

* Updated README.md

* lint:fix

* update lockfile

* Added string as a supported Transaction value type (#404)

Co-authored-by: GabiDev <gv@popoo.io>
Co-authored-by: livingrockrises <90545960+livingrockrises@users.noreply.github.com>

* Added export for UserOpStatus type from /account (#403)

* Exported UserOpStatus type from /account

* update lockfile

---------

Co-authored-by: GabiDev <gv@popoo.io>
Co-authored-by: livingrockrises <90545960+livingrockrises@users.noreply.github.com>

* Added needed exports from modules (#402)

* Added needed exports from modules

* update lockfile

---------

Co-authored-by: GabiDev <gv@popoo.io>
Co-authored-by: livingrockrises <90545960+livingrockrises@users.noreply.github.com>

* Added readme (#409)

Co-authored-by: GabiDev <gv@popoo.io>

* Commented overrides and skipBundlerGasEstimation params (#407)

Co-authored-by: GabiDev <gv@popoo.io>

* V4 with viem v2 (bump aa-core and viem) (#406)

* update aa-core and viem packages

* update rest of the code to use updated deps

* update lockfile

* fix: build error

---------

Co-authored-by: amanraj1608 <archanaamanraj@gmail.com>

* update lockfile

* Added a new param to sendRequest "service" (#412)

Co-authored-by: GabiDev <gv@popoo.io>

* Added changelog (#410)

* Make package exports consistent (#411)

* Make package exports consistent

* Update README.md s

* type comment fix

* Move default to end of exports

* LightSigner

* export LightSigner

* export type

---------

Co-authored-by: amanraj1608 <archanaamanraj@gmail.com>
Co-authored-by: Aman Raj <42104907+AmanRaj1608@users.noreply.github.com>
Co-authored-by: Joe Pegler <joepegler123@gmail.com>
Co-authored-by: GabiDev <gv@popoo.io>
Co-authored-by: Vasile Gabriel Marian <56271768+VGabriel45@users.noreply.github.com>

* Release 8 - Biconomy V4 SDK (#414)

* update lockfile

* chore: release r8 update package version

* Update modules changelog

---------

Co-authored-by: Joe Pegler <joepegler123@gmail.com>

* Replaced baseGoerli with baseSepolia (#415)

Co-authored-by: GabiDev <gv@popoo.io>

* Fix for encodeAbiParameters inside batched session module (#416)

Co-authored-by: GabiDev <gv@popoo.io>

---------

Co-authored-by: Aurélien <aurelien@avicenne.studio>
Co-authored-by: amanraj1608 <archanaamanraj@gmail.com>
Co-authored-by: Aman Raj <42104907+AmanRaj1608@users.noreply.github.com>
Co-authored-by: Joe Pegler <joepegler123@gmail.com>
Co-authored-by: GabiDev <gv@popoo.io>
Co-authored-by: Vasile Gabriel Marian <56271768+VGabriel45@users.noreply.github.com>
  • Loading branch information
7 people authored Feb 12, 2024
1 parent 9d7f52d commit 11a7e6e
Show file tree
Hide file tree
Showing 165 changed files with 16,016 additions and 12,510 deletions.
5 changes: 5 additions & 0 deletions .env.example
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
E2E_PRIVATE_KEY_ONE=
E2E_PRIVATE_KEY_TWO=
E2E_BICO_PAYMASTER_KEY_MUMBAI=
E2E_BICO_PAYMASTER_KEY_BASE=
BICONOMY_SDK_DEBUG=true
4 changes: 3 additions & 1 deletion .eslintrc.js
Original file line number Diff line number Diff line change
Expand Up @@ -23,9 +23,11 @@ module.exports = {
"@typescript-eslint/no-unused-vars": ["error", { argsIgnorePattern: "^_" }],
"security/detect-object-injection": "warn",
"security/detect-unsafe-regex": "error",
"import/extensions": "off",
"import/extensions": "error", // Now we need to specify extensions for imports for esm builds
"security/detect-object-injection": "off", // turning off Injection Sink rule
"@typescript-eslint/no-throw-literal": "off", // temp deactivated needs to be removed once fixed
"@typescript-eslint/ban-ts-ignore": "off",
"@typescript-eslint/ban-ts-comment": "off",
},
settings: {},
overrides: [
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/check_branch_name.yml
Original file line number Diff line number Diff line change
Expand Up @@ -18,4 +18,4 @@ jobs:
if [[ ! $BRANCH_NAME =~ ^(features/|fixes/|releases/) ]]; then
echo "error: Branch names should follow GitFlow naming convention (features/, fixes/, releases/)."
exit 1
fi
fi
27 changes: 27 additions & 0 deletions .github/workflows/docs.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
name: Build and Deploy Documentation
on:
workflow_dispatch:
push:
branches:
- develop
- v4

permissions:
contents: write
jobs:
build-docs-and-deploy:
runs-on: ubuntu-latest
steps:
- name: Checkout 🛎️
uses: actions/checkout@v3

- name: Install and Build
run: |
yarn
yarn build
yarn --cwd ./packages/account docs
- name: Deploy 🚀
uses: JamesIves/github-pages-deploy-action@v4
with:
folder: ./packages/account/docs
33 changes: 33 additions & 0 deletions .github/workflows/pull_request_approved.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
name: E2E Test workflow
on:
pull_request_review:
types: [submitted]
workflow_dispatch:
jobs:
e2e_test:
if: github.event.review.state == 'approved'
name: E2E tests
runs-on: ubuntu-latest
strategy:
matrix:
node-version: [18.x]

steps:
- name: Checkout
uses: "actions/checkout@main"

- name: Set Node.js
uses: actions/setup-node@v1
with:
node-version: ${{ matrix.node-version }}

- name: Install dependencies
run: yarn install --frozen-lockfile && yarn build

- name: Run tests
env:
E2E_PRIVATE_KEY_ONE: ${{ secrets.E2E_PRIVATE_KEY_ONE }}
E2E_PRIVATE_KEY_TWO: ${{ secrets.E2E_PRIVATE_KEY_TWO }}
E2E_BICO_PAYMASTER_KEY_MUMBAI: ${{ secrets.E2E_BICO_PAYMASTER_KEY_MUMBAI }}
E2E_BICO_PAYMASTER_KEY_BASE: ${{ secrets.E2E_BICO_PAYMASTER_KEY_BASE }}
run: yarn test:e2e
3 changes: 2 additions & 1 deletion .github/workflows/push_check.yml
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
name: Test workflow
on: push
on: [push, workflow_dispatch]

jobs:
lint:
name: Lint sources
Expand Down
17 changes: 9 additions & 8 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@ logs
*.log
yarn-debug.log*
yarn-error.log*
yarn.lock
lockfiles

# Diagnostic reports (https://nodejs.org/api/report.html)
Expand Down Expand Up @@ -47,7 +46,6 @@ node_modules/
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*
yarn.lock

# macOS
.DS_Store
Expand All @@ -58,20 +56,23 @@ artifacts
deployments

# lockfiles
packages/core-types/package-lock.json
packages/account/package-lock.json
packages/common/package-lock.json
packages/modules/package-lock.json
packages/bundler/package-lock.json
packages/node-client/package-lock.json
packages/paymaster/package-lock.json
packages/particle-auth/package-lock.json
packages/web3-auth/package-lock.json
packages/web3-auth-native/package-lock.json
packages/transak/package-lock.json
package-lock.json
yarn.lock

#ignore sessionStorageData files
packages/modules/tests/utils/sessionStorageData/*
#except sessionStorageData folder
!packages/modules/tests/utils/sessionStorageData/.gitkeep

# Typechain
typechain

openapi/

# docs
packages/account/docs/*
2 changes: 1 addition & 1 deletion .nvmrc
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v14.17.0
v18.16.0
149 changes: 96 additions & 53 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,90 +1,133 @@
# Biconomy SDK: Your Gateway to ERC4337 Account Abstraction & Smart Accounts 🛠️
# Biconomy SDK

![Biconomy SDK](https://img.shields.io/badge/Biconomy-SDK-blue.svg) ![TypeScript](https://img.shields.io/badge/-TypeScript-blue) ![Test Coverage](https://img.shields.io/badge/Coverage-45%25-yellow.svg)
![Biconomy SDK](https://img.shields.io/badge/Biconomy-SDK-blue.svg)
![TypeScript](https://img.shields.io/badge/-TypeScript-blue)
![Test Coverage](https://img.shields.io/badge/Coverage-79.82%25-green.svg)

<p align="center"><img src="./assets/readme/biconomy-client-sdk.png" width="550" alt="Biconomy SDK Banner"></p>
## 👋 Introduction

## Introduction
The Biconomy SDK is your all-in-one toolkit for building decentralized applications (dApps) with **ERC4337 Account Abstraction** and **Smart Accounts**. It is designed for seamless user experiences and offers non-custodial solutions for user onboarding, sending transactions (userOps), gas sponsorship and much more.

The Biconomy SDK is your all-in-one toolkit for building decentralized applications (dApps) with **ERC4337 Account Abstraction** and **Smart Accounts**. This SDK is designed for seamless user experiences and offers non-custodial solutions for user onboarding, transaction management, and gas abstraction.
## 🛠️ Quickstart

```typescript
import { createSmartAccountClient } from "@biconomy/account";

const smartAccount = await createSmartAccountClient({
signer: viemWalletOrEthersSigner,
bundlerUrl: "", // From dashboard.biconomy.io
biconomyPaymasterApiKey: "", // From dashboard.biconomy.io
});

const { wait } = await smartAccount.sendTransaction({ to: "0x...", value: 1 });

<p align="center"><img src="./assets/readme/biconomy-sdk.png" width="550" alt="Biconomy SDK Diagram"></p>
const {
receipt: { transactionHash },
userOpHash,
} = await wait();
```

## 🌟 Features

- **ERC4337 Account Abstraction**: Simplify user operations and gas payments.
- **Smart Accounts**: Enhance user experience with modular smart accounts.
- **Paymaster Service**: Enable third-party gas sponsorship.
- **Bundler Infrastructure**: Ensure efficient and reliable transaction bundling.
- **Backend Node**: Manage chain configurations and gas estimations.

## 📦 Packages

### Account

Unlock the full potential of **ERC4337 Account Abstraction** with methods that simplify the creation and dispatch of UserOperations, streamlining dApp development and management.

```javascript

import { ECDSAOwnershipValidationModule, DEFAULT_ECDSA_OWNERSHIP_MODULE } from "@biconomy/modules";
import { IBundler, Bundler } from '@biconomy/bundler'
import { DEFAULT_ENTRYPOINT_ADDRESS } from "@biconomy/account"
import { providers } from 'ethers'
import { ChainId } from "@biconomy/core-types"
For a step-by-step guide on integrating **ERC4337 Account Abstraction** and **Smart Accounts** into your dApp using the Biconomy SDK, refer to the [official documentation](https://docs.biconomy.io/docs/overview). You can also start with Quick start [here](https://docs.biconomy.io/quickstart).

## 📚 Resources

const module = await ECDSAOwnershipValidationModule.create({
signer: wallet,
moduleAddress: DEFAULT_ECDSA_OWNERSHIP_MODULE
})
- [Biconomy Documentation](https://docs.biconomy.io/)
- [Biconomy Dashboard](https://dashboard.biconomy.io)
- [TSDoc](https://bcnmy.github.io/biconomy-client-sdk)

const biconomySmartAccount = await BiconomySmartAccountV2.create({
chainId: ChainId.POLYGON_MUMBAI,
bundler: bundler,
paymaster: paymaster,
entryPointAddress: DEFAULT_ENTRYPOINT_ADDRESS,
defaultValidationModule: module,
activeValidationModule: module
})
## ⚙️ installation

console.log("address: ", await biconomySmartAccount.getAccountAddress());
```bash
npm i @biconomy/account
```

### Bundler
## 💼 Example Usages

Leverage standardized bundler infrastructure for efficient operation of account abstraction across EVM networks.
### [Initialise the smartAccount](https://bcnmy.github.io/biconomy-client-sdk/functions/createSmartAccountClient.html)

```javascript
| Key | Description |
| -------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------- |
| [signer](https://bcnmy.github.io/biconomy-client-sdk/packages/account/docs/interfaces/SmartAccountSigner.html) | This signer will be used for signing userOps for any transactions you build. Will accept ethers.JsonRpcSigner as well as a viemWallet |
| [biconomyPaymasterApiKey](https://dashboard.biconomy.io) | You can pass in a biconomyPaymasterApiKey necessary for sponsoring transactions (retrieved from the biconomy dashboard) |
| [bundlerUrl](https://dashboard.biconomy.io) | You can pass in a bundlerUrl (retrieved from the biconomy dashboard) for sending transactions |

import { IBundler, Bundler } from '@biconomy/bundler'
```typescript
import { createSmartAccountClient } from "@biconomy/account";
import { createWalletClient, http, createPublicClient } from "viem";
import { privateKeyToAccount, generatePrivateKey } from "viem/accounts";
import { mainnet as chain } from "viem/chains";

const account = privateKeyToAccount(generatePrivateKey());
const signer = createWalletClient({ account, chain, transport: http() });

const bundler: IBundler = new Bundler({
bundlerUrl: 'https://bundler.biconomy.io/api/v2/80001/<API_KEY>',
// Please go to https://dashboard.biconomy.io and generate bundler url
chainId: ChainId.POLYGON_MUMBAI,
entryPointAddress: DEFAULT_ENTRYPOINT_ADDRESS,
})
const smartAccount = await createSmartAccountClient({
signer,
bundlerUrl,
biconomyPaymasterApiKey,
});
```

### Paymaster
### [Send some ETH, have gas sponsored](https://bcnmy.github.io/biconomy-client-sdk/classes/BiconomySmartAccountV2.html#sendTransaction)

| Key | Description |
| --------------------------------------------------------------------------------- | -------------------------------------------------------------- |
| [oneOrManyTx](https://bcnmy.github.io/biconomy-client-sdk/types/Transaction.html) | Submit multiple or one transactions |
| [userOpReceipt](https://bcnmy.github.io/biconomy-client-sdk/types/UserOpReceipt) | Returned information about your tx, receipts, userOpHashes etc |

Acting as third-party intermediaries, Paymasters have the capability to sponsor gas fees for an account, provided specific predefined conditions are met. Additionally, they can accept gas payments in ERC20 tokens from users' smart accounts, with the Paymaster managing the conversion to native tokens for gas payment.
```typescript
const oneOrManyTx = { to: "0x...", value: 1 };

```javascript
const paymaster: IPaymaster = new BiconomyPaymaster({
paymasterUrl: '' // From Biconomy Dashboard
const { wait } = await smartAccount.sendTransaction(oneOrManyTx, {
mode: PaymasterMode.SPONSORED,
});

const {
receipt: { transactionHash },
userOpHash,
} = await wait();
```

## 🛠️ Quickstart
### [Mint two NFTs, pay gas with token](https://bcnmy.github.io/biconomy-client-sdk/classes/BiconomySmartAccountV2.html#getTokenFees)

For a step-by-step guide on integrating **ERC4337 Account Abstraction** and **Smart Accounts** into your dApp using the Biconomy SDK, refer to the [official documentation](https://docs.biconomy.io/docs/overview). You can also start with Quick explore here https://docs.biconomy.io/docs/category/quick-explore
| Key | Description |
| -------------------------------------------------------------------------------------------------------- | ------------------------------------------ |
| [buildUseropDto](https://bcnmy.github.io/biconomy-client-sdk/types/BuildUserOpOptions.html) | Options for building a userOp |
| [paymasterServiceData](https://bcnmy.github.io/biconomy-client-sdk/types/PaymasterUserOperationDto.html) | PaymasterOptions set in the buildUseropDto |

## 📚 Resources
```typescript
import { encodeFunctionData, parseAbi } from "viem";

const encodedCall = encodeFunctionData({
abi: parseAbi(["function safeMint(address to) public"]),
functionName: "safeMint",
args: ["0x..."],
});

- [Biconomy Documentation](https://docs.biconomy.io/docs/overview)
- [Biconomy Dashboard](https://dashboard.biconomy.io/)
const tx = {
to: nftAddress,
data: encodedCall,
};
const oneOrManyTx = [tx, tx]; // Mint twice
const paymasterServiceData = {
mode: PaymasterMode.ERC20,
preferredToken: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48", // USDC
};
const buildUseropDto = { paymasterServiceData };

const { wait } = await smartAccount.sendTransaction(oneOrManyTx, buildUseropDto);

const {
receipt: { transactionHash },
userOpHash,
} = await wait();
```

## 🤝 Contributing

Expand Down
6 changes: 6 additions & 0 deletions jest.config.e2e.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
import config from "./jest.config";
const e2eConfig = { ...config };
e2eConfig.testMatch = ["**/*.e2e.spec.ts"];
e2eConfig.setupFilesAfterEnv = ["<rootDir>/tests/setup-e2e-tests.ts"];

export default e2eConfig;
18 changes: 13 additions & 5 deletions jest.config.ts
Original file line number Diff line number Diff line change
Expand Up @@ -78,7 +78,11 @@ const config: Config = {
moduleFileExtensions: ["js", "mjs", "cjs", "jsx", "ts", "tsx", "json", "node"],

// A map from regular expressions to module names or to arrays of module names that allow to stub out resources with a single module
// moduleNameMapper: {},
moduleNameMapper: {
'^(?!bn\.js$|hash\.js$)(.+)\\.js$': '$1'
},

extensionsToTreatAsEsm: ['.ts'],

// An array of regexp pattern strings, matched against all module paths before considered 'visible' to the module loader
// modulePathIgnorePatterns: [],
Expand Down Expand Up @@ -123,7 +127,7 @@ const config: Config = {
// setupFiles: [],

// A list of paths to modules that run some code to configure or set up the testing framework before each test
// setupFilesAfterEnv: [],
setupFilesAfterEnv: ["<rootDir>/tests/setup-unit-tests.ts"],

// The number of seconds after which a test is considered as slow and reported as such in the results.
// slowTestThreshold: 5,
Expand All @@ -141,7 +145,7 @@ const config: Config = {
// testLocationInResults: false,

// The glob patterns Jest uses to detect test files
testMatch: ["**/*.spec.ts"],
testMatch: ["**/*.spec.ts", "!**/*.e2e.spec.ts"],

// An array of regexp pattern strings that are matched against all test paths, matched tests are skipped
// testPathIgnorePatterns: [
Expand All @@ -159,7 +163,7 @@ const config: Config = {

// A map from regular expressions to paths to transformers
transform: {
"^.+\\.tsx?$": "ts-jest",
"^.+\\.tsx?$": ["ts-jest", { useESM: true }],
},

// An array of regexp pattern strings that are matched against all source file paths, matched files will skip transformation
Expand All @@ -179,6 +183,10 @@ const config: Config = {

// Whether to use watchman for file crawling
// watchman: true,

globals: {
testDataPerChain: [],
}
};

export default config;
export default config;
Loading

0 comments on commit 11a7e6e

Please sign in to comment.