1.4.4 • Published 6 days ago

@particle-network/auth-core-modal v1.4.4

Weekly downloads
-
License
Apache-2.0
Repository
-
Last release
6 days ago

Particle Auth Core Modal

Auth Core provides MPC (Multi-Party Computation)-based threshold signatures.

Modal is implemented based on React, provides a rich set of hook functions and custom components.

Installation

Install Auth Core and its peer dependencies.

npm install @particle-network/auth-core-modal
# or
yarn add @particle-network/auth-core-modal

Configure

Init Auth Core with Particle project config, you can get the config from Particle Dashboard.

The modal support custom style, refer to Customize.

Wrap your application with AuthCoreContextProvider.

import { AuthCoreContextProvider } from '@particle-network/auth-core-modal';

const App = () => {
    // replace 'xxxx' with particle project config.
    return (
        <AuthCoreContextProvider
            options={{
                projectId: 'xxxx',
                clientKey: 'xxxx',
                appId: 'xxxx',
            }}
        >
            <YourApp />
        </AuthCoreContextProvider>
    );
};

Connect

Custom you own connect button and call connect function to connect Auth Core.

import { useConnect } from '@particle-network/auth-core-modal';

const { connect, disconnect, connectionStatus, requestConnectCaptcha } = useConnect();

// connect with email.
const userInfo = await connect({
    email: 'xxx@xx.com',
    code: 'xxxxxx', // optional
});

// connect with phone.
const userInfo = await connect({
    phone: '+8618888888888',
    code: 'xxxxxx', // optional
});

// connect with social type.
const userInfo = await connect({
    socialType: 'google',
    prompt: 'select_account', //optional
});

// connect with JWT.
const userInfo = await connect({
    jwt: 'xxxxxxxxxx'
});

// disconnect
await disconnect();

EVM Wallet

EVM Wallet will be created when connect with EVM chains.

import { useEthereum } from '@particle-network/auth-core-modal';

// you can use eip1193 provider with `web3.js` or `ethers.js`
const { provider,
        address,
        chainId,
        chainInfo,
        switchChain,
        signMessage,
        signTypedData,
        sendTransaction,
        enable } = useEthereum();

// send transaction.
const txHash = await sendTransaction(txData);

// sign message.
const signature = await signMessage(message);

Solana Wallet

import { useSolana } from '@particle-network/auth-core-modal';

const { address,
        chainId,
        chainInfo,
        switchChain,
        signMessage,
        signTransaction,
        signAllTransactions,
        signAndSendTransaction,
        enable } = useSolana();

// send transaction.
const txHash = await signAndSendTransaction(txData);

// sign message.
const signature = await signMessage(message);

Learn More