Skip to content

Commit

Permalink
docs(README): add details to examples
Browse files Browse the repository at this point in the history
  • Loading branch information
Rubilmax committed Jul 8, 2024
1 parent 1731018 commit 79ba3e2
Showing 1 changed file with 49 additions and 5 deletions.
54 changes: 49 additions & 5 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ User-end bundlers are provided in each chain-specific folder, instantiating all

## Getting Started

### Installation
### Package installation

```bash
npm install @morpho-org/morpho-blue-bundlers
Expand All @@ -32,6 +32,34 @@ yarn add @morpho-org/morpho-blue-bundlers

### Usage

Bundle a collateral supply and a borrow:

```typescript
import { BundlerAction } from "@morpho-org/morpho-blue-bundlers";

const collateral = 1_000000000000000000n;
const borrowedAssets = 1000_000000n;

const borrower = "0x...";
const marketParams = {
collateralToken: "0x...",
loanToken: "0x...",
irm: "0x...",
oracle: "0x...",
lltv: 86_0000000000000000n,
};

await bundler
.connect(supplier)
.multicall([
BundlerAction.transferFrom(marketParams.collateralToken, collateral),
BundlerAction.morphoSupplyCollateral(marketParams, collateral, borrower, "0x"),
BundlerAction.morphoBorrow(marketParams, borrowedAssets, 0n, borrower, borrower),
]);
```

Bundle a permit2 signature approval and a ERC-4626 deposit:

```typescript
import { Signature } from "ethers";

Expand Down Expand Up @@ -81,16 +109,32 @@ const permit2Config = {
},
};

const assetAddress = "0x...";
const assets = 1000_000000n;

const supplier = "0x...";
const bundlerAddress = "0x...";
const permitSingle = {
details: {
token: assetAddress,
amount: assets,
nonce: 0n,
expiration: 2n ** 48n - 1,
},
spender: bundlerAddress,
sigDeadline: 2n ** 48n - 1,
};

await bundler
.connect(supplier)
.multicall([
BundlerAction.approve2(
approve2,
Signature.from(await supplier.signTypedData(permit2Config.domain, permit2Config.types, approve2)),
permitSingle,
Signature.from(await supplier.signTypedData(permit2Config.domain, permit2Config.types, permitSingle)),
false,
),
BundlerAction.transferFrom2(collateralAddress, assets),
BundlerAction.erc4626Deposit(erc4626Address, assets, 0, supplier.address),
BundlerAction.transferFrom2(assetAddress, assets),
BundlerAction.erc4626Deposit(erc4626Address, assets, 0, supplier),
]);
```

Expand Down

0 comments on commit 79ba3e2

Please sign in to comment.