All Projects → paulrberg → multisol

paulrberg / multisol

Licence: MIT license
CLI application for verifying Solidity contracts on Etherscan

Programming Languages

rust
11053 projects
solidity
1140 projects

Projects that are alternatives of or similar to multisol

etherbrite
🗓 Clone eventbrite on Ethereum, built in Solidity, TruffleJS, Web3js and React/Redux.
Stars: ✭ 19 (-79.79%)
Mutual labels:  ethereum-contract, web3
Trust Wallet Ios
📱 Trust - Ethereum Wallet and Web3 DApp Browser for iOS
Stars: ✭ 1,228 (+1206.38%)
Mutual labels:  ethereum-contract, web3
React Ethereum Dapp Example
A starter boilerplate for an Ethereum dapp using web3.js v1.0, truffle, react, and parity
Stars: ✭ 384 (+308.51%)
Mutual labels:  ethereum-contract, web3
web3jdemo
功能强大的web3j以太坊用例,支持批量生成钱包,批量不同账户转账,查询余额等,监控,定时任务,交易mint等方法,持续更新中... ...
Stars: ✭ 262 (+178.72%)
Mutual labels:  ethereum-contract, web3
niftygate
Drop-in Access Control via NFT Ownership
Stars: ✭ 61 (-35.11%)
Mutual labels:  ethereum-contract, web3
vue-web3
🐙 Web3 blockchain bindings for Vue.js (inspired by Vuefire and Drizzle)
Stars: ✭ 63 (-32.98%)
Mutual labels:  ethereum-contract, web3
Eth Vue
Featured in Awesome Vue [https://github.com/vuejs/awesome-vue], a curated list maintained by vuejs of awesome things related to the Vue.js framework, and Awesome List [https://awesomelists.net/150-Vue.js/3863-Open+Source/18749-DOkwufulueze-eth-vue], this Truffle Box provides everything you need to quickly build Ethereum dApps that have authentication features with vue, including configuration for easy deployment to the Ropsten Network. It's also Gravatar-enabled. Connecting to a running Ganache blockchain network from Truffle is also possible -- for fast development and testing purposes. Built on Truffle 5 and Vue 3, eth-vue uses vuex for state management, vuex-persist for local storage of app state, and vue-router for routing. Authentication functionalities are handled by Smart Contracts running on the Ethereum blockchain.
Stars: ✭ 171 (+81.91%)
Mutual labels:  ethereum-contract, web3
eth-self-token-example
在本地网络发布一个名叫 YuTou 的 token
Stars: ✭ 8 (-91.49%)
Mutual labels:  ethereum-contract, web3
ProveIt
Implements proof of historical data possession on the Ethereum blockchain
Stars: ✭ 37 (-60.64%)
Mutual labels:  ethereum-contract, web3
swap-swear-and-swindle
Contracts for Swap, Swear and Swindle. Swap is a protocol for p2p accounting. This is the basis for Swarm’s incentivization model.
Stars: ✭ 46 (-51.06%)
Mutual labels:  web3
ape
The smart contract development tool for Pythonistas, Data Scientists, and Security Professionals
Stars: ✭ 339 (+260.64%)
Mutual labels:  web3
ethereum-hdwallet
CLI and Node.js library for Ethereum HD Wallet derivations from mnemonic
Stars: ✭ 44 (-53.19%)
Mutual labels:  web3
cybaca
Small app for huge community growth
Stars: ✭ 16 (-82.98%)
Mutual labels:  web3
eSportsETH
A decentralized eSports betting platform
Stars: ✭ 20 (-78.72%)
Mutual labels:  ethereum-contract
nft-app
How to create your own NFT and mint NFT token
Stars: ✭ 145 (+54.26%)
Mutual labels:  web3
emerald-web3-gateway
The Web3 Gateway for the Oasis Emerald ParaTime.
Stars: ✭ 19 (-79.79%)
Mutual labels:  web3
eth-commerce
Javascript library to accept ethereum payments on any website
Stars: ✭ 24 (-74.47%)
Mutual labels:  web3
awesome-crypto-critique
Making sense of web3 & crypto. Introduction to key concepts and ideas. Rigorous, constructive analysis of key claims pro and con. A look at the deeper hopes and aspirations.
Stars: ✭ 1,127 (+1098.94%)
Mutual labels:  web3
dharma-token
Implementation and testing for core Dharma Token (dToken) contracts, including Dharma Dai and Dharma USD Coin.
Stars: ✭ 35 (-62.77%)
Mutual labels:  ethereum-contract
attestation
Paper and implementation of blockchain attestations
Stars: ✭ 44 (-53.19%)
Mutual labels:  web3

Multisol

Multisol is a CLI application for verifying Solidity contracts on Etherscan.

You give it the path to your target contract and it generates a directory with that contract and all its dependencies at the same relative path. Multisol refactors the source code to import dependencies from their new location.

  • Designed to be used with Etherscan's multi-part compiler type
  • Framework agnostic, so it is compatible with Hardhat, Truffle, or vanilla Solidity projects
  • Compatible with contracts imported from "node_modules"

Installation

Homebrew

This works only if you're a user of macOS.

$ brew tap paulrberg/multisol
$ brew install multisol

Cargo

This works across operating systems, but it requires you to have Cargo installed on your machine.

$ cargo install multisol

Binaries

Archives of precompiled binaries for multisol are available for macOS, Linux and Windows in our releases page.

Use this installation option if you are in doubt with regard to the others.

Example

The listing below will generate a folder named "multisol-balancesheet" that can be used to verify the source code for a deployed instance of the BalanceSheet.sol contract part of the hifi monorepo.

git clone https://github.com/hifi-finance/hifi /tmp/example
cd /tmp/example
yarn install
yarn build
cd packages/protocol
multisol contracts/BalanceSheet.sol

After the folder is generated, you go to the contract's tab on Etherscan, click the "Verify & Publish" button and select the "Solidity (Multi-Part files)" option in the dropdown. Then, you upload the folder, hit submit and voilà, your contract is verified on Etherscan!

Limitations

  • Works only with global-level imports like import "./Foo.sol". Imports for specific symbols like import {Foo} from "./Foo.sol" aren't recognised yet.
  • Doesn't work when two or more contract files share the same name
  • Doesn't work when the contract files do not have the "sol" extension
  • Not compatible with Yarn's Plug'n'Play

Acknowledgements

This project has been inspired by Solt, developed by @hjubb. Multisol is different in that it uses the multi-part compiler type, while Solt uses standard json input format.

License

Software released under the MIT License.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].