diff --git a/CHANGELOG.md b/CHANGELOG.md index 514bd3b..7be1940 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,3 +9,11 @@ ##### Concordium account and identity creation - Updating default environment from Mainnet to vault initalization environment. + +### 1.0.2 (2025-03-19) + +##### Documentation updates + +- Enhanced README.md with comprehensive API documentation +- Added detailed examples for all controller methods +- Updated installation and usage instructions diff --git a/README.md b/README.md index f06c648..d987525 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,172 @@ # vault-concordium-controller -Concordium controller for Safle Vault + +[![npm version](https://badge.fury.io/js/%40getsafle%2Fvault-concordium-controller.svg)](https://badge.fury.io/js/%40getsafle%2Fvault-concordium-controller) +[![Discussion](https://img.shields.io/badge/discussion-on%20github-brightgreen)](https://github.com/getsafle/vault-concordium-controller/discussions) + +Concordium controller for Safle Vault - A module written in JavaScript for managing Concordium accounts, identity operations, and transactions in Safle Vault. + +## Installation + +``` +npm install --save @getsafle/vault-concordium-controller +``` + +## Initialize the Concordium Controller class + +```javascript +const { KeyringController, NETWORKS } = require('@getsafle/vault-concordium-controller'); + +const concordiumController = new KeyringController({ + // Optional configuration + mnemonic: 'your mnemonic here', // Optional, will generate new if not provided + network: 'Testnet', // Default is 'Testnet', can be 'Mainnet' + identityIndex: 0, // Default identity index + encryptor: { + // An optional object for defining encryption schemes + encrypt(password, object) { + return new Promise('encrypted!'); + }, + decrypt(password, encryptedString) { + return new Promise({ foo: 'bar' }); + }, + }, +}); +``` + +## Methods + +### Set Network + +```javascript +// Change between Testnet and Mainnet +await concordiumController.setNetwork('Mainnet'); +``` + +### Get Network Configuration + +```javascript +// Get current network configuration +const networkConfig = concordiumController.getNetworkConfig(); +``` + +### Identity Management + +#### Get Identity Providers + +```javascript +// Fetch list of available identity providers +const providers = await concordiumController.getIdentityProviders(); +``` + +#### Set Identity Provider + +```javascript +// Set the identity provider to use +await concordiumController.setIdentityProvider(provider); +``` + +#### Create Identity Request + +```javascript +// Create a new identity request +const identityRequest = await concordiumController.createIdentityRequest(); +``` + +#### Send Identity Request + +```javascript +// Send identity request to the provider +const redirectUrl = await concordiumController.sendIdentityRequest(identityRequest, 'your-redirect-uri'); +``` + +#### Retrieve Identity + +```javascript +// Retrieve the identity object after user completes verification +const identity = await concordiumController.retrieveIdentity(redirectUrl); +``` + +#### Initialize Identity + +```javascript +// Initialize identity for account creation +await concordiumController.initializeIdentity(identity); +``` + +#### Clear Identity Flow + +```javascript +// Clear current identity flow data +concordiumController.clearIdentityFlow(); +``` + +### Account Management + +#### Add Account + +```javascript +// Create a new account +const account = await concordiumController.addAccount(); +// Returns: { address: 'account-address' } +``` + +#### Get Accounts + +```javascript +// Get all accounts +const addresses = await concordiumController.getAccounts(); +``` + +#### Get Balance + +```javascript +// Get balance for an account +const { balance } = await concordiumController.getBalance('account-address'); +``` + +### Transaction Operations + +#### Create Transfer Transaction + +```javascript +// Create a transfer transaction +const transaction = await concordiumController.createTransferTransaction( + 'receiver-address', + 10, // Amount in CCD + 'sender-address' +); +``` + +#### Sign Transaction + +```javascript +// Sign a transaction +const signature = await concordiumController.signTransaction(transaction); +``` + +#### Send Transaction + +```javascript +// Send a signed transaction +const { transactionDetails } = await concordiumController.sendTransaction(transaction, signature); +``` + +### Recovery Operations + +#### Restore Identity + +```javascript +// Restore identity using seed phrase +const identity = await concordiumController.restoreIdentityDynamic(); +``` + +#### Restore Accounts + +```javascript +// Restore accounts from network +const accounts = await concordiumController.restoreAccounts(); +``` + +## License + +MIT diff --git a/package-lock.json b/package-lock.json index 84b6d14..94d0e4e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@getsafle/vault-concordium-controller", - "version": "1.0.1", + "version": "1.0.2", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@getsafle/vault-concordium-controller", - "version": "1.0.1", + "version": "1.0.2", "license": "MIT", "dependencies": { "@concordium/web-sdk": "^9.0.0", diff --git a/package.json b/package.json index 61a4f86..221eb51 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@getsafle/vault-concordium-controller", - "version": "1.0.1", + "version": "1.0.2", "description": "Concordium chain controller for Safle Vault", "main": "src/index.js", "scripts": {