@ahumblebuilder/derifun-ability
v0.0.2
Published
A Vincent ability that allows interacting with Derifun OptionVaultFactory contracts for options trading.
Downloads
9
Maintainers
Readme
Derifun Ability
A Vincent ability that allows interacting with Derifun OptionVaultFactory contracts for options trading operations.
Overview
This package provides a Vincent ability for interacting with Derifun's OptionVaultFactory contract, enabling users to:
- Create new option vaults
- Write options
- Exercise options
- Redeem options
- Preview option writes
Supported Operations
1. Create Vault (createVault)
Creates a new option vault with specified parameters.
Parameters:
factory: Factory contract addressdepositToken: Token used for depositsconversionToken: Token for conversionpremiumToken: Token for premium paymentsstrike: Strike priceexpiry: Expiry timestampname: Vault namesymbol: Vault symbolowner: Vault owner address
2. Write Option (writeOption)
Writes an option with the specified parameters.
Parameters:
vault: Vault addressamount: Amount to writestrike: Strike priceexpiry: Expiry timestamppremiumPerUnit: Premium per unitminDeposit: Minimum deposit amountmaxDeposit: Maximum deposit amountvalidUntil: Valid until timestampquoteId: Quote IDsignature: Signature for the option
3. Exercise Option (exercise)
Exercises an option for the specified amount.
Parameters:
vault: Vault addressexerciseAmount: Amount to exercise
4. Redeem (redeem)
Redeems tokens from a vault.
Parameters:
vault: Vault address
5. Preview Write Option (previewWriteOption)
Previews a write option operation to check if it would succeed.
Parameters:
user: User addressvault: Vault addressamount: Amount to writestrike: Strike priceexpiry: Expiry timestamppremiumPerUnit: Premium per unitminDeposit: Minimum deposit amountmaxDeposit: Maximum deposit amountvalidUntil: Valid until timestampquoteId: Quote IDsignature: Signature for the option
Usage
import { vincentAbility } from '@deriflow/derifun-ability';
// Example: Create a new vault
const createVaultParams = {
operation: 'createVault',
factory: '0x...',
depositToken: '0x...',
conversionToken: '0x...',
premiumToken: '0x...',
strike: '1000000000000000000', // 1 ETH in wei
expiry: '1700000000', // Unix timestamp
name: 'My Option Vault',
symbol: 'MOV',
owner: '0x...',
};
// Example: Write an option
const writeOptionParams = {
operation: 'writeOption',
vault: '0x...',
amount: '1000000000000000000', // 1 ETH in wei
strike: '1000000000000000000',
expiry: '1700000000',
premiumPerUnit: '100000000000000000', // 0.1 ETH in wei
minDeposit: '1000000000000000000',
maxDeposit: '10000000000000000000',
validUntil: '1699999999',
quoteId: '12345',
signature: '0x...',
};Error Handling
The ability includes comprehensive error handling for common scenarios:
- Invalid addresses
- Invalid amounts
- Invalid timestamps
- Insufficient balances
- Invalid signatures
- Vault not found
- Quote already used
- Vault expired
Development
Building
nx build derifun-abilityTesting
nx test derifun-abilityLinting
nx lint derifun-abilityType Checking
nx typecheck derifun-abilityLicense
MIT
