{"_id":"@ahumblebuilder/vincent-ability-options","name":"@ahumblebuilder/vincent-ability-options","dist-tags":{"latest":"0.0.1"},"versions":{"0.0.1":{"name":"@ahumblebuilder/vincent-ability-options","version":"0.0.1","description":"A Vincent ability for options contract operations (writeOption and redeem)","main":"./dist/src/index.js","module":"./dist/src/index.js","types":"./dist/src/index.d.ts","scripts":{"build":"tsc","prepublishOnly":"npm run 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":{"typescript":"5.8.3","@types/node":"20"},"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/ahumblebuilder/vincent-ability-options.git"},"keywords":["vincent","lit-protocol","ability","options","writeOption","redeem","blockchain","ethereum"],"author":{"name":"ahumblebuilder","email":"ahumblebuilder@gmail.com"},"license":"MIT","bugs":{"url":"https://github.com/ahumblebuilder/vincent-ability-options/issues"},"homepage":"https://github.com/ahumblebuilder/vincent-ability-options#readme","_id":"@ahumblebuilder/vincent-ability-options@0.0.1","_nodeVersion":"22.20.0","_npmVersion":"8.12.1","dist":{"integrity":"sha512-pYt7x4fvhbGrPDd9B5pd2M1NHTInkK9XcGjFWjjqnD7LpUV2fO/u9JNDxoUazYC4GKFAOo2hUTlw6UodtQRjvw==","shasum":"8e0d11f5f9be1824058837ed1240894d37fbe41f","tarball":"https://registry.npmjs.org/@ahumblebuilder/vincent-ability-options/-/vincent-ability-options-0.0.1.tgz","fileCount":14,"unpackedSize":39909,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQCeEhKFI/ez5dU1hcGQwIx2FzktOVXbM8JU3O1eA9UyBAIgNopN/25FdINQchwaR4te36mtEtFUltVQnMmjlFpEE48="}]},"_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/vincent-ability-options_0.0.1_1761159916152_0.4122594529082786"},"_hasShrinkwrap":false}},"time":{"created":"2025-10-22T19:05:16.054Z","0.0.1":"2025-10-22T19:05:16.367Z","modified":"2025-10-22T19:05:16.662Z"},"maintainers":[{"name":"ahumblebuilder","email":"ahumblebuilder@gmail.com"}],"description":"A Vincent ability for options contract operations (writeOption and redeem)","homepage":"https://github.com/ahumblebuilder/vincent-ability-options#readme","keywords":["vincent","lit-protocol","ability","options","writeOption","redeem","blockchain","ethereum"],"repository":{"type":"git","url":"git+https://github.com/ahumblebuilder/vincent-ability-options.git"},"author":{"name":"ahumblebuilder","email":"ahumblebuilder@gmail.com"},"bugs":{"url":"https://github.com/ahumblebuilder/vincent-ability-options/issues"},"license":"MIT","readme":"# Vincent Options Ability\r\n\r\nA Vincent/Lit Protocol ability for options contract operations including `writeOption` and `redeem` functions.\r\n\r\n## Overview\r\n\r\nThis package provides a Vincent ability that allows users to interact with options contracts by writing options and redeeming them after expiry. The ability supports both operations with comprehensive validation and error handling.\r\n\r\n## Features\r\n\r\n- **Write Options**: Create new options with deposit tokens and receive premium\r\n- **Redeem Options**: Redeem options after expiry to receive pro-rata share of vault balances\r\n- **Validation**: Comprehensive parameter validation for all operations\r\n- **Policy Support**: Integrates with Vincent policies for access control\r\n- **Type Safety**: Full TypeScript support with Zod schema validation\r\n\r\n## Installation\r\n\r\n```bash\r\nnpm install @ahumblebuilder/vincent-ability-options\r\n```\r\n\r\n## Usage\r\n\r\n### Basic Usage\r\n\r\n```typescript\r\nimport { vincentAbility } from '@ahumblebuilder/vincent-ability-options';\r\n\r\n// The ability is ready to be used with Vincent\r\n```\r\n\r\n### Ability Parameters\r\n\r\nThe ability accepts two types of operations:\r\n\r\n#### WriteOption Parameters\r\n\r\n```typescript\r\ninterface WriteOptionParams {\r\n  action: 'writeOption';\r\n  contractAddress: string;     // Options contract address\r\n  depositToken: string;         // Token to deposit (e.g., WETH)\r\n  amount: string;              // Amount to deposit\r\n  strike: string;              // Strike price\r\n  expiry: number;              // Expiry timestamp\r\n  premiumPerUnit: string;      // Premium per unit\r\n  minDeposit: string;         // Minimum deposit amount\r\n  maxDeposit: string;         // Maximum deposit amount\r\n  validUntil: number;         // Signature validity timestamp\r\n  signature: string;          // Signature for the terms\r\n  rpcUrl?: string;           // Optional RPC URL\r\n}\r\n```\r\n\r\n#### Redeem Parameters\r\n\r\n```typescript\r\ninterface RedeemParams {\r\n  action: 'redeem';\r\n  contractAddress: string;     // Options contract address\r\n  rpcUrl?: string;           // Optional RPC URL\r\n}\r\n```\r\n\r\n### Example Usage\r\n\r\n#### Writing an Option\r\n\r\n```typescript\r\nconst writeOptionParams = {\r\n  action: 'writeOption' as const,\r\n  contractAddress: '0x742d35Cc6634C0532925a3b8D4C9db96C4b4d8b6',\r\n  depositToken: '0xA0b86a33E6441b8C4C8C0C8C0C8C0C8C0C8C0C8C', // WETH\r\n  amount: '1.0', // 1 WETH\r\n  strike: '2000', // $2000 strike\r\n  expiry: 1735689600, // Jan 1, 2025\r\n  premiumPerUnit: '0.05', // 5% premium\r\n  minDeposit: '0.1',\r\n  maxDeposit: '10.0',\r\n  validUntil: 1733097600, // Dec 1, 2024\r\n  signature: '0x1234...', // Valid signature\r\n};\r\n```\r\n\r\n#### Redeeming Options\r\n\r\n```typescript\r\nconst redeemParams = {\r\n  action: 'redeem' as const,\r\n  contractAddress: '0x742d35Cc6634C0532925a3b8D4C9db96C4b4d8b6',\r\n};\r\n```\r\n\r\n## Contract Integration\r\n\r\nThis ability calls the following contract methods:\r\n\r\n### writeOption\r\n\r\n```solidity\r\nfunction writeOption(\r\n    address _depositToken,\r\n    uint256 amount,\r\n    uint256 _strike,\r\n    uint256 _expiry,\r\n    uint256 premiumPerUnit,\r\n    uint256 minDeposit,\r\n    uint256 maxDeposit,\r\n    uint256 validUntil,\r\n    bytes calldata signature\r\n) external;\r\n```\r\n\r\n### redeem\r\n\r\n```solidity\r\nfunction redeem() external;\r\n```\r\n\r\n## Vincent Integration\r\n\r\nThis ability integrates with the Vincent ecosystem:\r\n\r\n- **Policies**: Supports Vincent policies for access control\r\n- **Delegation**: Works with PKP (Programmable Key Pairs) delegation\r\n- **Validation**: Comprehensive pre-execution validation\r\n- **Events**: Emits contract events for writeOption and redeem operations\r\n\r\n## Error Handling\r\n\r\nThe ability includes comprehensive error handling for:\r\n\r\n- Invalid contract addresses\r\n- Invalid deposit tokens\r\n- Invalid amounts and limits\r\n- Invalid strike prices and expiry times\r\n- Invalid signatures\r\n- Expired options\r\n- Insufficient balances\r\n\r\n## Development\r\n\r\n### Building\r\n\r\n```bash\r\nnpm run build\r\n```\r\n\r\n### Publishing\r\n\r\n```bash\r\nnpm publish\r\n```\r\n\r\n## License\r\n\r\nMIT\r\n\r\n## Support\r\n\r\nFor issues and questions, please open an issue on the GitHub repository.\r\n","readmeFilename":"README.md","_rev":"1-7e5fc9ecf402dd563199b3e9fc2c64a7"}