Skip to content

Commit 37ea679

Browse files
authored
Merge pull request #59 from picketapi/devstein/better-error-messages
Throw Errors on Missing Params for Creating Signing Message
2 parents 51a4297 + a0072e9 commit 37ea679

File tree

4 files changed

+47
-3
lines changed

4 files changed

+47
-3
lines changed

package-lock.json

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@picketapi/picket-js",
3-
"version": "0.0.99",
3+
"version": "0.0.100",
44
"description": "Javascript client for the Picket API",
55
"main": "dist/index.mjs",
66
"types": "dist/index.d.ts",

src/connect/ConnectModal.tsx

+12
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,18 @@ const getErrorMessage = ({
179179
if (err.msg.toLowerCase().includes("invalid project key")) {
180180
return "Invalid API key. Copy your project's publishable key from your Picket dashboard: https://picketapi.com/dashboard";
181181
}
182+
if (
183+
err.msg
184+
.toLowerCase()
185+
.includes("required to create a SIWE signing message")
186+
) {
187+
return "Missing required context parameters for SIWE";
188+
}
189+
if (
190+
err.msg.toLowerCase().includes("required to create a signing message")
191+
) {
192+
return "Missing required parameters to create a signing message";
193+
}
182194
// @ts-ignore TS isn't respecting "msg" in err
183195
if (err.msg.toLowerCase().includes("invalid signature")) {
184196
return "Signature expired. Please try again.";

src/picket.ts

+32
Original file line numberDiff line numberDiff line change
@@ -673,6 +673,17 @@ export class Picket {
673673

674674
static createSigningMessage(args: SigningMessageRequest) {
675675
const { format = SigningMessageFormat.SIMPLE } = args;
676+
677+
if (!args.nonce) {
678+
throw new Error("'nonce' is required to create a signing message");
679+
}
680+
681+
if (!args.walletAddress) {
682+
throw new Error(
683+
"'walletAddress' is required to create a signing message"
684+
);
685+
}
686+
676687
if (format === SigningMessageFormat.SIMPLE) {
677688
const { statement, walletAddress, nonce } =
678689
args as SigningMessageRequestSimple;
@@ -690,6 +701,27 @@ export class Picket {
690701
chainType,
691702
} = args as SigningMessageRequestSIWE;
692703

704+
// validate parameters
705+
if (!statement) {
706+
throw new Error(
707+
"'statement' is required to create a SIWE signing message"
708+
);
709+
}
710+
if (!domain) {
711+
throw new Error("'domain' is required to create a SIWE signing message");
712+
}
713+
if (!uri) {
714+
throw new Error("'uri' is required to create a SIWE signing message");
715+
}
716+
if (!issuedAt) {
717+
throw new Error(
718+
"'issuedAt' is required to create a SIWE signing message"
719+
);
720+
}
721+
if (!chainId) {
722+
throw new Error("'chainId' is required to create a SIWE signing message");
723+
}
724+
693725
const message = new SiweMessage({
694726
address: walletAddress,
695727
nonce,

0 commit comments

Comments
 (0)