User authentication
If you want to ensure that a multisig that access your app is being used by a member
const isIframe = window !== window.parent; //check if its an iframe
const client = isIframe
? await SigningNomosClient.connectWithSigner(network.rpc, offlineSigner) //use our provider
: await SigningCosmWasmClient.connectWithSigner(network.rpc, offlineSigner); //use cosmos providerconst sign = (provider:SigningCosmwasmClient)=>{
// your signature logic using provider.sign
}
const accounts = await offlineSigner.getAccounts();
const account = isIframe ? (await archClient.getAccount(""))?.address : accounts[0].address;
let isValidSignature = false;
if (isIframe){
const signature = sign(cosmClient)
const members = await cosmClient.queryContractSmart(
account.address, // the multisig address
{"get_members":[]}
);
isValidSignature = members.members.some(memberAddr=>
verifySignature(signature,memberAddr)
);
} else {
const signature = sign(cosmClient)
isValidSignature = verifySignature(signature, account.address)
}
// rest of logicLast updated