基于区块链的毕业设计🏗 scaffold-eth – 🏗 脚手架eth
本文提供基于区块链的毕业设计国外最新区块链项目源码下载,包括solidity,eth,fabric等blockchain区块链,基于区块链的毕业设计🏗 scaffold-eth – 🏗 脚手架eth 是一篇很好的国外资料
🏗 scaffold-eth
is everything you need to get started building decentralized applications powered by smart contracts
quickstart
git clone https://github.com/austintgriffith/scaffold-eth.git your-next-dapp cd your-next-dapp
yarn install
you might get node-gyp errors, ignore them and run:
yarn start
in a second terminal window:
yarn chain
in a third terminal window:
yarn deploy
YourContract.sol
in packages/buidler/contracts
App.jsx
in packages/react-app/src
With everything up your dev environment starts looking something like this:
React dev server, Buidler blockchain, deploy terminal, code IDE, and frontend browser.
yarn run deploy
any time and get a fresh new contract in the frontend:
setPurpose
on your contract and “write” to the purpose
storage:
Look for the Buidler console.log() output in the yarn run chain
terminal:
uint8 public count = 1;
function dec() public {}
that does a count = count - 1;
localhost
:
msg.sender
and msg.value
are cryptographically backed and can be used to make rules
block.timestamp
or block.number
to track time in our contract
address public owner;
then make a rule like require( msg.sender == owner );
for an important function
mapping ( address => uint256 ) public balance;
function deposit() public payable {}
and withdraw()
App.jsx
in packages/react-app/src
and learn about the
Ant Design
has a bunch of great components.
useContractReader
and useEventListener
.
<Contract />
component that displays the dynamic form as scaffolding for interacting with your contract.
<Button/>
that calls writeContracts.YourContract.setPurpose("👋 Hello World")
to explore how your UI might work
YourStructName[] public proposals;
that could call be voted on with function vote() public {}
receive() external payable {}
so your contract will accept ETH?
defaultNetwork
in packages/buidler/buidler.config.js
yarn run generate
and view it with yarn run account
( You will probably want to take some of the
⏱ Quickstart: 🔬 Smart Contract Sandbox
Learn how to quickly iterate on a smart contract app using the <Contract /> component.
Join the telegram support chat
Tutorial 1: 🛠 Programming Decentralized Money
Learn the basics of
Tutorial 2: 🏵 The Token
Learn about tokens. [coming soon] What is a token? Why is it cool? How can I deploy one? Exotic mechanisms? (todo)
Tutorial 3: ⚖️ Minimum Viable Decentralized Exchange
Learn the basics of Automated Market Makers like
Tutorial 4: 🚀 Connecting ETH to IPFS
Build a simple IPFS application in
Tutorial 5: ⛽️ GSN and Meta Transactions
Learn about to provide your users with better UX by abstracting away gas fees and blockchain mechanics. (todo)
Tutorial 6: 🛰 Decentralized Deployment
Learn how to deploy your smart contract to a production blockchain. Then deploy your applicaton to Surge, S3, and IPFS. Finally, register an ENS and point it at the decentralized content!
built with 🏗 scaffold-eth:
👩🎨 Nifty Ink
Paintings come to life as you “ink” new creations and trade them on Ethereum. A deep dive into
🧙♂️ Instant Wallet
An instant wallet running on xDAI insired by xdai.io.
🗳 Personal Token Voting
Poll your holders! Build an example emoji voting system with
🌒 xmoon.exchange
Exchange Reddit MOONs for ETH or DAI through xDAI. Learn about different
Obituary.space
Remember someone permanently on the blockchain. Write an obituary and upload a photo of a person and their memory will be encoded on the blockchain, forever.
^^^
🧫 Building on Ethereum in 2020 (research)
⏱ Original Quickstart with TODO List:
First, you’ll need NodeJS>=10 plus Yarn and Git installed.
git clone https://github.com/austintgriffith/scaffold-eth.git rad-new-dapp cd rad-new-dapp git checkout quickstart yarn install
⌚️ This will take some time. How about a quick tour of the file structure with your favorite code editor?
💡 Sometimes the install throws errors like “node-gyp”, try the next step even if you see problems.
(You can also download the Apple command line tools to fix the warning.)
yarn start
App.jsx
in packages/react-app/src
and open http://localhost:3000
yarn run chain
Note: You’ll need to run this command in a new terminal window
🛠 Use this eth.build to double-check your local chain and account balances
yarn run compile
yarn run deploy
yarn run watch
SmartContractWallet.sol
in packages/buidler/contracts
🤡 There is a spelling error inpackages/buidler/contracts/SmartContractWallet.sol
!
🤔 Can you fix it and deploy the contract locally?
☢️ Warning: It is very important that you findSmartContractWallet.sol
inpackages/buidler/contracts
because there are other contract folders and it can get confusing.
myTest.js
in packages/buidler/contracts
:
yarn run test
yarn run accounts
yarn run balance **YOUR-ADDRESS**
yarn run send --from 0 --amount 0.5 --to **YOUR-ADDRESS**
🔧 Configure👷 Buidler by editingbuidler.config.js
inpackages/buidler
🏃♂️ Speedrun (🎥 7 min):
🔬 Smart Contract Sandbox:
git clone https://github.com/austintgriffith/scaffold-eth.git smart-contract-sandbox cd smart-contract-sandbox yarn install
#run in original terminal window: yarn start #run in terminal window 2: yarn run chain #run in terminal window 3: yarn run deploy
YourContract.sol
in packages/buidler/contracts
App.jsx
in packages/react-app/src
yarn run chain
and your contract is deployed with yarn run deploy
yarn run watch
and as you change your Solidity, your frontend <Contract/> will hot reload to give you access to new variables and functions:
🔏 Web3 Providers:
The frontend has three different providers that provide different levels of access to different chains:
mainnetProvider
: (read only) Infura connection to main Ethereum network (and contracts already deployed like DAI or Uniswap).
localProvider
: local Buidler accounts, used to read from your contracts (.env
file points you at testnet or mainnet)
injectedProvider
: your personal MetaMask, WalletConnect via Argent, or other injected wallet (generates burner-provider on page load)
⛑ Helpers:
Transactor
: The transactor returns a tx()
function to make running and tracking transactions as simple and standardized as possible. We will bring in BlockNative’s Notify library to track our testnet and mainnet transactions.
const tx = Transactor(props.injectedProvider, props.gasPrice);
Then you can use the tx()
function to send funds and write to your smart contracts:
tx({ to: readContracts[contractName].address, value: parseEther("0.001"), });
tx(writeContracts["SmartContractWallet"].updateOwner(newOwner));
☢️ Warning: You will need to update the configuration forreact-app/src/helpers/Transactor.js
to use your BlockNative dappId
🖇 Hooks:
Commonly used Ethereum hooks located in packages/react-app/src/
:
usePoller(fn, delay)
: runs a function on app load and then on a custom interval
usePoller(() => { //do something cool at start and then every three seconds }, 3000);
useBalance(address, provider, [pollTime])
: poll for the balance of an address from a provider
const localBalance = useBalance(address, localProvider);
useBlockNumber(provider,[pollTime])
: get current block number from a provider
const blockNumber = useBlockNumber(props.provider);
useGasPrice([speed])
: gets current “fast” price from ethgasstation
const gasPrice = useGasPrice();
useExchangePrice(mainnetProvider, [pollTime])
: gets current price of Ethereum on the Uniswap exchange
const price = useExchangePrice(mainnetProvider);
useContractLoader(provider)
: loads your smart contract interface
const readContracts = useContractLoader(localProvider); const writeContracts = useContractLoader(injectedProvider);
useContractReader(contracts, contractName, variableName, [pollTime])
: reads a variable from your contract and keeps it in the state
const title = useContractReader(props.readContracts, contractName, "title"); const owner = useContractReader(props.readContracts, contractName, "owner");
useEventListener(contracts, contractName, eventName, [provider], [startBlock])
: listens for events from a smart contract and keeps them in the state
const ownerUpdates = useEventListener( readContracts, contractName, "UpdateOwner", props.localProvider, 1 );
📦 Components:
Your commonly used React Ethereum components located in packages/react-app/src/
:
<Address />
: A simple display for an Ethereum address that uses a Blockie, lets you copy, and links to Etherescan.
<Address value={address} /> <Address value={address} size="short" /> <Address value={address} size="long" blockexplorer="https://blockscout.com/poa/xdai/address/"/> <Address value={address} ensProvider={mainnetProvider}/>
<AddressInput />
: An input box you control with useState for an Ethereum address that uses a Blockie and ENS lookup/display.
const [ address, setAddress ] = useState("") <AddressInput value={address} ensProvider={props.ensProvider} onChange={(address)=>{ setAddress(address) }} />
TODO GIF
<Balance />
: Displays the balance of an address in either dollars or decimal.
<Balance address={address} provider={injectedProvider} dollarMultiplier={price} />
<Account />
: Allows your users to start with an Ethereum address on page load but upgrade to a more secure, injected provider, using Web3Modal. It will track your address
and localProvider
in your app’s state:
const [address, setAddress] = useState(); const [injectedProvider, setInjectedProvider] = useState(); const price = useExchangePrice(mainnetProvider);
<Account address={address} setAddress={setAddress} localProvider={localProvider} injectedProvider={injectedProvider} setInjectedProvider={setInjectedProvider} dollarMultiplier={price} />
💡 Notice: the<Account />
component will callsetAddress
andsetInjectedProvider
for you.
☢️ Warning: You will need to update the configuration forWeb3Modal
to use your Infura Id
<Provider />
: You can choose to display the provider connection status to your users with:
<Provider name={"mainnet"} provider={mainnetProvider} /> <Provider name={"local"} provider={localProvider} /> <Provider name={"injected"} provider={injectedProvider} />
💡 Notice: you will need to check the network id of yourinjectedProvider
compared to yourlocalProvider
ormainnetProvider
and alert your users if they are on the wrong network!
📄 Smart Contract Wallet:
SmartContractWallet.sol
in packages/buidler/contracts
SmartContractWallet.js
React component in packages/react-app/src
yarn run compile
and yarn run deploy
or just yarn run watch
🛠 Run this eth.build with your contract address to ask it who its owner is.
You can import any of the OpenZeppelin contracts:
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
📤 Save to your Git
Create a new repo with the same name as this project and then:
git remote add origin https://github.com/**YOUR_GITHUB_USERNAME**/**YOUR_COOL_PROJECT_NAME**.git git push -u origin master
🛳 Ship it!
You can deploy your static site and your dapp can go live:
yarn run build # ship it! yarn run surge OR yarn run s3 OR yarn run ipfs
We use cookies and similar technologies (“cookies”) to provide and secure our websites, as well as to analyze the usage of our websites, in order to offer you a great user experience. To learn more about our use of cookies see our Privacy Statement.
Select Accept all to consent to this use, Reject all to decline this use, or More info to control your cookie preferences. You can always update your selection by clicking Cookie Preferences at the bottom of the page.
We use cookies and similar technologies (“cookies”) to provide and secure our websites, as well as to analyze the usage of our websites, in order to offer you a great user experience. To learn more about our use of cookies see our Privacy Statement.
Essential cookies
We use essential cookies to perform essential website functions, e.g. they’re used to log you in. Learn more
Always active
Analytics cookies
We use analytics cookies to understand how you use our websites so we can make them better, e.g. they’re used to gather information about the pages you visit and how many clicks you need to accomplish a task. Learn more
flip order of events
🏗 scaffold-eth
开始构建由智能合约支持的分散应用程序所需的一切都是
quickstart
git clone https://github.com/austintgriffith/scaffold-eth.git your-next-dapp cd your-next-dapp
yarn install
您可能会得到节点gyp错误,忽略它们并运行:
yarn start
在第二个终端窗口:
yarn chain
在第三个终端窗口:
yarn deploy
🔏 编辑智能合约你的合同.sol在包/制造商/合同中
📝 编辑前端应用程序jsx在软件包中/react app/src
📱 打开http://localhost:3000查看应用程序
📚 将solidity作为示例放在手边,查看solidity全局参数和单元
在您的开发环境中开始如下所示:
<>
React开发服务器、Builder区块链blockchain、部署终端、代码IDE和前端浏览器。
🔁 您可以随时运行部署并在前端获得新的合同:
💵. 每个浏览器的右上角都有一个帐户,您可以使用水龙头(左下角)获取⛽️气体测试网eth:
🔨 一旦你有了资金,你就可以在你的合同上调用setPurpose并“写”到目的存储器中:
<>
寻找构建者控制台.log()纱线运行链终端的输出:
👨🏫 也许从super-simple开始,添加一个计数器uint8 public count=1;
⬇️ 然后是一个函数dec()public{},它执行count=count-1;
🔬 从0减去1会怎么样?在应用程序中试试看会发生什么!
🚽 下溢!
🧫 你可以边走边学。测试你的假设!
💵 在浏览器之间或甚至在instantwallet.io选择本地主机:
🔐 全局变量如消息发送者以及消息值有密码支持,可用于制定规则
📝 把这张备忘单放在手边
⏳ 也许我们可以利用块.时间戳或者区块编号跟踪合同中的时间
🔏 或者跟踪地址的公共所有者,然后制定一个规则,比如require(消息发送者==所有者);对于重要功能
🧾 也许可以创建一个智能合约来跟踪映射(address=>;uint256)public balance;
🏦 它可以像一个分散的银行,您可以使用deposit()public payment{}和draft()
📟 事件对于向前端发出信号非常方便。在这里阅读更多关于事件的信息。
📲 花点时间在应用程序jsx在packages/react app/src中,了解🛰 提供商
🐜 UI框架Ant设计有很多很棒的组件。
📃 查看应用程序的控制台日志,查看useContractReader和useEventListener等钩子的额外输出。
🏗 您会注意到<;Contract/>;组件将动态表单显示为与合同交互的支架。
🔲 试着按一下按钮来呼叫writeContracts.YourContract.setPurpose(“👋 Hello World“)来探索用户界面的工作方式
🧬 下一步了解坚固结构。
🗳 可能是一个数组YourStructName[]public propositions;可以使用函数vote()public{}对该调用进行投票
🔭 您的开发环境非常适合测试假设和通过原型学习。
📝 接下来了解回退功能
💸 也许添加一个receive()external payment{}以便您的合同将接受ETH?
🚁 哦!编程分散资金!😎 太棒了!
🛰 准备好部署到测试网了吗?在packages/buidler中更改defaultNetwork/builder.config.js
🔐 使用yarn run Generate生成部署帐户,并使用yarn run account查看它
👩🎓 你可以从🏗 脚手架eth并开始使用👷 Buidler和📦 创建eth应用程序“独立”
(您可能需要🔗 钩子,🎛 来自的组件🏗 我们就这样开始了🖇 eth挂钩)
🚀 祝你好运!
⏱ Quickstart: 🔬 Smart Contract Sandbox
Learn how to quickly iterate on a smart contract app using the <Contract /> component.
Join the telegram support chat
了解如何使用<;contract/>;组件在智能合约应用程序上快速迭代。
加入telegram支持聊天💬 问问题,找其他人🏗 脚手架eth!
🎥. 注意长形🏗 在youtube上为欧洲经济区提供eth介绍。
Tutorial 1: 🛠 Programming Decentralized Money
了解令牌。什么是代币?为什么这么酷?如何部署?奇异的机制?(todo)
Learn the basics of
Tutorial 2: 🏵 The Token
Learn about tokens. [coming soon] What is a token? Why is it cool? How can I deploy one? Exotic mechanisms? (todo)
Tutorial 3: ⚖️ Minimum Viable Decentralized Exchange
学习自动化做市商的基本知识,如🦄 Uniswap。了解如何💰储备影响📉 价格,⚖️ 交易,以及💦 从低液体中滑落。
🏃♀️ 快跑📹
Tutorial 4: 🚀 Connecting ETH to IPFS
Build a simple IPFS application in
Tutorial 5: ⛽️ GSN and Meta Transactions
Learn about to provide your users with better UX by abstracting away gas fees and blockchain mechanics. (todo)
在中构建一个简单的IPFS应用程序🏗 scaffold eth以了解有关分布式文件存储和内容寻址的更多信息。🎥 Live Tutorial
Tutorial 6: 🛰 Decentralized Deployment
了解如何通过抽象汽油费和区块链blockchain机制为用户提供更好的用户体验。(todo)
Learn how to deploy your smart contract to a production blockchain. Then deploy your applicaton to Surge, S3, and IPFS. Finally, register an ENS and point it at the decentralized content!
built with 🏗 scaffold-eth:
👩🎨 Nifty Ink
Paintings come to life as you “ink” new creations and trade them on Ethereum. A deep dive into
了解如何将智能合约部署到生产区块链blockchain。然后将您的应用程序部署到Surge、S3和IPFS。最后,注册一个ENS并指向分散的内容!🎥 现场教程
🧙♂️ Instant Wallet
An instant wallet running on xDAI insired by xdai.io.
当您在以太坊eth上“墨水”新作品并将其交易时,绘画就变得栩栩如生。深入研究🖼 NFTs公司,🐳 外海,🖍 反应画布绘制,🎨 反应颜色,以及🛬 入职用户体验。
🗳 Personal Token Voting
🏃♂️ 快跑📹 (待办事项)
💾 源代码xdai.io公司.
💾 源代码!用🏗 脚手架eth。🔏 加密签名的投票,但通过📡 扎皮尔和📑 谷歌表格。
🏃♂️ 快跑📹
💾 通过
🌒 xmoon.exchange
🏃♂️ 快跑📹
💾 源代码
Obituary.space
永远记住区块链blockchain上的某人。写一篇讣告,上传一个人的照片,他们的记忆将永远被编码在区块链blockchain上。
^^^⛏ 公共关系🏗 脚手架eth项目在上面!!!^^^
🧫 Building on Ethereum in 2020 (research)
⏱ Original Quickstart with TODO List:
First, you’ll need NodeJS>=10 plus Yarn and Git installed.
git clone https://github.com/austintgriffith/scaffold-eth.git rad-new-dapp cd rad-new-dapp git checkout quickstart yarn install
首先,您需要安装NodeJS>;=10+纱线和Git。
💾 安装:
⌚️这需要一些时间。用你最喜欢的代码编辑器快速浏览一下文件结构如何?
yarn start
💡 有时安装会抛出“node gyp”之类的错误,即使看到问题也要尝试下一步。
(您也可以下载Apple命令行工具来修复该警告。)
🎛 前端
yarn run chain
📝 编辑前端应用程序jsx在packages/react app/src和open中http://localhost:3000
注意:您需要在新的终端窗口中运行此命令
yarn run compile
🛠 用这个以太币建造再次检查本地连锁店和账户余额
yarn run deploy
⚙️ 编制合同:
yarn run watch
🚢 将合同部署到前端:
🔍 观察更改,然后编译、部署和热重新加载前端:
🔥 你的dapp热重新加载你的智能合约和前端一起🔥
📝 编辑智能合约智能合约钱包.sol在包/制造商/合同中
🤡 包/编译程序/合同中存在拼写错误/智能合约钱包.sol!
在🤔 你能修复它并在本地部署合同吗?
yarn run test
☢️ 警告:你发现智能合约钱包.sol在packages/buidler/contracts中,因为还有其他合同文件夹,它可能会令人困惑。
yarn run accounts
🔬通过编辑测试你的合同我的测试.js在包/制造商/合同中:
yarn run balance **YOUR-ADDRESS**
🗝 列出您的本地帐户:
yarn run send --from 0 --amount 0.5 --to **YOUR-ADDRESS**
💰 支票账户余额:
💸 发送ETH:
🏃♂️ Speedrun (🎥 7 min):
🔧 配置👷编辑编译程序builder.config.js打包/内置
🔬 Smart Contract Sandbox:
✨ BuidlerEVM提供堆栈跟踪和控制台.log调试我们的合同✨
git clone https://github.com/austintgriffith/scaffold-eth.git smart-contract-sandbox cd smart-contract-sandbox yarn install
#run in original terminal window: yarn start #run in terminal window 2: yarn run chain #run in terminal window 3: yarn run deploy
💾 安装:
⚙️ 开始
🔏 编辑或重命名智能合约你的合同.sol在包/制造商/合同中
📝 编辑前端应用程序jsx在软件包中/react app/src
📱 打开http://localhost:3000查看应用程序
☢️ 确保您正在运行您的本地chain yarn run chain,并且您的合同是使用yarn run deploy部署的
🔥 试试yarn run watch,当你改变你的稳定性时,你的前端<;Contract/>;将热重新加载,让你可以访问新的变量和函数:
📽 视频指南
🔏 Web3 Providers:
📚 RTFM:通过示例检查solidity,并检查solidity全局参数和单位
🚀 祝你好运,去找他们!
前端有三个不同的提供商,它们提供对不同链的不同访问级别:
mainnetProvider:(只读)到以太坊eth主网络的Infura连接(以及像DAI或Uniswap一样部署的合同)。
localProvider:本地Buidler帐户,用于读取您的合同(.env文件指向testnet或mainnet)
⛑ Helpers:
injectedProvider:您的个人元掩码、WalletConnect via Argent或其他注入钱包(在页面加载时生成burner provider)
const tx = Transactor(props.injectedProvider, props.gasPrice);
🐜 蚂蚁设计是包含网格、菜单、日期、时间、按钮等组件的UI库
tx({ to: readContracts[contractName].address, value: parseEther("0.001"), });
tx(writeContracts["SmartContractWallet"].updateOwner(newOwner));
☢️ Warning: You will need to update the configuration forreact-app/src/helpers/Transactor.js
to use your BlockNative dappId
🖇 Hooks:
Commonly used Ethereum hooks located in packages/react-app/src/
:
usePoller(fn, delay)
: runs a function on app load and then on a custom interval
usePoller(() => { //do something cool at start and then every three seconds }, 3000);
useBalance(address, provider, [pollTime])
: poll for the balance of an address from a provider
const localBalance = useBalance(address, localProvider);
useBlockNumber(provider,[pollTime])
: get current block number from a provider
const blockNumber = useBlockNumber(props.provider);
useGasPrice([speed])
: gets current “fast” price from ethgasstation
const gasPrice = useGasPrice();
useExchangePrice(mainnetProvider, [pollTime])
: gets current price of Ethereum on the Uniswap exchange
const price = useExchangePrice(mainnetProvider);
useContractLoader(provider)
: loads your smart contract interface
const readContracts = useContractLoader(localProvider); const writeContracts = useContractLoader(injectedProvider);
useContractReader(contracts, contractName, variableName, [pollTime])
: reads a variable from your contract and keeps it in the state
const title = useContractReader(props.readContracts, contractName, "title"); const owner = useContractReader(props.readContracts, contractName, "owner");
useEventListener(contracts, contractName, eventName, [provider], [startBlock])
: listens for events from a smart contract and keeps them in the state
const ownerUpdates = useEventListener( readContracts, contractName, "UpdateOwner", props.localProvider, 1 );
📦 Components:
Your commonly used React Ethereum components located in packages/react-app/src/
:
<Address />
: A simple display for an Ethereum address that uses a Blockie, lets you copy, and links to Etherescan.
<Address value={address} /> <Address value={address} size="short" /> <Address value={address} size="long" blockexplorer="https://blockscout.com/poa/xdai/address/"/> <Address value={address} ensProvider={mainnetProvider}/>
<AddressInput />
: An input box you control with useState for an Ethereum address that uses a Blockie and ENS lookup/display.
const [ address, setAddress ] = useState("") <AddressInput value={address} ensProvider={props.ensProvider} onChange={(address)=>{ setAddress(address) }} />
TODO GIF
<Balance />
: Displays the balance of an address in either dollars or decimal.
<Balance address={address} provider={injectedProvider} dollarMultiplier={price} />
<Account />
: Allows your users to start with an Ethereum address on page load but upgrade to a more secure, injected provider, using Web3Modal. It will track your address
and localProvider
in your app’s state:
const [address, setAddress] = useState(); const [injectedProvider, setInjectedProvider] = useState(); const price = useExchangePrice(mainnetProvider);
<Account address={address} setAddress={setAddress} localProvider={localProvider} injectedProvider={injectedProvider} setInjectedProvider={setInjectedProvider} dollarMultiplier={price} />
💡 Notice: the<Account />
component will callsetAddress
andsetInjectedProvider
for you.
☢️ Warning: You will need to update the configuration forWeb3Modal
to use your Infura Id
<Provider />
: You can choose to display the provider connection status to your users with:
<Provider name={"mainnet"} provider={mainnetProvider} /> <Provider name={"local"} provider={localProvider} /> <Provider name={"injected"} provider={injectedProvider} />
💡 Notice: you will need to check the network id of yourinjectedProvider
compared to yourlocalProvider
ormainnetProvider
and alert your users if they are on the wrong network!
📄 Smart Contract Wallet:
SmartContractWallet.sol
in packages/buidler/contracts
SmartContractWallet.js
React component in packages/react-app/src
yarn run compile
and yarn run deploy
or just yarn run watch
🛠 Run this eth.build with your contract address to ask it who its owner is.
You can import any of the OpenZeppelin contracts:
import "@openzeppelin/contracts/token/ERC20/IERC20.sol";
📤 Save to your Git
Create a new repo with the same name as this project and then:
git remote add origin https://github.com/**YOUR_GITHUB_USERNAME**/**YOUR_COOL_PROJECT_NAME**.git git push -u origin master
🛳 Ship it!
You can deploy your static site and your dapp can go live:
yarn run build # ship it! yarn run surge OR yarn run s3 OR yarn run ipfs
We use cookies and similar technologies (“cookies”) to provide and secure our websites, as well as to analyze the usage of our websites, in order to offer you a great user experience. To learn more about our use of cookies see our Privacy Statement.
Select Accept all to consent to this use, Reject all to decline this use, or More info to control your cookie preferences. You can always update your selection by clicking Cookie Preferences at the bottom of the page.
We use cookies and similar technologies (“cookies”) to provide and secure our websites, as well as to analyze the usage of our websites, in order to offer you a great user experience. To learn more about our use of cookies see our Privacy Statement.
Essential cookies
We use essential cookies to perform essential website functions, e.g. they’re used to log you in. Learn more
Always active
Analytics cookies
We use analytics cookies to understand how you use our websites so we can make them better, e.g. they’re used to gather information about the pages you visit and how many clicks you need to accomplish a task. Learn more
flip order of events
部分转自网络,侵权联系删除区块链源码网
区块链知识分享网, 以太坊dapp资源网, 区块链教程, fabric教程下载, 区块链书籍下载, 区块链资料下载, 区块链视频教程下载, 区块链基础教程, 区块链入门教程, 区块链资源 » 基于区块链的毕业设计🏗 scaffold-eth – 🏗 脚手架eth