cip sub-class
The following readme describes all the functions and their parameters exposed by the cip
class of the Stakehouse SDK.
generateAESCredentials function
This function allows users to generate hybrid AES credentials.
Using generateAESCredentials function
await sdk.cip.generateAESCredentials();
Return Parameter
Hybrid public key and hybrid private key
formAESKeystore function
This function allows users to create hybrid keystore protected by their password.
Input Parameters
hybridPrivateKey: hybrid private key to form the keystore
password: password to protect the keystore
Using formAESKeystore function
await sdk.cip.formAESKeystore(hybridPrivateKey, password);
Return Parameter
Returns the keystore
formBLSKeystore function
This function allows users to create a BLS keystore, protected by a password, for their BLS signing key.
Input Parameters
blsSigningKey: BLS singing key to form the keystore
password: password to protect the keystore
Using formBLSKeystore function
await sdk.cip.formBLSKeystore(blsSigningKey, password);
Return Parameter
Returns the keystore
unlockBLSKeystore function
This function allows users to unlock their BLS keystore and get the BLS private key and public key.
Input Parameters
keystore: BLS keystore
password: password of BLS Keystore
Using unlockBLSKeystore function
await sdk.cip.unlockBLSKeystore(keystore, password);
Return Parameter
Returns the BLS private key and public key
validateBLSKeystore function
This function allows users to validate the BLS keystore.
Input Parameters
keystore: BLS keystore
password: password of BLS Keystore
blsPublicKey: BLS Public Key
Using validateBLSKeystore function
await sdk.cip.validateBLSKeystore(keystore, password, blsPublicKey);
Return Parameter
Returns true
if the provided BLS public key matches the public key of the BLS keystore. If the password is incorrect, it throws error.
unlockAESPrivateKey function
This function allows users to unlock AES keystore only if the BLS public key is associated with the AES keystore.
Input Parameters
keystore: AES keystore
password: password of AES Keystore
blsPublicKey: BLS Public Key
Using unlockAESPrivateKey function
await sdk.cip.unlockAESPrivateKey(keystore, password, blsPublicKey);
Return Parameter
Returns the AES private key.
formCIPCiphertext function
This function allows users to form ciphertext for CIP procedure.
Input Parameters
blsPublicKey: BLS Public Key
Using formCIPCiphertext function
await sdk.cip.formCIPCiphertext(blsPrivateKey)
Return Parameter
Returns ciphertext.
reEncrypt function
This function allows users to form a new ciphertext and encrypt the signing key for the Ethereum network.
Input Parameters
blsPublicKey: BLS Public Key of the KNOT
stakehouseAddress: Stakehouse address of the KNOT
blsKeystore: BLS keystore associated with the blsPublicKey
blsKeystorePassword: password of the BLS keystore
Using reEncrypt function
await sdk.cip.reEncrypt(blsPublicKey, stakehouseAddress, blsKeystore, blsKeystorePassword);
Return Parameter
Returns transaction data.
isReEncryptionCompleted function
This function allows users to know the status of re-encryption.
Input Parameters
blsPublicKey: BLS Public Key of the KNOT
Using isReEncryptionCompleted function
await sdk.cip.isReEncryptionCompleted(blsPublicKey);
Return Parameter
Returns true
if status is completed, otherwise false
.
applyForDecryption function
This function allows users to apply for the decryption procedure.
Input Parameters
blsPublicKey: BLS Public Key of the KNOT
stakehouseAddress: Stakehouse address of the KNOT
aesPublicKey: AES public key
Using applyForDecryption function
await sdk.cip.applyForDecryption(blsPublicKey, stakehouseAddress, aesPublicKey);
Return Parameter
Returns the transaction data.
getRequestAvailabilityBlock function
This function allows users to get the block at which request can be made for the specific BLS public key.
Input Parameters
blsPublicKey: BLS Public Key of the KNOT
Using getRequestAvailabilityBlock function
await sdk.cip.getRequestAvailabilityBlock(blsPublicKey);
Return Parameter
Returns the block number in case of delay, 0
otherwise.
getPartialDecryptionPieces function
This function allows users to fetch partial decryption pieces.
Input Parameters
blsPublicKey: BLS Public Key of the KNOT
aesPublicKey: AES public key
Using getPartialDecryptionPieces function
await sdk.cip.getPartialDecryptionPieces(blsPublicKey, aesPublicKey);
Return Parameter
Returns all the decryption pieces.
getAllGuardians function
This function allows the users to get all the guardians of the CIP procedure.
Using getAllGuardians function
await sdk.cip.getAllGuardians();
Return Parameter
Returns the list of guardians
getThreshold function
This function allows users to get the threshold number of guardians required to carry out a successful CIP procedure.
Using getThreshold function
await sdk.cip.getThreshold();
Return Parameter
Returns the threshold.
getAESPublicKeyfromPrivateKey function
This function allows the users to derive hybrid public key from their hybrid private key.
Input Parameters
hybridPrivateKey: hybrid private key
Using getAESPublicKeyfromPrivateKey function
await sdk.cip.getAESPublicKeyfromPrivateKey(hybridPrivateKey);
Return Parameter
Returns the AES hybrid key
aggregateSharedPrivateKeys function
This function allows the users to collect the aggregated partial decryption solutions.
Input Parameters
blsPublicKey: BLS Public Key of the KNOT
hybridPrivateKey: hybrid private key
Using aggregateSharedPrivateKeys function
await sdk.cip.aggregateSharedPrivateKeys(hybridPrivateKey, blsPublicKey);
Return Parameter
Returns the decrypted data, or false
in case of error.
getDecryptionState function
This function allows the users to track the stages of decryption process.
Input Parameters
blsPublicKey: BLS Public Key of the KNOT
Using getDecryptionState function
await sdk.cip.getDecryptionState(blsPublicKey);
Return Parameter
Returns 4
if decryption has completed, 3
if in process, 2
if request available, and 1
if re-encryption needed.
getSafeBox function
This function allows users to get contract instance of the Safe Box.
Using getSafeBox function
await sdk.cip.getSafeBox();
Return Parameter
Returns the contract instance.
decryptionEligibilityChecks function
This function allows users to check the eligibility for decryption.
Input Parameters
blsPublicKey: BLS Public Key of the KNOT
stakehouseAddress: Stakehouse address of the KNOT (Optional parameter).
safeBox: safeBox contract instance (Optional parameter).
Using decryptionEligibilityChecks function
await sdk.cip.decryptionEligibilityChecks(blsPublicKey, stakehouseAddress=null, safeBox=null);
Return Parameter
Returns true
if eligible, otherwise throws error