npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

mymultisig-contract

v0.1.0

Published

Multi-Signatures Solidity Smart Contract for mymultisig.app

Downloads

16

Readme

💰 MyMultiSig.app Smart Contract (Beta) 🚀

license

A minimalistic Solidity smart contract designed for secure and streamlined transactions, MyMultiSig.app simplifies the multisig process for an easy and convenient experience 💻. The contract is integrated with the mymultisig.app web app for an enhanced user experience 📱.

🔥 This smart contract is a multi-signature wallet, which means that a certain number of owners need to sign off on a transaction before it's executed. 💰

💻 The code is written in Solidity and uses two external libraries, ReentrancyGuard and EIP712, for added security. 🔒

📈 The contract keeps track of various important details, like the name of the contract, the transaction nonce, the number of owners, and who the owners are. 📝

🎉 The contract also has events for adding and removing owners, changing the threshold, executing and failing transactions, and reaching the end of its life (when the nonce hits a certain limit). 💬

💬 When you're ready to make a transaction, you can call the execTransaction function and pass along the destination address, the amount of Ether to transfer, any data you want to include, the gas limit, and the signatures from the necessary owners. 💸

💻 The signatures are verified using the _validateSignature function, and the transaction is executed using the call opcode in assembly. 💻

🎉 If the signatures are valid and there's enough gas, the transaction is a success and a TransactionExecuted event is emitted. If not, a TransactionFailed event is emitted. 💬

🔒 Advantages of Using MyMultiSig.app

  1. Security: 🔒 A multisig contract requires multiple signatures before a transaction can be executed, making it more secure compared to a single signature transaction.

  2. Decentralization: 💪 The multisig contract can be managed by multiple parties, promoting decentralization and reducing the risk of a single point of control.

  3. Flexibility: 💡 The contract can be customized to fit the specific requirements of different organizations, including the number of signatures required and the threshold.

  4. Transparency: 🔍 All transactions executed by the multisig contract are recorded on the Ethereum blockchain, providing a transparent and auditable trail of all transactions.

Note: This smart contract is currently in beta, use at your own risk.

🔧 Install Dependencies

To install all necessary dependencies, run the following command:

yarn

💻 Run Tests

To run tests, you have the option to use either Hardhat or Foundry.

🔨 Hardhat Tests

To run tests using Hardhat, use the following command:

yarn hardhat test

Additionally, you can run a coverage report using Hardhat with the following command:

yarn coverage

🔥 Foundry Tests

To run tests using Foundry, use the following command:

forge test

💥 Hardhat & Foundry Tests

To run tests using both Hardhat and Foundry, use the following command:

yarn test

🚀 Deploy Locally

To deploy the contract locally, you'll need to run a node with Hardhat.

In a first terminal, run the following command to start the Hardhat node:

npx hardhat node

In a second terminal, while the node is active, run the following command to deploy the contract:

yarn deploy-localhost

🙏 Acknowledgements

This project relies on the amazing work done by the Hardhat and Foundry teams. Thank you for your contributions to the Ethereum community!