Skip to content

Commit

Permalink
wip: add classic mainnet
Browse files Browse the repository at this point in the history
  • Loading branch information
terran6 committed Apr 8, 2024
1 parent 5866dc3 commit 6e576a0
Show file tree
Hide file tree
Showing 7 changed files with 37 additions and 17 deletions.
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

0 comments on commit 6e576a0

Please sign in to comment.