signTypedData
signTypedData
supports signing typed data from the ParticleSigner
.
This method must be called after authenticate
. Otherwise, this method will throw an error with the message Not Authenticated
.
Usage
ts
import { createParticleSigner } from "./particle";
const particleSigner = await createParticleSigner();
const signedTypedData = await particleSigner.signTypedData({
domain: {
name: "Ether Mail",
version: "1",
chainId: 1,
verifyingContract: "0xCcCCccccCCCCcCCCCCCcCcCccCcCCCcCcccccccC",
},
types: {
Person: [
{ name: "name", type: "string" },
{ name: "wallet", type: "address" },
],
Mail: [
{ name: "from", type: "Person" },
{ name: "to", type: "Person" },
{ name: "contents", type: "string" },
],
},
primaryType: "Mail",
message: {
from: {
name: "Cow",
wallet: "0xCD2a3d9F938E13CD947Ec05AbC7FE734Df8DD826",
},
to: {
name: "Bob",
wallet: "0xbBbBBBBbbBBBbbbBbbBbbbbBBbBbbbbBbBbbBBbB",
},
contents: "Hello, Bob!",
},
});
ts
import { ParticleSigner } from "@alchemy/aa-signers/particle";
import { ParticleNetwork } from "@particle-network/auth";
import { ParticleProvider } from "@particle-network/provider";
export const createParticleSigner = async () => {
const particle = new ParticleNetwork({
projectId: process.env.REACT_APP_PROJECT_ID as string,
clientKey: process.env.REACT_APP_CLIENT_KEY as string,
appId: process.env.REACT_APP_APP_ID as string,
chainName: "polygon",
chainId: 80001,
});
const particleProvider = new ParticleProvider(particle.auth);
const particleSigner = new ParticleSigner({
inner: particle,
provider: particleProvider,
});
particleSigner.authenticate({
loginOptions: {},
login: async (loginOptions) => {
particleSigner.inner.auth.login(loginOptions);
},
});
return particleSigner;
};
Returns
Promise<Hex>
A Promise
containing the signature of the typed data.
Parameters
params: SignTypedDataParams
-- the typed data to sign
domain: TypedDataDomain
-- The typed data domaintypes: Object
-- the type definitions for the typed dataprimaryType: inferred String
-- the primary type to extract from types and use in valuemessage: inferred from types & primaryType
-- the message, inferred from