{"_id":"@ahumblebuilder/derifun-ability","_rev":"2-7dc5342e0a97bb3a591c3dd887506421","name":"@ahumblebuilder/derifun-ability","dist-tags":{"latest":"0.0.2"},"versions":{"0.0.1":{"name":"@ahumblebuilder/derifun-ability","version":"0.0.1","keywords":["vincent","lit-protocol","ability","derifun","options","trading","blockchain","ethereum"],"author":{"name":"Deriflow","email":"info@deriflow.com"},"license":"MIT","_id":"@ahumblebuilder/derifun-ability@0.0.1","maintainers":[{"name":"ahumblebuilder","email":"ahumblebuilder@gmail.com"}],"homepage":"https://github.com/deriflow/derifun-ability#readme","bugs":{"url":"https://github.com/deriflow/derifun-ability/issues"},"dist":{"shasum":"8929becc4619148a4cd53bd37b33925a171534a6","tarball":"https://registry.npmjs.org/@ahumblebuilder/derifun-ability/-/derifun-ability-0.0.1.tgz","fileCount":24,"integrity":"sha512-S4ndNx7UypA4SEdBGpUUt8+prgwKs71lrpspF1eo62z3b9d0FAn55x7YoaadXt6U3P5cxp/4DB5K8x5iPmC67g==","signatures":[{"sig":"MEYCIQCXTgVXj+YV6/tSCF0iST/Q0Fq7mh14AJZ2MEXYObgtHQIhAKjhrljO//MTmeF6r6owu4JMuzubkl4nyJZqnc50STo3","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":72501},"main":"./dist/src/index.js","types":"./dist/src/index.d.ts","module":"./dist/src/index.js","gitHead":"4b31e6e2a7b1c9543e09bee616a847f12b40644b","scripts":{"build":"nx build"},"_npmUser":{"name":"ahumblebuilder","email":"ahumblebuilder@gmail.com"},"repository":{"url":"git+https://github.com/deriflow/derifun-ability.git","type":"git"},"_npmVersion":"8.12.1","description":"A Vincent ability that allows interacting with Derifun OptionVaultFactory contracts for options trading.","directories":{},"_nodeVersion":"22.20.0","dependencies":{"zod":"3.25.76","tslib":"2.8.1","ethers":"5.8.0","@lit-protocol/vincent-ability-sdk":"^2.0.0","@lit-protocol/vincent-scaffold-sdk":"^2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"_hasShrinkwrap":false,"devDependencies":{"esbuild":"0.19.12","ipfs-only-hash":"4.0.0","@lit-protocol/esbuild-plugin-polyfill-node":"^0.3.0"},"peerDependencies":{"@lit-protocol/vincent-app-sdk":"^2.0.0"},"_npmOperationalInternal":{"tmp":"tmp/derifun-ability_0.0.1_1761242466096_0.6544278493718343","host":"s3://npm-registry-packages-npm-production"}},"0.0.2":{"name":"@ahumblebuilder/derifun-ability","version":"0.0.2","description":"A Vincent ability that allows interacting with Derifun OptionVaultFactory contracts for options trading.","main":"./dist/src/index.js","module":"./dist/src/index.js","types":"./dist/src/index.d.ts","scripts":{"build":"nx build"},"dependencies":{"@lit-protocol/vincent-ability-sdk":"^2.0.0","@lit-protocol/vincent-scaffold-sdk":"^2.0.0","ethers":"5.8.0","tslib":"2.8.1","zod":"3.25.76"},"devDependencies":{"esbuild":"0.19.12","@lit-protocol/esbuild-plugin-polyfill-node":"^0.3.0","ipfs-only-hash":"4.0.0"},"peerDependencies":{"@lit-protocol/vincent-app-sdk":"^2.0.0"},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org/"},"repository":{"type":"git","url":"git+https://github.com/deriflow/derifun-ability.git"},"keywords":["vincent","lit-protocol","ability","derifun","options","trading","blockchain","ethereum"],"author":{"name":"Deriflow","email":"info@deriflow.com"},"license":"MIT","gitHead":"1c0fb5a71d5dee6a7c9701a489d0367318c2b714","bugs":{"url":"https://github.com/deriflow/derifun-ability/issues"},"homepage":"https://github.com/deriflow/derifun-ability#readme","_id":"@ahumblebuilder/derifun-ability@0.0.2","_nodeVersion":"22.20.0","_npmVersion":"8.12.1","dist":{"integrity":"sha512-SakiKAFxZTehu+kPX4dq8R1m7U5d4ObnshZ4193SHtr8TsULEGZeHeHCSVdMAiaHQPhxe5IshxfH7sHkWNI8HA==","shasum":"c1ac2308d2a6e4f0c53be49a0bf389eee24dbec7","tarball":"https://registry.npmjs.org/@ahumblebuilder/derifun-ability/-/derifun-ability-0.0.2.tgz","fileCount":26,"unpackedSize":72665,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQC/vZpPXAvx747yArQLMpVLwrXw2lWhxuQYThfTzR3ITgIhAP10Qs09RggtKoD8nQpw/izyDi8Dkz2nW2sqBxvfJ3a8"}]},"_npmUser":{"name":"ahumblebuilder","email":"ahumblebuilder@gmail.com"},"directories":{},"maintainers":[{"name":"ahumblebuilder","email":"ahumblebuilder@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/derifun-ability_0.0.2_1761253817028_0.9933255582091052"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-23T18:01:06.023Z","modified":"2025-10-23T21:10:17.775Z","0.0.1":"2025-10-23T18:01:06.278Z","0.0.2":"2025-10-23T21:10:17.267Z"},"bugs":{"url":"https://github.com/deriflow/derifun-ability/issues"},"author":{"name":"Deriflow","email":"info@deriflow.com"},"license":"MIT","homepage":"https://github.com/deriflow/derifun-ability#readme","keywords":["vincent","lit-protocol","ability","derifun","options","trading","blockchain","ethereum"],"repository":{"type":"git","url":"git+https://github.com/deriflow/derifun-ability.git"},"description":"A Vincent ability that allows interacting with Derifun OptionVaultFactory contracts for options trading.","maintainers":[{"name":"ahumblebuilder","email":"ahumblebuilder@gmail.com"}],"readme":"# Derifun Ability\n\nA Vincent ability that allows interacting with Derifun OptionVaultFactory contracts for options trading operations.\n\n## Overview\n\nThis package provides a Vincent ability for interacting with Derifun's OptionVaultFactory contract, enabling users to:\n\n- Create new option vaults\n- Write options\n- Exercise options\n- Redeem options\n- Preview option writes\n\n## Supported Operations\n\n### 1. Create Vault (`createVault`)\n\nCreates a new option vault with specified parameters.\n\n**Parameters:**\n\n- `factory`: Factory contract address\n- `depositToken`: Token used for deposits\n- `conversionToken`: Token for conversion\n- `premiumToken`: Token for premium payments\n- `strike`: Strike price\n- `expiry`: Expiry timestamp\n- `name`: Vault name\n- `symbol`: Vault symbol\n- `owner`: Vault owner address\n\n### 2. Write Option (`writeOption`)\n\nWrites an option with the specified parameters.\n\n**Parameters:**\n\n- `vault`: Vault address\n- `amount`: Amount to write\n- `strike`: Strike price\n- `expiry`: Expiry timestamp\n- `premiumPerUnit`: Premium per unit\n- `minDeposit`: Minimum deposit amount\n- `maxDeposit`: Maximum deposit amount\n- `validUntil`: Valid until timestamp\n- `quoteId`: Quote ID\n- `signature`: Signature for the option\n\n### 3. Exercise Option (`exercise`)\n\nExercises an option for the specified amount.\n\n**Parameters:**\n\n- `vault`: Vault address\n- `exerciseAmount`: Amount to exercise\n\n### 4. Redeem (`redeem`)\n\nRedeems tokens from a vault.\n\n**Parameters:**\n\n- `vault`: Vault address\n\n### 5. Preview Write Option (`previewWriteOption`)\n\nPreviews a write option operation to check if it would succeed.\n\n**Parameters:**\n\n- `user`: User address\n- `vault`: Vault address\n- `amount`: Amount to write\n- `strike`: Strike price\n- `expiry`: Expiry timestamp\n- `premiumPerUnit`: Premium per unit\n- `minDeposit`: Minimum deposit amount\n- `maxDeposit`: Maximum deposit amount\n- `validUntil`: Valid until timestamp\n- `quoteId`: Quote ID\n- `signature`: Signature for the option\n\n## Usage\n\n```typescript\nimport { vincentAbility } from '@deriflow/derifun-ability';\n\n// Example: Create a new vault\nconst createVaultParams = {\n  operation: 'createVault',\n  factory: '0x...',\n  depositToken: '0x...',\n  conversionToken: '0x...',\n  premiumToken: '0x...',\n  strike: '1000000000000000000', // 1 ETH in wei\n  expiry: '1700000000', // Unix timestamp\n  name: 'My Option Vault',\n  symbol: 'MOV',\n  owner: '0x...',\n};\n\n// Example: Write an option\nconst writeOptionParams = {\n  operation: 'writeOption',\n  vault: '0x...',\n  amount: '1000000000000000000', // 1 ETH in wei\n  strike: '1000000000000000000',\n  expiry: '1700000000',\n  premiumPerUnit: '100000000000000000', // 0.1 ETH in wei\n  minDeposit: '1000000000000000000',\n  maxDeposit: '10000000000000000000',\n  validUntil: '1699999999',\n  quoteId: '12345',\n  signature: '0x...',\n};\n```\n\n## Error Handling\n\nThe ability includes comprehensive error handling for common scenarios:\n\n- Invalid addresses\n- Invalid amounts\n- Invalid timestamps\n- Insufficient balances\n- Invalid signatures\n- Vault not found\n- Quote already used\n- Vault expired\n\n## Development\n\n### Building\n\n```bash\nnx build derifun-ability\n```\n\n### Testing\n\n```bash\nnx test derifun-ability\n```\n\n### Linting\n\n```bash\nnx lint derifun-ability\n```\n\n### Type Checking\n\n```bash\nnx typecheck derifun-ability\n```\n\n## License\n\nMIT\n","readmeFilename":"README.md"}