mirror of
https://github.com/cosmos/cosmjs.git
synced 2025-03-10 21:49:15 +00:00
Rename launchpadledger (#1056)
* Rename LaunchpadLedger to LedgerConnector * Added changelog entry * Update CHANGELOG.md Co-authored-by: Simon Warta <2603011+webmaster128@users.noreply.github.com> * Rename property ledger to connector Co-authored-by: Simon Warta <2603011+webmaster128@users.noreply.github.com>
This commit is contained in:
parent
48aeb1ddeb
commit
9b80dff493
@ -36,8 +36,10 @@ and this project adheres to
|
|||||||
you if multiple different protobuf type URLs map to the same Amino type
|
you if multiple different protobuf type URLs map to the same Amino type
|
||||||
identifier which should not be the case anyways.
|
identifier which should not be the case anyways.
|
||||||
- @cosmjs/stargate: Added support for slashing queries ([#927])
|
- @cosmjs/stargate: Added support for slashing queries ([#927])
|
||||||
|
- @cosmjs/ledger-amino: Renamed `LaunchpadLedger` to `LedgerConnector` ([#955])
|
||||||
|
|
||||||
[#927]: https://github.com/cosmos/cosmjs/issues/927
|
[#927]: https://github.com/cosmos/cosmjs/issues/927
|
||||||
|
[#955]: https://github.com/cosmos/cosmjs/issues/955
|
||||||
[#989]: https://github.com/cosmos/cosmjs/issues/989
|
[#989]: https://github.com/cosmos/cosmjs/issues/989
|
||||||
[#994]: https://github.com/cosmos/cosmjs/issues/994
|
[#994]: https://github.com/cosmos/cosmjs/issues/994
|
||||||
[#1011]: https://github.com/cosmos/cosmjs/issues/1011
|
[#1011]: https://github.com/cosmos/cosmjs/issues/1011
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
export { AddressAndPubkey, LaunchpadLedger } from "./launchpadledger";
|
export { AddressAndPubkey, LedgerConnector } from "./ledgerconnector";
|
||||||
export { LedgerSigner } from "./ledgersigner";
|
export { LedgerSigner } from "./ledgersigner";
|
||||||
|
@ -28,7 +28,7 @@ const cosmosBech32Prefix = "cosmos";
|
|||||||
const cosmosLedgerAppName = "Cosmos";
|
const cosmosLedgerAppName = "Cosmos";
|
||||||
const requiredCosmosAppVersion = "1.5.3";
|
const requiredCosmosAppVersion = "1.5.3";
|
||||||
|
|
||||||
export interface LaunchpadLedgerOptions {
|
export interface LedgerConnectorOptions {
|
||||||
readonly hdPaths?: readonly HdPath[];
|
readonly hdPaths?: readonly HdPath[];
|
||||||
readonly prefix?: string;
|
readonly prefix?: string;
|
||||||
readonly testModeAllowed?: boolean;
|
readonly testModeAllowed?: boolean;
|
||||||
@ -57,7 +57,7 @@ export interface AddressAndPubkey {
|
|||||||
readonly pubkey: Secp256k1Pubkey;
|
readonly pubkey: Secp256k1Pubkey;
|
||||||
}
|
}
|
||||||
|
|
||||||
export class LaunchpadLedger {
|
export class LedgerConnector {
|
||||||
private readonly testModeAllowed: boolean;
|
private readonly testModeAllowed: boolean;
|
||||||
private readonly hdPaths: readonly HdPath[];
|
private readonly hdPaths: readonly HdPath[];
|
||||||
private readonly prefix: string;
|
private readonly prefix: string;
|
||||||
@ -65,7 +65,7 @@ export class LaunchpadLedger {
|
|||||||
private readonly minLedgerAppVersion: string;
|
private readonly minLedgerAppVersion: string;
|
||||||
private readonly app: CosmosApp;
|
private readonly app: CosmosApp;
|
||||||
|
|
||||||
public constructor(transport: Transport, options: LaunchpadLedgerOptions = {}) {
|
public constructor(transport: Transport, options: LedgerConnectorOptions = {}) {
|
||||||
const defaultOptions = {
|
const defaultOptions = {
|
||||||
hdPaths: [cosmosHdPath],
|
hdPaths: [cosmosHdPath],
|
||||||
prefix: cosmosBech32Prefix,
|
prefix: cosmosBech32Prefix,
|
@ -10,25 +10,25 @@ import {
|
|||||||
import { HdPath } from "@cosmjs/crypto";
|
import { HdPath } from "@cosmjs/crypto";
|
||||||
import Transport from "@ledgerhq/hw-transport";
|
import Transport from "@ledgerhq/hw-transport";
|
||||||
|
|
||||||
import { AddressAndPubkey, LaunchpadLedger, LaunchpadLedgerOptions } from "./launchpadledger";
|
import { AddressAndPubkey, LedgerConnector, LedgerConnectorOptions } from "./ledgerconnector";
|
||||||
|
|
||||||
export class LedgerSigner implements OfflineAminoSigner {
|
export class LedgerSigner implements OfflineAminoSigner {
|
||||||
private readonly ledger: LaunchpadLedger;
|
private readonly connector: LedgerConnector;
|
||||||
private readonly hdPaths: readonly HdPath[];
|
private readonly hdPaths: readonly HdPath[];
|
||||||
private accounts?: readonly AccountData[];
|
private accounts?: readonly AccountData[];
|
||||||
|
|
||||||
public constructor(transport: Transport, options: LaunchpadLedgerOptions = {}) {
|
public constructor(transport: Transport, options: LedgerConnectorOptions = {}) {
|
||||||
this.hdPaths = options.hdPaths || [makeCosmoshubPath(0)];
|
this.hdPaths = options.hdPaths || [makeCosmoshubPath(0)];
|
||||||
this.ledger = new LaunchpadLedger(transport, options);
|
this.connector = new LedgerConnector(transport, options);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async getAccounts(): Promise<readonly AccountData[]> {
|
public async getAccounts(): Promise<readonly AccountData[]> {
|
||||||
if (!this.accounts) {
|
if (!this.accounts) {
|
||||||
const pubkeys = await this.ledger.getPubkeys();
|
const pubkeys = await this.connector.getPubkeys();
|
||||||
this.accounts = await Promise.all(
|
this.accounts = await Promise.all(
|
||||||
pubkeys.map(async (pubkey) => ({
|
pubkeys.map(async (pubkey) => ({
|
||||||
algo: "secp256k1" as const,
|
algo: "secp256k1" as const,
|
||||||
address: await this.ledger.getCosmosAddress(pubkey),
|
address: await this.connector.getCosmosAddress(pubkey),
|
||||||
pubkey: pubkey,
|
pubkey: pubkey,
|
||||||
})),
|
})),
|
||||||
);
|
);
|
||||||
@ -46,7 +46,7 @@ export class LedgerSigner implements OfflineAminoSigner {
|
|||||||
* @param path The HD path to show the address for. If unset, this is the first account.
|
* @param path The HD path to show the address for. If unset, this is the first account.
|
||||||
*/
|
*/
|
||||||
public async showAddress(path?: HdPath): Promise<AddressAndPubkey> {
|
public async showAddress(path?: HdPath): Promise<AddressAndPubkey> {
|
||||||
return this.ledger.showAddress(path);
|
return this.connector.showAddress(path);
|
||||||
}
|
}
|
||||||
|
|
||||||
public async signAmino(signerAddress: string, signDoc: StdSignDoc): Promise<AminoSignResponse> {
|
public async signAmino(signerAddress: string, signDoc: StdSignDoc): Promise<AminoSignResponse> {
|
||||||
@ -60,7 +60,7 @@ export class LedgerSigner implements OfflineAminoSigner {
|
|||||||
const message = serializeSignDoc(signDoc);
|
const message = serializeSignDoc(signDoc);
|
||||||
const accountForAddress = accounts[accountIndex];
|
const accountForAddress = accounts[accountIndex];
|
||||||
const hdPath = this.hdPaths[accountIndex];
|
const hdPath = this.hdPaths[accountIndex];
|
||||||
const signature = await this.ledger.sign(message, hdPath);
|
const signature = await this.connector.sign(message, hdPath);
|
||||||
return {
|
return {
|
||||||
signed: signDoc,
|
signed: signDoc,
|
||||||
signature: encodeSecp256k1Signature(accountForAddress.pubkey, signature),
|
signature: encodeSecp256k1Signature(accountForAddress.pubkey, signature),
|
||||||
|
Loading…
x
Reference in New Issue
Block a user