Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

wip: add classic mainnet #89

Draft
wants to merge 1 commit into
base: main
Choose a base branch
from
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions src/client/lcd/LCDClient.ts
Original file line number Diff line number Diff line change
Expand Up @@ -148,11 +148,11 @@ export class LCDClient {
*
*/
constructor(chains: Record<string, LCDClientConfig>) {
// check for duplicate prefixes
const prefixes = Object.values(chains).map(c => c.prefix);
if (new Set(prefixes).size !== prefixes.length) {
throw new Error('Every chain must have an unique bech32 prefix');
}
// // check for duplicate prefixes
// const prefixes = Object.values(chains).map(c => c.prefix);
// if (new Set(prefixes).size !== prefixes.length) {
// throw new Error('Every chain must have an unique bech32 prefix');
// }

this.config = chains;

Expand Down
15 changes: 12 additions & 3 deletions src/client/lcd/Wallet.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,10 @@ export class Wallet {
sequence: number;
}> {
return this.lcd.auth
.accountInfo(this.key.accAddress(this.lcd.config[chainID].prefix))
.accountInfo(
this.key.accAddress(this.lcd.config[chainID].prefix),
chainID
)
.then(d => {
return {
account_number: d.getAccountNumber(),
Expand All @@ -25,15 +28,21 @@ export class Wallet {

public accountNumber(chainID: string): Promise<number> {
return this.lcd.auth
.accountInfo(this.key.accAddress(this.lcd.config[chainID].prefix))
.accountInfo(
this.key.accAddress(this.lcd.config[chainID].prefix),
chainID
)
.then(d => {
return d.getAccountNumber();
});
}

public sequence(chainID: string): Promise<number> {
return this.lcd.auth
.accountInfo(this.key.accAddress(this.lcd.config[chainID].prefix))
.accountInfo(
this.key.accAddress(this.lcd.config[chainID].prefix),
chainID
)
.then(d => {
return d.getSequenceNumber();
});
Expand Down
3 changes: 2 additions & 1 deletion src/client/lcd/api/AuthAPI.ts
Original file line number Diff line number Diff line change
Expand Up @@ -73,9 +73,10 @@ export class AuthAPI extends BaseAPI {
*/
public async accountInfo(
address: AccAddress,
chainID: string,
params: APIParams = {}
): Promise<Account> {
const { account } = await this.getReqFromAddress(address).get<{
const { account } = await this.getReqFromChainID(chainID).get<{
account:
| BaseAccount.Data
| LazyGradedVestingAccount.Data
Expand Down
6 changes: 4 additions & 2 deletions src/client/lcd/api/BankAPI.ts
Original file line number Diff line number Diff line change
Expand Up @@ -54,9 +54,10 @@ export class BankAPI extends BaseAPI {
*/
public async balance(
address: AccAddress,
chainID: string,
params: Partial<PaginationOptions & APIParams> = {}
): Promise<[Coins, Pagination]> {
return this.getReqFromAddress(address)
return this.getReqFromChainID(chainID)
.get<{
balances: Coins.Data;
pagination: Pagination;
Expand All @@ -70,9 +71,10 @@ export class BankAPI extends BaseAPI {
*/
public async spendableBalances(
address: AccAddress,
chainID: string,
params: Partial<PaginationOptions & APIParams> = {}
): Promise<[Coins, Pagination]> {
return this.getReqFromAddress(address)
return this.getReqFromChainID(chainID)
.get<{
balances: Coins.Data;
pagination: Pagination;
Expand Down
12 changes: 8 additions & 4 deletions src/client/lcd/api/DistributionAPI.ts
Original file line number Diff line number Diff line change
Expand Up @@ -72,9 +72,10 @@ export class DistributionAPI extends BaseAPI {
*/
public async rewards(
delegator: AccAddress,
chainID: string,
params: APIParams = {}
): Promise<Rewards> {
const rewardsData = await this.getReqFromAddress(delegator)
const rewardsData = await this.getReqFromChainID(chainID)
.get<Rewards.Data>(
`/cosmos/distribution/v1beta1/delegators/${delegator}/rewards`,
params
Expand All @@ -97,9 +98,10 @@ export class DistributionAPI extends BaseAPI {
*/
public async validatorCommission(
validator: ValAddress,
chainID: string,
params: APIParams = {}
): Promise<Coins> {
return this.getReqFromAddress(validator)
return this.getReqFromChainID(chainID)
.get<{
commission: {
commission: Coins.Data;
Expand All @@ -118,10 +120,11 @@ export class DistributionAPI extends BaseAPI {
*/
public async validatorSlashingEvents(
validator: ValAddress,
chainID: string,
params: APIParams = {}
// TODO: slashes type
): Promise<[any[], Pagination]> {
return this.getReqFromAddress(validator)
return this.getReqFromChainID(chainID)
.get<{
slashes: [];
pagination: Pagination;
Expand All @@ -135,9 +138,10 @@ export class DistributionAPI extends BaseAPI {
*/
public async withdrawAddress(
delegator: AccAddress,
chainID: string,
params: APIParams = {}
): Promise<AccAddress> {
return this.getReqFromAddress(delegator)
return this.getReqFromChainID(chainID)
.get<{ withdraw_address: AccAddress }>(
`/cosmos/distribution/v1beta1/delegators/${delegator}/withdraw_address`,
params
Expand Down
5 changes: 4 additions & 1 deletion src/client/lcd/api/TxAPI.ts
Original file line number Diff line number Diff line change
Expand Up @@ -237,7 +237,10 @@ export class TxAPI extends BaseAPI {
let publicKey = signer.publicKey;

if (sequenceNumber === undefined || !publicKey) {
const account = await this.lcd.auth.accountInfo(signer.address);
const account = await this.lcd.auth.accountInfo(
signer.address,
options?.chainID
);
if (sequenceNumber === undefined) {
sequenceNumber = account.getSequenceNumber();
}
Expand Down
3 changes: 2 additions & 1 deletion src/client/lcd/api/WasmAPI.ts
Original file line number Diff line number Diff line change
Expand Up @@ -114,13 +114,14 @@ export class WasmAPI extends BaseAPI {

public async contractInfo(
contractAddress: AccAddress,
chainID: string,
params: APIParams = {}
): Promise<ContractInfo> {
// new endpoint doesn't return init_msg so have to retrieve it from history
const [historyEntry] = await this.contractHistory(contractAddress);

const endpoint = `/cosmwasm/wasm/v1/contract/${contractAddress}`;
return this.getReqFromAddress(contractAddress)
return this.getReqFromChainID(chainID)
.get<{ contract_info: ContractInfo.DataV2 }>(endpoint, params)
.then(({ contract_info: d }) => ({
code_id: Number.parseInt(d.code_id),
Expand Down
Loading