Skip to content

Commit

Permalink
fix: merge main
Browse files Browse the repository at this point in the history
  • Loading branch information
mohammeds1992 committed May 10, 2024
2 parents 6babd66 + 07c4603 commit 68e5022
Show file tree
Hide file tree
Showing 8 changed files with 189 additions and 154 deletions.
9 changes: 6 additions & 3 deletions packages/restapi/src/lib/channels/subscribe.ts
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,15 @@ import {
getDomainInformation,
getSubscriptionMessage,
} from './signature.helpers';
import Constants, {ENV} from '../constants';
import { SignerType } from "../types";
import { axiosPost } from "../utils/axiosUtil";
import Constants, { ENV } from '../constants';
import { SignerType } from '../types';
import { axiosPost } from '../utils/axiosUtil';
export type SubscribeOptionsType = {
signer: SignerType;
channelAddress: string;
userAddress: string;
verifyingContractAddress?: string;
origin?: string;
env?: ENV;
onSuccess?: () => void;
onError?: (err: Error) => void;
Expand All @@ -23,6 +24,7 @@ export const subscribe = async (options: SubscribeOptionsType) => {
channelAddress,
userAddress,
verifyingContractAddress,
origin,
env = Constants.ENV.PROD,
onSuccess,
onError,
Expand Down Expand Up @@ -86,6 +88,7 @@ export const subscribe = async (options: SubscribeOptionsType) => {
channel: _channelAddress,
subscriber: _userAddress,
},
origin: origin
};

await axiosPost(requestUrl, body);
Expand Down
3 changes: 3 additions & 0 deletions packages/restapi/src/lib/channels/subscribeV2.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ export type SubscribeOptionsV2Type = {
settings?: string | null;
verifyingContractAddress?: string;
env?: ENV;
origin?: string;
onSuccess?: () => void;
onError?: (err: Error) => void;
};
Expand All @@ -27,6 +28,7 @@ export const subscribeV2 = async (options: SubscribeOptionsV2Type) => {
settings = undefined,
verifyingContractAddress,
env = Constants.ENV.PROD,
origin,
onSuccess,
onError,
} = options || {};
Expand Down Expand Up @@ -85,6 +87,7 @@ export const subscribeV2 = async (options: SubscribeOptionsV2Type) => {
const body = {
verificationProof: `eip712v2:${verificationProof}`,
message: messageInformation.data,
origin: origin
};

const res = await axiosPost(requestUrl, body);
Expand Down
31 changes: 21 additions & 10 deletions packages/restapi/src/lib/pushNotification/notification.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import {
getCAIPWithChainId,
validateCAIP,
getFallbackETHCAIPAddress,
pCAIP10ToWallet,
} from '../helpers';

import { PushNotificationBaseClass } from './pushNotificationBase';
Expand Down Expand Up @@ -50,11 +51,16 @@ export class Notification extends PushNotificationBaseClass {
raw = false,
} = options || {};
try {
const account = options?.account
? options.account
: this.account
? getFallbackETHCAIPAddress(this.env!, this.account!)
: null;
let account: string | null;
if (options?.account) {
if (this.isValidPCaip(options.account)) {
account = pCAIP10ToWallet(options.account);
} else {
account = options.account;
}
} else if(this.account){
account = getFallbackETHCAIPAddress(this.env!, this.account!)
}
// guest mode and valid address check
this.checkUserAddressExists(account!);
const nonCaipAccount = this.getAddressFromCaip(account!);
Expand Down Expand Up @@ -99,11 +105,16 @@ export class Notification extends PushNotificationBaseClass {
channel = null,
raw,
} = options || {};
const account = options?.account
? options.account
: this.account
? getFallbackETHCAIPAddress(this.env!, this.account!)
: null;
let account: string | null;
if (options?.account) {
if (this.isValidPCaip(options.account)) {
account = pCAIP10ToWallet(options.account);
} else {
account = options.account;
}
} else if(this.account){
account = getFallbackETHCAIPAddress(this.env!, this.account!)
}
this.checkUserAddressExists(account!);
return await PUSH_USER.getSubscriptions({
user: account!,
Expand Down
18 changes: 15 additions & 3 deletions packages/restapi/src/lib/pushNotification/pushNotificationBase.ts
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,8 @@ import {
import { axiosGet, axiosPost } from '../utils/axiosUtil';
import { PushAPI } from '../pushapi/PushAPI';
import { channel } from 'diagnostics_channel';
import * as viem from 'viem';


// ERROR CONSTANTS
const ERROR_ACCOUNT_NEEDED = 'Account is required';
Expand Down Expand Up @@ -843,7 +845,7 @@ export class PushNotificationBaseClass {
throw new Error('Signer is not provided');
}
const pushSigner = new Signer(this.signer);
let addAliasRes
let addAliasRes;
if (!pushSigner.isViemSigner(this.signer)) {
if (!this.signer.provider) {
throw new Error('ethers provider is not provided');
Expand Down Expand Up @@ -875,12 +877,13 @@ export class PushNotificationBaseClass {
throw new Error('Signer is not provided');
}
const pushSigner = new Signer(this.signer);
let verifyAliasRes
let verifyAliasRes;
if (!pushSigner.isViemSigner(this.signer)) {
if (!this.signer.provider) {
throw new Error('ethers provider is not provided');
}
const addAliasTrxPromise = contract!['verifyChannelAlias'](channelAddress);
const addAliasTrxPromise =
contract!['verifyChannelAlias'](channelAddress);
const addAliasTrx = await addAliasTrxPromise;
await this.signer?.provider?.waitForTransaction(addAliasTrx.hash);
verifyAliasRes = addAliasTrx.hash;
Expand Down Expand Up @@ -926,4 +929,13 @@ export class PushNotificationBaseClass {
protected getAddressFromCaip(caipAddress: string): string {
return caipAddress?.split(':')[caipAddress?.split(':').length - 1];
}

protected isValidPCaip(address: string): boolean {
const addressComponents = address.split(':');
return (
addressComponents.length == 2 &&
addressComponents[0] == 'eip155' &&
viem.isAddress(addressComponents[1])
);
}
}
3 changes: 2 additions & 1 deletion packages/restapi/src/lib/pushapi/PushAPI.ts
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@ export class PushAPI {
private readMode: boolean;
private alpha: { feature: string[] };
public account: string;
public chainWiseAccount: string;
public decryptedPgpPvtKey?: string;
public pgpPublicKey?: string;
public env: ENV;
Expand Down Expand Up @@ -65,6 +66,7 @@ export class PushAPI {
this.alpha = alpha;
this.env = env;
this.account = account;
this.chainWiseAccount = walletToPCAIP10(account);
this.decryptedPgpPvtKey = decryptedPgpPvtKey;
this.pgpPublicKey = pgpPublicKey;
this.progressHook = progressHook;
Expand Down Expand Up @@ -274,7 +276,6 @@ export class PushAPI {
readMode = true;
}
}
derivedAccount = walletToPCAIP10(derivedAccount);
// Initialize PushAPI instance
const api = new PushAPI(
settings.env as ENV,
Expand Down
1 change: 1 addition & 0 deletions packages/restapi/tests/lib/channel/subscribeV2.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ describe('PUSH_CHANNEL.subscribeV2 functionality', () => {
channelAddress: 'eip155:11155111:0xD8634C39BBFd4033c0d3289C4515275102423681',
userAddress: `eip155:11155111:${account1}`,
env: _env,
origin: 'test'
});
expect(res.status).to.be.equal(204);
});
Expand Down
19 changes: 17 additions & 2 deletions packages/restapi/tests/lib/notification/notification.test.ts
Original file line number Diff line number Diff line change
Expand Up @@ -89,6 +89,15 @@ describe('PushAPI.notification functionality', () => {
expect(response).not.null;
});


it('Should return feeds when signer with provider is used', async () => {
const response = await userKate.notification.list('SPAM', {
account: 'eip155:0xD8634C39BBFd4033c0d3289C4515275102423681',
});
// console.log(response)
expect(response).not.null;
});

it('Should return feeds when viem is used', async () => {
const response = await userViem.notification.list('SPAM');
// console.log(response);
Expand Down Expand Up @@ -267,11 +276,18 @@ describe('PushAPI.notification functionality', () => {
expect(response.length).not.equal(0);
});

it('Signer with account: Should return response', async () => {
const response = await userKate.notification.subscriptions({
account: 'eip155:0xD8634C39BBFd4033c0d3289C4515275102423681',
});
expect(response).not.null;
expect(response.length).not.equal(0);
});

it('Signer with account: Should return response', async () => {
const response = await userKate.notification.subscriptions({
account: '0xD8634C39BBFd4033c0d3289C4515275102423681',
});
// console.log(JSON.stringify(response));
expect(response).not.null;
expect(response.length).not.equal(0);
});
Expand All @@ -282,7 +298,6 @@ describe('PushAPI.notification functionality', () => {
raw: false,
channel: '0xD8634C39BBFd4033c0d3289C4515275102423681',
});
console.log(JSON.stringify(response));
expect(response).not.null;
});
});
Expand Down
Loading

0 comments on commit 68e5022

Please sign in to comment.