Skip to content

Commit

Permalink
Merge pull request #4553 from WalletConnect/chore/pairing-topic-setter
Browse files Browse the repository at this point in the history
chore: pairing topic setter on session settle
  • Loading branch information
ganchoradkov authored May 29, 2024
2 parents 4613df2 + 6d7d3d1 commit 92ed3fd
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 16 deletions.
22 changes: 8 additions & 14 deletions packages/sign-client/src/controllers/engine.ts
Original file line number Diff line number Diff line change
Expand Up @@ -200,6 +200,7 @@ export class Engine extends IEngine {
metadata: this.client.metadata,
},
expiryTimestamp,
pairingTopic: topic,
...(sessionProperties && { sessionProperties }),
};
const {
Expand All @@ -215,6 +216,7 @@ export class Engine extends IEngine {
session.self.publicKey = publicKey;
const completeSession = {
...session,
pairingTopic: proposal.pairingTopic,
requiredNamespaces: proposal.requiredNamespaces,
optionalNamespaces: proposal.optionalNamespaces,
};
Expand All @@ -226,6 +228,7 @@ export class Engine extends IEngine {
metadata: session.peer.metadata,
});
}
this.cleanupDuplicatePairings(completeSession);
resolve(completeSession);
}
},
Expand Down Expand Up @@ -267,8 +270,7 @@ export class Engine extends IEngine {
throw error;
}

let { pairingTopic, proposer, requiredNamespaces, optionalNamespaces } = proposal;
pairingTopic = pairingTopic || "";
const { pairingTopic, proposer, requiredNamespaces, optionalNamespaces } = proposal;

const selfPublicKey = await this.client.core.crypto.generateKeyPair();
const peerPublicKey = proposer.publicKey;
Expand All @@ -279,7 +281,6 @@ export class Engine extends IEngine {
const sessionSettle = {
relay: { protocol: relayProtocol ?? "irn" },
namespaces,
pairingTopic,
controller: { publicKey: selfPublicKey, metadata: this.client.metadata },
expiry: calcExpiry(SESSION_EXPIRY),
...(sessionProperties && { sessionProperties }),
Expand Down Expand Up @@ -692,6 +693,7 @@ export class Engine extends IEngine {
requiredNamespaces: {},
optionalNamespaces: namespaces,
relays: [{ protocol: "irn" }],
pairingTopic,
proposer: {
publicKey,
metadata: this.client.metadata,
Expand Down Expand Up @@ -1501,22 +1503,15 @@ export class Engine extends IEngine {
const { id, params } = payload;
try {
this.isValidSessionSettleRequest(params);
const {
relay,
controller,
expiry,
namespaces,
sessionProperties,
pairingTopic,
sessionConfig,
} = payload.params;
const { relay, controller, expiry, namespaces, sessionProperties, sessionConfig } =
payload.params;
const session = {
topic,
relay,
expiry,
namespaces,
acknowledged: true,
pairingTopic,
pairingTopic: "", // pairingTopic will be set in the `session_connect` handler
requiredNamespaces: {},
optionalNamespaces: {},
controller: controller.publicKey,
Expand All @@ -1543,7 +1538,6 @@ export class Engine extends IEngine {
throw new Error(`emitting ${target} without any listeners 997`);
}
this.events.emit(engineEvent("session_connect"), { session });
this.cleanupDuplicatePairings(session);
} catch (err: any) {
await this.sendError({
id,
Expand Down
1 change: 0 additions & 1 deletion packages/types/src/sign-client/jsonrpc.ts
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,6 @@ export declare namespace JsonRpcTypes {
namespaces: SessionTypes.Namespaces;
sessionProperties?: ProposalTypes.SessionProperties;
sessionConfig?: SessionTypes.SessionConfig;
pairingTopic: string;
expiry: number;
controller: {
publicKey: string;
Expand Down
2 changes: 1 addition & 1 deletion packages/types/src/sign-client/proposal.ts
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,7 @@ export declare namespace ProposalTypes {
requiredNamespaces: RequiredNamespaces;
optionalNamespaces: OptionalNamespaces;
sessionProperties?: SessionProperties;
pairingTopic?: string;
pairingTopic: string;
}
}

Expand Down

0 comments on commit 92ed3fd

Please sign in to comment.