随笔分类 -  Chain/Web3/Solidity

1 2 下一页

[DOT] Polkadot-js 的官方资源
摘要:官网:https://polkadot.js.org/ 浏览器扩展(即钱包, 等同以太坊的MetaMask):https://polkadot.js.org/extension/ 钱包的作用方便你管理自己的DOT资产,参与DOT生态的项目 (众贷、质押等) 基本都需要连接 DOT 钱包签名操作。 链 阅读全文

posted @ 2021-12-22 23:45 ercom 阅读(291) 评论(0) 推荐(0)

[FAQ][Hardhat] Error HH501: Couldn't download compiler version 0.8.0. Please check your connection.
摘要:当使用 npx hardhat compile 命令编译智能合约时,会先下载你在 hardhat.config.js 配置中对应版本的 solidity 编译器。 当网络不可达时,就会提示无法下载的错误。 至少有两种方式可以解决: 1. 通过指定环境变量 HTTP_PROXY 或 HTTPS_PRO 阅读全文

posted @ 2021-12-19 16:41 ercom 阅读(1485) 评论(0) 推荐(0)

[DApp] Moralis 生产阶段的服务安全设置 -锁定数据库
摘要:Moralis 的基础设施数据库是使用的 MongoDB,其非常适合Dev阶段的快速开发。 如果进入生产环境,需要锁定数据库,防止任何用户可利用SDK向Mongo插入多余数据。 另外,Moralis 提供了很多方式来保护app的数据,对于公共数据,可使用 class (数据表)级别的权限锁定表使之 阅读全文

posted @ 2021-12-16 23:43 ercom 阅读(263) 评论(0) 推荐(0)

[DApp] ethers.js VS Moralis
摘要:ether.js 是 Web3 封装的 js 库,特别适合以太坊平台。 Moralis 不仅是 Web3 的封装,还是一体化解决方案,包括服务端部署方案和适配各种链,使用范围更广。 在选择上,主要还是看项目涉及的内容,有针对性的选择解决方案。 Link:https://www.cnblogs.com 阅读全文

posted @ 2021-11-29 21:02 ercom 阅读(151) 评论(0) 推荐(0)

[DApp] Moralis 无服务架构方式构建 DApp
摘要:Moralis 提供的使用功能包括三个方面: 进一步封装Web3功能的 Moralis SDK,极大方便了开发者对于DApp基础功能的开发,比如 MetaMask登录验证,签名,IPFS集成,DApp托管。 提供快速的全节点API,快速连接到 以太坊/BSC/Polygon 节点。 索引过的区块链数 阅读全文

posted @ 2021-06-27 23:17 ercom 阅读(1089) 评论(0) 推荐(0)

[Contract] openzeppelin/cli 开发, 部署, 升级智能合约
摘要:Install Dependency $ npm init $ npm install @openzeppelin/cli Setup project $ npx openzeppelin init Write first contract in contracts/, then compile p 阅读全文

posted @ 2020-03-28 17:20 ercom 阅读(714) 评论(0) 推荐(0)

