Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
172 changes: 171 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -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
4 changes: 2 additions & 2 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -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": {
Expand Down
Loading