1.0.2 • Published 7 months ago

@getsafle/vault-concordium-controller v1.0.2

Weekly downloads
-
License
MIT
Repository
github
Last release
7 months ago

vault-concordium-controller

npm version Discussion

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

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

// Change between Testnet and Mainnet
await concordiumController.setNetwork('Mainnet');

Get Network Configuration

// Get current network configuration
const networkConfig = concordiumController.getNetworkConfig();

Identity Management

Get Identity Providers

// Fetch list of available identity providers
const providers = await concordiumController.getIdentityProviders();

Set Identity Provider

// Set the identity provider to use
await concordiumController.setIdentityProvider(provider);

Create Identity Request

// Create a new identity request
const identityRequest = await concordiumController.createIdentityRequest();

Send Identity Request

// Send identity request to the provider
const redirectUrl = await concordiumController.sendIdentityRequest(identityRequest, 'your-redirect-uri');

Retrieve Identity

// Retrieve the identity object after user completes verification
const identity = await concordiumController.retrieveIdentity(redirectUrl);

Initialize Identity

// Initialize identity for account creation
await concordiumController.initializeIdentity(identity);

Clear Identity Flow

// Clear current identity flow data
concordiumController.clearIdentityFlow();

Account Management

Add Account

// Create a new account
const account = await concordiumController.addAccount();
// Returns: { address: 'account-address' }

Get Accounts

// Get all accounts
const addresses = await concordiumController.getAccounts();

Get Balance

// Get balance for an account
const { balance } = await concordiumController.getBalance('account-address');

Transaction Operations

Create Transfer Transaction

// Create a transfer transaction
const transaction = await concordiumController.createTransferTransaction(
  'receiver-address',
  10, // Amount in CCD
  'sender-address'
);

Sign Transaction

// Sign a transaction
const signature = await concordiumController.signTransaction(transaction);

Send Transaction

// Send a signed transaction
const { transactionDetails } = await concordiumController.sendTransaction(transaction, signature);

Recovery Operations

Restore Identity

// Restore identity using seed phrase
const identity = await concordiumController.restoreIdentityDynamic();

Restore Accounts

// Restore accounts from network
const accounts = await concordiumController.restoreAccounts();

License

MIT

1.0.2

7 months ago

1.0.1

7 months ago

1.0.0

7 months ago