Skip to content

Commit

Permalink
refactor(address): remove compressed parameter from address module, a…
Browse files Browse the repository at this point in the history
…dd default configuration explic
  • Loading branch information
Keith-CY committed May 23, 2019
1 parent 222d48c commit e3e83a1
Show file tree
Hide file tree
Showing 2 changed files with 41 additions and 11 deletions.
32 changes: 27 additions & 5 deletions packages/ckb-sdk-address/__tests__/ckb-sdk-address.test.js
Original file line number Diff line number Diff line change
@@ -1,27 +1,49 @@
const Address = require('../lib').default

describe('ckb-sdk-address', () => {
it('generate address', () => {
it('generate address with default configuration', () => {
const fixture = {
privateKey: 'e79f3207ea4980b7fed79956d5934249ceac4751a4fae01a0f7c4a96884bc4e3',
address: 'ckt1q9gry5zgxmpjnmtrp4kww5r39frh2sm89tdt2l6v234ygf',
}
const address = new Address(fixture.privateKey)
expect(address.value).toBe(fixture.address)
})

it('generate address specified prefix', () => {
const fixture = {
privateKey: 'e79f3207ea4980b7fed79956d5934249ceac4751a4fae01a0f7c4a96884bc4e3',
prefix: 'ckt',
address: 'ckt1q9gry5zgxmpjnmtrp4kww5r39frh2sm89tdt2l6v234ygf',
}
const address = new Address(fixture.privateKey, {
compressed: true,
prefix: fixture.prefix,
})
expect(address.value).toBe(fixture.address)
})

it('generate address with default compressed which should be true', () => {
it('generate address specified type of 0x01', () => {
const fixture = {
privateKey: 'e79f3207ea4980b7fed79956d5934249ceac4751a4fae01a0f7c4a96884bc4e3',
prefix: 'ckt',
type: '0x01',
address: 'ckt1q9gry5zgxmpjnmtrp4kww5r39frh2sm89tdt2l6v234ygf',
}
const address = new Address(fixture.privateKey, {
prefix: fixture.prefix,
type: fixture.type,
})
expect(address.value).toBe(fixture.address)
})

it('generate address specified type 0x01 and binIdx of P2PH', () => {
const fixture = {
privateKey: 'e79f3207ea4980b7fed79956d5934249ceac4751a4fae01a0f7c4a96884bc4e3',
type: '0x01',
binIdx: 'P2PH',
address: 'ckt1q9gry5zgxmpjnmtrp4kww5r39frh2sm89tdt2l6v234ygf',
}
const address = new Address(fixture.privateKey, {
type: fixture.type,
binIdx: fixture.binIdx,
})
expect(address.value).toBe(fixture.address)
})
Expand Down
20 changes: 14 additions & 6 deletions packages/ckb-sdk-address/src/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,21 +7,29 @@ class Address extends ECPair {
public constructor(
sk: Uint8Array | string,
{
compressed = true,
addressAlgorithm = pubkeyToAddress,
...addressOptions
prefix = AddressPrefix.Testnet,
type = AddressType.BinIdx,
binIdx = AddressBinIdx.P2PH,
}: Options &
Partial<{
addressAlgorithm: Function
prefix: AddressPrefix
type: AddressType
binIdx: AddressBinIdx
}>
}> = {
addressAlgorithm: pubkeyToAddress,
prefix: AddressPrefix.Testnet,
type: AddressType.BinIdx,
binIdx: AddressBinIdx.P2PH,
}
) {
super(typeof sk === 'string' ? hexToBytes(sk) : sk, {
compressed,
super(typeof sk === 'string' ? hexToBytes(sk) : sk)
this.value = addressAlgorithm(this.publicKey, {
prefix,
type,
binIdx,
})
this.value = addressAlgorithm(this.publicKey, addressOptions)
}
}

Expand Down

0 comments on commit e3e83a1

Please sign in to comment.