Skip to content

Commit

Permalink
fix: 🐛 change accounts callback
Browse files Browse the repository at this point in the history
Ian-potter committed Jan 22, 2025
1 parent f6cf781 commit 6ab7d52
Showing 3 changed files with 41 additions and 17 deletions.
9 changes: 1 addition & 8 deletions src/controllers/AELFMethodController.ts
Original file line number Diff line number Diff line change
@@ -1,11 +1,4 @@
import {
MethodsBase,
ResponseCode,
MethodsWallet,
ChainId,
NetworkType,
IRequestParams,
} from '@portkey/provider-types';
import { MethodsBase, ResponseCode, MethodsWallet, ChainId, NetworkType } from '@portkey/provider-types';
import { RequestCommonHandler, SendResponseFun } from '../service/types';
import { IRequestPayload, WalletPageType } from '../types';
import errorHandler from '../utils/errorHandler';
20 changes: 20 additions & 0 deletions src/utils/account.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import { ChainId, ChainType } from '@portkey/provider-types';

/**
* format address like "aaa...bbb" to "ELF_aaa...bbb_AELF"
* @param address
* @param chainId
* @param chainType
* @returns
*/
export const addressFormat = (
address: string = 'address',
chainId: ChainId = 'AELF',
chainType: ChainType = 'aelf',
): string => {
if (chainType !== 'aelf') return address;
const arr = address.split('_');
if (address.includes('_') && arr.length < 3) return address;
if (address.includes('_')) return `ELF_${arr[1]}_${chainId}`;
return `ELF_${address}_${chainId}`;
};
29 changes: 20 additions & 9 deletions src/utils/dappManager/index.ts
Original file line number Diff line number Diff line change
@@ -7,6 +7,7 @@ import { wallet as walletUtils } from '@portkey/utils';
import { Accounts, ChainId, ChainsInfo } from '@portkey/provider-types';
import { getChainInfoMap } from '../chainInfo';
import { getWebWalletStorageKey } from '../wallet';
import { addressFormat } from '../account';
export interface IBaseDappManagerProps {
pin: string;
}
@@ -90,7 +91,6 @@ export abstract class DappManager implements IDappManager {
maxResultCount: 2,
// chainId: wallet.originChainId,
} as unknown as GetCAHolderByManagerParams);
console.log(res, 'res===getHolderInfoByManager');
return res
.filter(item => item.caAddress)
.map(item => ({
@@ -111,16 +111,24 @@ export abstract class DappManager implements IDappManager {
}

async accounts() {
console.log(did.didWallet, 'accounts==');
const chains = await this.chainIds();
const caAddress = (await this.getAAInfo()).accountInfo?.caAddress;
if (caAddress) return chains.map(item => ({ [item]: caAddress })) as Accounts;
const res = await this.getHolderInfoByManager();
return res
.filter(item => !!item.chainId)
.map(item => ({
[item.chainId as ChainId]: walletUtils.removeELFAddressSuffix(item.caAddress as string),
})) as Accounts;
const accountsMap: Accounts = {};
if (caAddress) {
chains.forEach(item => {
accountsMap[item] = [addressFormat(caAddress, item)];
});
} else {
const res = await this.getHolderInfoByManager();
res
.filter(item => !!item.chainId)
.forEach(item => {
accountsMap[item.chainId] = [
addressFormat(walletUtils.removeELFAddressSuffix(item.caAddress as string), item.chainId),
];
});
}
return accountsMap;
}

async chainId() {
@@ -133,8 +141,11 @@ export abstract class DappManager implements IDappManager {
async chainsInfo() {
const chainsInfo: ChainsInfo = {};
Object.values(await getChainInfoMap())?.forEach(chainInfo => {
// eslint-disable-next-line @typescript-eslint/no-explicit-any
const tmpChainInfo: any = { ...chainInfo };
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
tmpChainInfo.lastModifyTime && delete tmpChainInfo.lastModifyTime;
// eslint-disable-next-line @typescript-eslint/no-unused-expressions
tmpChainInfo.id && delete tmpChainInfo.id;
chainsInfo[chainInfo.chainId] = [tmpChainInfo];
});

0 comments on commit 6ab7d52

Please sign in to comment.