0 purchases
polkadart keyring
Polkadart Keyring #
Polkadart Keyring is a manager for sr25519-based key pairs in the keyring. It provides a convenient interface to manage sr25519-based key pairs, allowing you to create key pairs from BIP39 mnemonics, add them to the keyring, retrieve key pairs by address or public key, and perform various operations on them.
Installation #
To use Polkadart Keyring in your Dart project, add it to your pubspec.yaml:
dependencies:
polkadart_keyring: ^0.3.2
copied to clipboard
Usage #
Creating KeyPairs from Mnemonic #
You can create a new [KeyPair] from a BIP39 mnemonic and optionally add it to the keyring. Here's an example:
final keyring = Keyring();
final mnemonic =
'moral movie very draw assault whisper awful rebuild speed purity repeat card';
final keyPair = await keyring.fromMnemonic(mnemonic);
copied to clipboard
Adding and Retrieving KeyPairs #
You can add and retrieve key pairs using the keyring:
final keyring = Keyring();
final keyPair1 = KeyPair.sr25519.fromSeed(
Uint8List.fromList('12345678901234567890123456789012'.codeUnits));
final keyPair2 = KeyPair.sr25519.fromSeed(Uint8List.fromList(hex.decode(
'9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60'));
// Add keyPair1 to keyring
keyring.add(keyPair1);
final address1 = keyPair1.address;
final address2 = keyPair2.address;
// Add keyPair2 to keyring
keyring.add(keyPair2);
final addresses = keyring.addresses;
copied to clipboard
Retrieving KeyPairs by PublicKey #
You can retrieve key pairs by their public keys:
final keyring = Keyring();
final keyPair1 = KeyPair.sr25519.fromSeed(
Uint8List.fromList('12345678901234567890123456789012'.codeUnits));
final publicKey1 = keyPair1.publicKey.bytes;
// Add keyPair1 to key
keyring.add(keyPair1);
final keyPair = keyring.getByPublicKey(publicKey1);
final nonExistentKeyPair = keyring.getByPublicKey([1, 2, 3]);
copied to clipboard
Removing KeyPairs #
You can remove key pairs from the keyring:
final keyring = Keyring();
final keyPair1 = KeyPair.sr25519.fromSeed(
Uint8List.fromList('12345678901234567890123456789012'.codeUnits));
// Add keyPair1 and keyPair2 to keyring
keyring.add(keyPair1);
keyring.add(keyPair2);
final address1 = keyPair1.address;
keyring.remove(address1);
final nonExistentKeyPair = keyring.getByAddress(address1);
copied to clipboard
Encoding and Decoding Addresses #
You can encode and decode addresses:
final keyring = Keyring();
final keyPair1 = KeyPair.sr25519.fromSeed(
Uint8List.fromList('12345678901234567890123456789012'.codeUnits));
final address = keyPair1.address;
final publicKey = keyPair1.publicKey.bytes;
// Encode the public key to an address
final encodedAddress = keyring.encodeAddress(publicKey);
final isAddressCorrect = encodedAddress == address;
// Decode the address to a public key
final decodedPublicKey = keyring.decodeAddress(address);
final isPublicKeyCorrect = decodedPublicKey == publicKey;
copied to clipboard
Setting and Getting SS58 Address Format #
You can set and get the SS58 address format used by the keyring:
final keyring = Keyring();
keyring.ss58Format = 42;
print(keyring.ss58Format);
copied to clipboard
Getting All Public Keys #
You can retrieve all public keys in the keyring:
final keyring = Keyring();
final keyPair1 = KeyPair.sr25519.fromSeed(
Uint8List.fromList('12345678901234567890123456789012'.codeUnits));
final keyPair2 = KeyPair.sr25519.fromSeed(Uint8List.fromList(hex.decode(
'9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60'));
keyring
..add(keyPair1)
..add(keyPair2);
final publicKeys = keyring.publicKeys; // [ List<int>, List<int> ]
copied to clipboard
Getting All Addresses #
You can retrieve all addresses in the keyring:
final keyring = Keyring();
final keyPair1 = KeyPair.sr25519.fromSeed(
Uint8List.fromList('12345678901234567890123456789012'.codeUnits));
final keyPair2 = KeyPair.sr25519.fromSeed(Uint8List.fromList(hex.decode(
'9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60'));
keyring
..add(keyPair1)
..add(keyPair2);
final addresses = keyring.addresses;
copied to clipboard
Getting All KeyPairs #
You can retrieve all key pairs in the keyring:
final keyring = Keyring();
final keyPair1 = KeyPair.sr25519.fromSeed(
Uint8List.fromList('12345678901234567890123456789012'.codeUnits));
final keyPair2 = KeyPair.sr25519.fromSeed(Uint8List.fromList(hex.decode(
'9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60'));
keyring
..add(keyPair1)
..add(keyPair2);
final allKeyPairs = keyring.all; // [ KeyPair, KeyPair ]
copied to clipboard
Removing All KeyPairs #
You can remove all key pairs from the keyring:
final keyring = Keyring();
final keyPair1 = KeyPair.sr25519.fromSeed(
Uint8List.fromList('12345678901234567890123456789012'.codeUnits));
final keyPair2 = KeyPair.sr25519.fromSeed(Uint8List.fromList(hex.decode(
'9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60'));
keyring
..add(keyPair1)
..add(keyPair2);
keyring.clear();
final isKeyringEmpty = keyring.all.isEmpty;
copied to clipboard
Signing and Verifying #
You can sign and verify messages:
final keyring = Keyring();
final keyPair2 = KeyPair.sr25519.fromSeed(Uint8List.fromList(hex.decode(
'9d61b19deffd5a60ba844af492ec2cc44449c5697b326919703bac031cae7f60'));
keyring.add(keyPair2);
final kp = keyring.getByPublicKey(keyPair2.publicKey.bytes);
final signature = kp.sign(message);
final isVerified = kp.verify(message, signature);
copied to clipboard
For personal and professional use. You cannot resell or redistribute these repositories in their original state.
There are no reviews.