⛓️Smart contract

In this section, we'll look at how to create a smart-contract using Solidity, which will enable the use of mirrors wallets.

The 1st way to implement the wallet mirror is to create a direct link between the user's address and that of the wallet mirror. This is the most efficient way, as it enables the user to interact with the smart-contract using his wallet. As a result, it is perhaps less efficient than web2 integration for onboarding.

To implement this technique, you'll need

  • A structure with the information you need for your dApp,

  • A mapping linking the address to the structure,

  • A reversed mapping to force the transaction to be sent via the mirror.

Structure example:

    /// @notice User storage structure
    struct User {
            /// @notice mirror address used to sign txns
        address internalAddress;
        
    // additional extra data can be stored too
            /// @notice example counter for games played by this user
        uint gamesPlayed;
            /// @notice amount of token loaded inside the game contract
        uint tokenAvailable;
    }

Mapping examples:

Modifier example:

You'll find more details about mapping and modifiers in the Mapping of addresses section.

Registration function example:

Last updated