Concordium controller for Safle Vault - A module written in JavaScript for managing Concordium accounts, identity operations, and transactions in Safle Vault.
npm install --save @getsafle/vault-concordium-controller
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' });
},
},
});// Change between Testnet and Mainnet
await concordiumController.setNetwork('Mainnet');// Get current network configuration
const networkConfig = concordiumController.getNetworkConfig();// Fetch list of available identity providers
const providers = await concordiumController.getIdentityProviders();// Set the identity provider to use
await concordiumController.setIdentityProvider(provider);// Create a new identity request
const identityRequest = await concordiumController.createIdentityRequest();// Send identity request to the provider
const redirectUrl = await concordiumController.sendIdentityRequest(identityRequest, 'your-redirect-uri');// Retrieve the identity object after user completes verification
const identity = await concordiumController.retrieveIdentity(redirectUrl);// Initialize identity for account creation
await concordiumController.initializeIdentity(identity);// Clear current identity flow data
concordiumController.clearIdentityFlow();// Create a new account
const account = await concordiumController.addAccount();
// Returns: { address: 'account-address' }// Get all accounts
const addresses = await concordiumController.getAccounts();// Get balance for an account
const { balance } = await concordiumController.getBalance('account-address');// Create a transfer transaction
const transaction = await concordiumController.createTransferTransaction(
'receiver-address',
10, // Amount in CCD
'sender-address'
);// Sign a transaction
const signature = await concordiumController.signTransaction(transaction);// Send a signed transaction
const { transactionDetails } = await concordiumController.sendTransaction(transaction, signature);// Restore identity using seed phrase
const identity = await concordiumController.restoreIdentityDynamic();// Restore accounts from network
const accounts = await concordiumController.restoreAccounts();MIT