Jlm update for ethereum pair addition (#969)

* added gerald test address

* allow adding 20 address in createPair

* lint

* move logic to eth specific function

* fix typo

* Update packages/keyring/src/pair/index.ts

Co-authored-by: Jaco <jacogr@gmail.com>

* re establish right encoding

* Update packages/keyring/src/pair/index.ts

Co-authored-by: Jaco <jacogr@gmail.com>

* Update packages/keyring/src/pair/index.ts

Co-authored-by: Jaco <jacogr@gmail.com>

Co-authored-by: Jaco <jacogr@gmail.com>
This commit is contained in:
Antoine Estienne
2021-05-07 14:01:39 +02:00
committed by GitHub
co-authored by Jaco
parent 7f57d05281
commit 512ae89fea
4 changed files with 19 additions and 7 deletions
+3 -2
View File
@@ -319,6 +319,7 @@ describe('keypair', (): void => {
const PHRASE = 'seed sock milk update focus rotate barely fade car face mechanic mercy' + '/m/44\'/60\'/0\'/0/0';
const PRIV_KEY_ONE = '0x070dc3117300011918e26b02176945cc15c3d548cf49fd8418d97f93af699e46';
const ETH_ADDRESS_ONE = '0x31ea8795EE32D782C8ff41a5C68Dcbf0F5B27f6d';
const ETH_ADDRESS_TWO = '0x4119b2e6c3Cb618F4f0B93ac77f9BeeC7FF02887';
let keyring: Keyring;
@@ -396,13 +397,13 @@ describe('keypair', (): void => {
);
expect(pair.publicKey).toEqual(hexToU8a('0x03b9dc646dd71118e5f7fda681ad9eca36eb3ee96f344f582fbe7b5bcdebb13077'));
expect(pair.address).toEqual('0x4119b2e6c3Cb618F4f0B93ac77f9BeeC7FF02887');
expect(pair.address).toEqual(ETH_ADDRESS_TWO);
pair.decodePkcs8('password');
expect(pair.isLocked).toBe(false);
expect(pair.publicKey).toEqual(hexToU8a('0x03b9dc646dd71118e5f7fda681ad9eca36eb3ee96f344f582fbe7b5bcdebb13077'));
expect(pair.address).toBe('0x4119b2e6c3Cb618F4f0B93ac77f9BeeC7FF02887');
expect(pair.address).toBe(ETH_ADDRESS_TWO);
});
it('allows for signing/verification', (): void => {
+11 -2
View File
@@ -10,6 +10,8 @@ import { createPair } from '.';
const keyring = createTestPairs({ type: 'ed25519' }, false);
const TEST_ADDRESS = '0x4119b2e6c3Cb618F4f0B93ac77f9BeeC7FF02887';
describe('pair', (): void => {
beforeEach(async (): Promise<void> => {
await cryptoWaitReady();
@@ -159,8 +161,15 @@ describe('pair', (): void => {
it('has a valid address from a known public', (): void => {
const pair = createPair({ toSS58, type: 'ethereum' }, { publicKey: hexToU8a('0x03b9dc646dd71118e5f7fda681ad9eca36eb3ee96f344f582fbe7b5bcdebb13077') });
expect(pair.address).toEqual('0x4119b2e6c3Cb618F4f0B93ac77f9BeeC7FF02887');
expect(pair.addressRaw).toEqual(hexToU8a('0x4119b2e6c3Cb618F4f0B93ac77f9BeeC7FF02887'));
expect(pair.address).toEqual(TEST_ADDRESS);
expect(pair.addressRaw).toEqual(hexToU8a(TEST_ADDRESS));
});
it('has a valid address from a known ethereum address (20 length)', (): void => {
const pair = createPair({ toSS58, type: 'ethereum' }, { publicKey: new Uint8Array([75, 32, 205, 127, 248, 119, 52, 31, 46, 171, 170, 23, 158, 23, 46, 108, 95, 180, 186, 168]), secretKey: new Uint8Array([]) });
expect(pair.address.toLowerCase()).toEqual('0x4b20cd7ff877341f2eabaa179e172e6c5fb4baa8');
expect(pair.addressRaw).toEqual(hexToU8a('0x4b20cd7ff877341f2eabaa179e172e6c5fb4baa8'));
});
it('converts to json', (): void => {
+1 -1
View File
@@ -44,7 +44,7 @@ const TYPE_SIGNATURE = {
const TYPE_ADDRESS = {
ecdsa: (p: Uint8Array) => p.length > 32 ? blake2AsU8a(p) : p,
ed25519: (p: Uint8Array) => p,
ethereum: (p: Uint8Array) => keccakAsU8a(secp256k1Expand(p)),
ethereum: (p: Uint8Array) => p.length === 20 ? p : keccakAsU8a(secp256k1Expand(p)),
sr25519: (p: Uint8Array) => p
};
+4 -2
View File
@@ -7,6 +7,8 @@ import { cryptoWaitReady } from '@polkadot/util-crypto';
import { createTestPairs } from './testingPairs';
import Keyring from '.';
const TEST_ADD = '0xf24FF3a9CF04c71Dbc94D0b566f7A27B94566cac';
describe('testingPairs', (): void => {
beforeEach(async (): Promise<void> => {
await cryptoWaitReady();
@@ -33,7 +35,7 @@ describe('testingPairs', (): void => {
it('has the correct address for Alith (Eth)', (): void => {
expect(
createTestPairs({ type: 'ethereum' }).Alith.address
).toEqual('0xf24FF3a9CF04c71Dbc94D0b566f7A27B94566cac');
).toEqual(TEST_ADD);
});
it('has the correct address for Alith (Eth), same as obtained by createFromUri', (): void => {
@@ -42,7 +44,7 @@ describe('testingPairs', (): void => {
expect(
pair && pair.address
).toEqual('0xf24FF3a9CF04c71Dbc94D0b566f7A27B94566cac');
).toEqual(TEST_ADD);
});
it('checks eth test addresses', (): void => {