[FAQ] Truffle Deployer 合约传参问题: Invalid number of parameters for "undefined". Got 0 expected 1!
摘要:在使用 `truffle migrate` 时,如果合约的构造函数需要传参,而部署脚本里没有传的时候,就会报这个错。 未传参时: const Migrations = artifacts.require("Migrations"); module.exports = function(deploye 阅读全文

posted @ 2020-03-26 15:19 ercom 阅读(2170) 评论(0) 推荐(0)

[FAQ] Solidity 并发执行 ? 重入攻击 ?
摘要:Solidity 实现的合约中,函数操作都是原子操作,旷工本地执行,取得共识后发布到区块链上。 实际发布到区块链上的不存在并发,全节点同步状态到本地。 Solidity 中有三种方式进行转账,address.transfer、address.send、address.call。 Solidity 重 阅读全文

posted @ 2020-03-25 17:20 ercom 阅读(1075) 评论(0) 推荐(0)

[Contract] Solidity 多种访问控制 (Access Control) 实现方式
摘要:在 solidity 中控制访问,一般是通过 modifier 修饰符方法来直接做。 那么对于稍复杂的多种访问控制,通常需要一个统一操作的模块化类库。 现在已经有了这样的类库存在,我们通过一个实现功能上增删改查的 library,然后在具体的合约中声明变量、按需使用。 建议参考 openzeppel 阅读全文

posted @ 2020-03-25 16:49 ercom 阅读(804) 评论(0) 推荐(0)

[Contract] 一次搞懂 Solidity 的 using xx for xx
摘要:using A for *; # 把 A 的函数附给任意类型使用 using A for B; # 意思是把 A 中的方法附给 B 使用 使用上面的方式,那么在我们的合约中定义了 B 类型的变量后,就可以像 B.xx() 这样使用 A 库的函数了。 举个局部例子:_miners 可以直接使用 has 阅读全文

posted @ 2020-03-24 18:35 ercom 阅读(619) 评论(0) 推荐(0)

[FAQ] VisualStudio, Source file requires different compiler version (current compiler is 0.6.1+cxxxxxx)
摘要:当使用的 Solidity 库文件中 pragma 指定的 版本 与本地编译器的使用版本不一致时,会出现这类提示。 解决方式是菜单栏 View -> Extensions -> Extension Settings -> Compile Using Remote Versio 编辑 settings 阅读全文

posted @ 2020-03-24 14:27 ercom 阅读(2511) 评论(0) 推荐(0)

[Ethereum] 浅谈 ERC20 在 openzeppelin-contracts 中的结构与实现
摘要:目前 openzeppelin-contracts 的稳定版是 v2.5,截止到本文发布,最新的 Tag 为 v3.0.0-rc.0 以下是 token/ETC20 的文件列表: IERC20.sol 是 interface 接口文件,不包含实现。 ERC20.sol 是对上面 interface 阅读全文

posted @ 2020-03-24 14:22 ercom 阅读(1691) 评论(0) 推荐(0)

[Ethereum] 浅谈加密商品市场 OpenSea 与 opensea-js
摘要:OpenSea 是用于交易以太坊加密商品的网上商店,主要的商品是 ERC721、ERC1155 标准的 Token。 它的特色就在于,只需要一个部署好的智能合约,你就能在 OpenSea 提供的界面上交易,这点类似 OneClickDapp 这一类针对合约提供统一交互的网站。 所以在交易层面你完全不 阅读全文

posted @ 2020-03-23 15:58 ercom 阅读(2212) 评论(0) 推荐(0)

[Ethereum] Gas Station Network (GSN) eip-1613 与 Gas Relay Network (GRN) eip-1077
摘要:在 Ethereum dapp 中,任何涉及状态改动的交易都需要消耗 Gas,这限制了很多没有钱包或者 ETH 的用户对 dapp 的采用。 理念 让非以太用户能够访问智能合约 (如dapps),允许合约接受“接听来电”,即为来电付费。 让合约在可公开访问的渠道上“监听”(例如web URL)。鼓励 阅读全文

posted @ 2020-03-20 16:46 ercom 阅读(553) 评论(0) 推荐(0)

[Contract] truffle-flattener 合并 Solidity 文件的依赖到一个文件
摘要:使用 $ npm install truffle-flattener -g $ truffle-flattener <solidity-files> > output.sol 为什么不是 Solidity Flattener ? truffle-flattener 与 truffle 结合紧密,利用 阅读全文

posted @ 2020-03-20 14:30 ercom 阅读(1992) 评论(0) 推荐(0)

[Contract] 一次搞懂 ETH Gas, GasPrice, GasLimit 之间关系与使用
摘要:Gas 是一个交易费的基本单位(unit),类似汽油的单位“升”,比如一次链上交易可能消耗 5 Gas 汽油,由运行的程序决定。 GasPrice 是一个 Gas 的单价,一般用 Gwei 来形象表示 ( 但注意实际在应用程序中都是使用 Wei ),GasPrice 由用户自己设置,其大小会决定交易 阅读全文

posted @ 2020-03-20 00:03 ercom 阅读(4880) 评论(0) 推荐(0)

[Contract] ETH 与 Gas 之间的价格转换关系, Ethereum Gas Price Chart
摘要:以太坊网络每天的平均气价(Gas)是变化,有一张价格表:https://etherscan.io/chart/gasprice 然后你可以知道 1 Gas = xx Gwei,再换算一下 1 ETH = xx Gas 即可。 另外你需要 搞懂 ETH Gas, GasPrice, GasLimit 阅读全文

posted @ 2020-03-14 09:11 ercom 阅读(2174) 评论(0) 推荐(0)

[Contract] Solidity 合约发布到测试网 ropsten 的作用
摘要:当我们本地完成了一系列测试以后,接下来就是准备上线了。 关于合约部署可以参考这篇:Solidity 合约使用 truffle 部署到测试网和主网 你可能有一个疑问,在上主网之前,先上测试网的作用是什么呢? 理由是,我们可以通过 MetaMask 切换到 ropsten 网络,进行 Dapp 上的常规 阅读全文

posted @ 2020-03-14 07:07 ercom 阅读(631) 评论(0) 推荐(0)

[Contract] Solidity 合约使用 truffle 部署到测试网和主网
摘要:使用 truffle 发布到非本地的以太坊主网或者测试网时,需要提供钱包的助记词或私钥。 首先安装 truffle 组件:npm install @truffle/hdwallet-provider 注册 https://infura.io,得到 project id 和 key,使用其 api 连 阅读全文

posted @ 2020-03-13 19:22 ercom 阅读(1692) 评论(0) 推荐(0)

[FAQ] Solidity 合约销毁 ?
摘要:仅创建者可以销毁合约的示例: address public owner; // When deploy contract constructor() public { owner = msg.sender; } function destroyContract() external onlyOwne 阅读全文

posted @ 2020-03-10 16:23 ercom 阅读(912) 评论(0) 推荐(0)

1 2 下一页