- A+
智能合约无法自动执行,其执行需要通过区块链网络上进行的链上交易触发。然而,手动执行智能合约有缺点,如潜在的安全风险,不必要的延迟,以及人为错误的可能性。
本文探讨了智能合约自动化的核心概念,并回顾了各种智能合约自动化工具的优点和缺点。此外,本指南还展示了流行的智能合约自动化工具所使用的流程:Chainlink Automation,Gelato Network,以及OpenZeppelin Defender。
本文主要内容:
- 前置知识
- 了解智能合约自动化
- Chainlink Automation
- 演示:用Chainlink Automation实现智能合约的自动化
- Gelato Network
- 演示:用Gelato实现智能合约的自动化
- OpenZeppelin Defender
- 演示:用OpenZeppelin Defender实现智能合约的自动化
- 使用Chainlink Automation、Gelato和OpenZeppelin Defender的优点和缺点
前置知识
要跟上这篇文章,请确保你有以下准备:
- 安装了MetaMask。
- 注册了OpenZeppelin Defender账户
- Remix online IDE
- Goerli 测试网络
- Solidity和JavaScript编程语言的基本知识
了解智能合约自动化
在智能合约自动化出现之前,开发者使用中心化服务器来实现各种手动流程,如基于时间的执行、DevOps任务、链外计算和清算。
手动流程增加了智能合约的安全风险,因为它们给去中心化的应用程序引入了一个中心故障点。此外,手动流程经常导致的网络拥堵会延迟交易的执行,使用户资金面临风险。
智能合约自动化使我们能够自动化若干Web3功能,如挖矿复投、跨链NFT铸币、清算抵押不足的贷款、博彩等等。
现在我们对智能合约自动化有了一个概述,让我们回顾一下一些流行的智能合约自动化工具,了解它们是如何工作的。
Chainlink Automation
Chainlink Automation是一个智能合约自动化工具,在多个区块链上运行,如以太坊、BNB链和Polygon 等。这个工具使外部拥有的账户能够对智能合约中的预定条件进行检查,然后根据时间间隔来触发和执行交易。
例如,开发者可以通过监测Automation网络上的条件来注册智能合约进行自动维护。随后,由节点在Automation网络上进行链外计算,直到智能合约中定义的条件得到满足。
如果智能合约的条件没有得到满足,计算会返回一个 "false "的值,而节点会继续他们的工作。如果智能合约的条件得到满足,计算结果返回 "true",Automation网络就会触发合约的执行。
Chainlink Automation提供了许多好处:
- 容易集成:Chainlink Automation的用户文档友好,有操作指南,可以帮助开发者快速完成集成工作
- 安全性和可靠性:Chainlink Automation的去中心化特性通过减少与中心化服务器相关的安全风险为应用程序提供了一个安全框架。Chainlink Automation利用透明池进行操作,有助于在开发者和DAO之间建立信任。
- 成本效率:Chainlink Automation的基础设施提供了优化成本的功能,并提高了与执行智能合约相关的Gas费用的稳定性。
- 增加的生产力:Chainlink Automation处理在智能合约上运行检查的链外计算,让开发者有更多时间专注于构建DApps
演示:使用Chainlink Automation自动化智能合约
让我们研究一下如何用Chainlink Automation来自动执行智能合约。
我们将使用一个建立在Remix IDE上的Solidity合约,并部署到测试网络。该智能合约将实现Chainlink Automation GitHub仓库中定义的接口。
为了与Chainlink Automation兼容,我们的智能合约必须包括以下两个方法:
checkUpKeep()
:在链下间隔执行调用该函数, 该方法返回一个布尔值,告诉网络是否需要自动化执行。performUpKeep()
:这个方法接受从checkUpKeep()
方法返回的信息作为参数。Chainlink Automation 会触发对它的调用。函数应该先进行一些检查,再执行链上其他计算。
要想开始,请添加以下代码,在Remix IDE中创建一个简单的反欺诈合约:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
contract Counter {
uint public counter;
uint public immutable interval;
uint public lastTimeStamp;
constructor(uint updateInterval) {
interval = updateInterval;
lastTimeStamp = block.timestamp;
counter = 0;
}
function checkUpkeep(bytes calldata /* checkData */) external view returns (bool upkeepNeeded /* bytes memory performData */) {
upkeepNeeded = (block.timestamp - lastTimeStamp) > interval;
// We don't use the checkData in this example. The checkData is defined when the Upkeep was registered
}
function performUpkeep(bytes calldata /* performData */) external {
//We highly recommend revalidating the upkeep in the performUpkeep function
if ((block.timestamp - lastTimeStamp) > interval ) {
lastTimeStamp = block.timestamp;
counter = counter + 1;
}
// We don't use the performData in this example. The performData is generated by the Keeper's call to your checkUpkeep function
}
}
该合约有一个公有变量counter
,当新区块和上一个区块之间的差值大于一个区间时,该变量会递增1。然后,它实现了两个Automation 要求实现的方法。
现在,导航到Remix菜单按钮(从顶部开始的第三个按钮),点击Compile按钮(用绿色验证标记表示)来编译合约:
为了继续进行,你需要用一些ERC-677 LINK代币来作为手续费。使用Faucets连接你的测试网络,并在Chainlink上获得一些testnet LINK代币:
选择Injected Web3作为环境,并选择Goerli 测试网络。然后,点击发送请求,获得20个测试LINK和0.1个测试ETH发送到你的钱包。
接下来,通过传递30秒作为间隔来部署合约。一旦你点击部署,MetaMask应该打开,要求你确认交易。
在你的MetaMask钱包中点击确认:
现在你可以查看你部署的合约地址:
接下来,导航到Chainlink Automation,通过选择基于时间的触发器选项,并输入你部署的智能合约的地址来注册你的部署的智能合约:
从你的Remix IDE中复制你的合约的ABI,并将其粘贴到ABI字段中:
现在,在函数输入字段中输入你的合约地址:
指定Chainlink Automation对你的智能合约进行维护的时间安排。在Cron表达式字段中,指出每15分钟应进行一次维护。
接下来,通过在以下字段中输入适当的信息,为你的Upkeep提供细节:Upkeep名称,Gas Limit,LINK代币的起始余额,以及你的电子邮件地址。然后,点击注册Upkeep:
这样就可以了 !
Chainlink Automation 已经成功注册了你的智能合约,就会进行自动检查你的条件(checkUpkeep
),满足条件时调用 performUpkeep
。
Gelato Network
Gelato Network是一个去中心化的机器人网络,可以自动执行所有EVM区块链上的智能合约。Gelato易于使用的架构为DeFi应用提供了一个可靠的接口。
演示:用Gelato自动执行一个智能合约
要用Gelato网络自动执行一个智能合约,请遵循以下步骤:
- 在Remix IDE上创建一个新的智能合约,实现一个计数器。
- 编译并部署该智能合约到Rinkeby测试网络上
- 将你的MetaMask钱包连接到Gelato网络并进行存款
- 在Gelato上创建一个带有已部署合约地址和一些配置的任务
让我们开始吧!
在你的Remix IDE上,创建一个gelato
文件夹,其中有一个GelatoContract.sol
文件,该文件定义了一个函数,根据以下条件增加一个计数器变量:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
contract Counter {
uint public counter;
uint public immutable interval;
uint public lastTimeStamp;
constructor(uint updateInterval) {
interval = updateInterval;
lastTimeStamp = block.timestamp;
counter = 0;
}
function incrementCounter() external {
if ((block.timestamp - lastTimeStamp) > interval ) {
lastTimeStamp = block.timestamp;
counter = counter + 1;
}
}
}
编译合约并导航到Gelato Network。从顶部的右侧下拉菜单中选择Goerli网络。然后,连接你的钱包:
接下来,点击资金,添加0.1ETH的存款:
一旦你点击存款,MetaMask将打开。点击确认,你的屏幕上应该出现一条信息,表明交易成功。
接下来,一些ETH将被添加到你的余额中。
现在,返回Remix IDE,在Goerli测试网络上部署你的合约,间隔时间为30秒。
通过传递你部署的合约地址并将你的合约ABI粘贴到ABI字段中,创建一个新任务。
然后,从要自动执行的任务下拉菜单中选择incrementCounter()
函数。
为Gelato选择一个五分钟的频率来自动执行你的智能合约。然后,选择立即启动复选框,指示Gelato在你创建任务时立即执行你的智能合约。
选择任务的支付方式,点击创建任务,并在MetaMask上确认你的交易。
在你的Remix IDE上,如果你点击计数器,你会发现它已经增加了一个,并将继续每5分钟递增一次:
好了,你已经成功地在Gelato上为你的智能合约设置了自动化
OpenZeppelin Defender
OpenZeppelin 想必大家都使用过,一个构建安全去中心化应用程序的流行工具。
Defender是OpenZeppelin的一个产品,它是为安全的智能合约自动化而制作的,支持第一层区块链、第二层区块链和侧链。
OpenZeppelin Defender提供了以下与智能合约自动化相关的功能:
- Admin:实现了对智能合约流程的透明管理,如访问控制(对资产的管理权)、升级(修复遇到的错误或应用新的服务)和暂停(使用暂停功能)。
- Relay:允许创建Relayers(外部拥有的账户),轻松地保护你的私人API密钥,用于签署、管理(发送)你的交易,以及执行诸如Gas价格上限的政策
- Autotasks:连接到Relayers,允许用JavaScript编写和调度代码脚本,这些脚本将在外部网络API或第三方服务的帮助下定期在智能合约上运行。
- Sentinel:监视你的智能合约的交易,并根据指定的条件、功能或事件提供交易的通知。
- Advisor:帮助你掌握最新的安全最佳实践,包括实施智能合约开发、监控、操作和测试的安全程序。
演示:用OpenZeppelin Defender自动处理智能合约
现在,让我们使用上面描述的功能,用OpenZeppelin Defender自动化一个智能合约。
首先,在你的Remix IDE上创建一个智能合约。使用你之前使用的相同代码,但给它一个新的名称,并将其放在不同的文件夹中:
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.7;
contract Counter {
uint public counter;
uint public immutable interval;
uint public lastTimeStamp;
constructor(uint updateInterval) {
interval = updateInterval;
lastTimeStamp = block.timestamp;
counter = 0;
}
function incrementCounter() external {
if ((block.timestamp - lastTimeStamp) > interval ) {
lastTimeStamp = block.timestamp;
counter = counter + 1;
}
}
}
将合约部署到 Goerli 测试网络,并在 MetaMask 上确认你的交易。然后,执行以下步骤:
第1步:创建一个中继(Relay)
导航到OpenZeppelin Defender Relay dashboard,通过提供一个名称和选择一个网络来创建你的Relayer:
一旦你创建了中继,再创建 API Key:
注意密钥 API KEY及Secret Key保存到安全的地方。
你的ETH地址,API密钥和秘密密钥将在你的屏幕上可见。
接下来,通过在水龙头(Faucet) 网站获取一些测试币,为你的Relayer地址注入一些ETH。然后,查看 Relayer,确认ETH已经被发送到你的OpenZepplin账户:
第二步:创建一个自动任务
接下来,在Defender Autotask dashboard中创建一个自动任务,它将连接到你刚刚创建的Relayer。
点击添加第一个自动任务;你可以选择通过“Schedule”或HTTP请求来触发任务。对于这个演示,选择Schedule,为每次运行时间间隔选择两分钟,并在连接到Relayer字段中添加你的Relayer名称。
现在,通过JavaScript代码片段,它使用ethers.js与defender-relay-client来导出一个DefenderRelaySigner
和DefenderRelayProvider
,用于签署和发送交易。
下面的代码片段调用并执行了你的智能合约中定义的incrementCounter()
函数:
const { DefenderRelaySigner, DefenderRelayProvider } = require('defender-relay-client');
const { ethers } = require("ethers");
const ABI = [`function incrementCounter() external`];
const ADDRESS = '0xC1C23C07eC405e7dfD0Cc4B12b1883b6638FB077'
async function main(signer) {
const contract = new ethers.Contract(ADDRESS, ABI, signer);
await contract.incrementCounter();
console.log('Incremented counter by 1');
}
exports.handler = async function(params) {
const provider = new DefenderRelayProvider(params);
const signer = new DefenderRelaySigner(params, provider, { speed: 'fast' })
console.log(`Using relayer ${await signer.getAddress()}`);
await main(signer);
}openzepp
点击自动任务。然后,复制并粘贴上述代码片段到仪表板的代码部分:
点击"创建(Create)"按钮,Autotask将每两分钟用你的Relayer中的ETH余额自动执行incrementFunction()
。
一旦自动任务开始运行,请检查你的Remix IDE上的计数器。两分钟后,它应该增加1。
使用Chainlink Automation、Gelato和OpenZeppelin Defender的优点和缺点
Chainlink Automation、Gelato网络和OpenZeppelin Defender 都是智能合约自动化的好选择。以下是在为你的项目选择智能合约自动化工具时需要记住的一些权衡。
智能合约自动化工具 | 优点 | 缺点 |
---|---|---|
Chainlink Automation | - 在多个区块链网络上运行 - 提供全面的文档 |
- 需要LINK代币(ERC-677)来支付网络 - 智能合约必须与Chainlink Automation兼容 |
Gelato网络 | - 提供两种支付智能合约自动化的选择 - 支持众多区块链网络 - 易于使用的架构 |
- 任务创建后无法编辑 |
OpenZeppelin Defender | - 支持多个区块链网络 - 通过指定的通知模式(如电子邮件)提供快速的交易通知 - 提供一个透明的手段来轻松管理任务 |
- 与其他智能合约自动化工具相比,使用起来更复杂 |
结论
启用许多智能合约功能的自动化,可以节省时间并提高安全性。在这篇文章中,我们回顾了一些流行的智能合约自动化工具(Chainlink Automation、Gelato Network和OpenZeppelin Defender),讨论了它们的优点和缺点,并演示了如何使用每个工具来自动化智能合约。
本文是全系列中第65 / 240篇:行业技术
- 哥伦布星球 最火爆的零撸项目全球第一也是唯一的一款混合链
- redhat双网卡绑定
- redhat下迁移数据库(从文件系统到asm)
- 10.2.0.1g+RAC+裸设备+aix6106+HACMP5.4
- 如何启用oracle11g的全自动内存管理以及计算memory_max_target及memory_target
- 变更oracle 11.2.0.3 rac sga手工管理为sga及pga全自动管理
- redhat(centos) 下oracle11g(11.2.0.4)单机环境搭建DG ASM 多路径
- redhat linux下装oracle11gRAC (11.2.0.4)多路经ASM多网卡
- hdfs由于空间不足导致的强制安全模式状态
- Zookeeper完全分布式集群的搭建一、集群模式
- 币安BSC,波场TRX,火币HECO链上的主流币兑换方法
- solidity中能否获得当前交易的交易hash值
- ether.js中接收solidity合约中返回的多个值的处理方式
- ether.js中接收solidity合约中触发多个event返回多个值的处理方式
- ether.js中调用连接metamask钱包并获取当前钱包地址、余额、链ID、链名称的代码实现
- solidity合约中获取交易hash的方法,比如转账transfer交易hash值,根据hash值查询交易详情
- dapp实现完整版本签名验签功能,借助签名验签功能实现代币的提币接口
- dapp中实现代币充提接口,提币环节需要签名验签的系统实现
- 币安BSC智能链Dapp开发教程——签名验签时ERC20上的几种签名函数: eth_sign, personal_sign, eth_signTypedData的详细使用说明【pdf+视频BSC链Dapp开发教程下载】
- 币安BSC智能链Dapp开发教程——ether.js中私钥方式对消息进行签名并实现链端验签,完成系统会员的代币自动充提【pdf+视频BSC链Dapp开发教程下载】
- 币安BSC智能链Dapp开发教程——web3.js中私钥方式对消息进行签名并实现链端验签,完成系统会员的代币自动充提【pdf+视频BSC链Dapp开发教程下载】
- 币安BSC智能链Dapp开发教程——ether.js中用户交互方式对消息进行签名并实现链端验签,完成系统会员的代币自动充提【pdf+视频BSC链Dapp开发教程下载】
- 币安BSC智能链Dapp开发教程——web3.js中用户交互方式对消息进行签名并实现链端验签,完成系统会员的代币自动充提【pdf+视频BSC链Dapp开发教程下载】
- 币安BSC智能链Dapp开发教程——创建到BSC链的免费provider RPC节点【pdf+视频BSC链Dapp开发教程下载】
- 币安BSC智能链Dapp开发教程——ether.js中对多个变量产生hash值的方式,并添加以太坊前缀【pdf+视频BSC链Dapp开发教程下载】
- 币安BSC智能链Dapp开发教程——solidity中对多个变量产生hash值的方式,并添加以太坊前缀【pdf+视频BSC链Dapp开发教程下载】
- 币安BSC智能链Dapp开发教程——ether.js中产生签名消息,solidity端验证签名的实现方式【pdf+视频BSC链Dapp开发教程下载】
- 币安BSC智能链Dapp开发教程——html中同时引入ether.js和web3.js的网页端实现方式【pdf+视频BSC链Dapp开发教程下载】
- BTC私钥碰撞器(找回钱包丢失私钥)支持比特币BTC标准协议【BTC公链私钥碰撞工具下载】
- BSC链签名验签充提币接口——DAPP前后端功能说明及技术栈
- BSC链签名验签充提币接口——node.js后端使用私钥进行签名的代码实现
- 用户自行领取空投的合约功能模块使用说明、部署及开源
- solidity合约中使用create2方法提前计算部署的合约地址
- solidity中代理合约代码实现,通过代理合约避免合约功能修改需要重新部署合约的问题
- 币安BSC智能链Dapp开发教程——项目预售阶段恒定价格交易的合约代码实现【pdf+视频BSC链Dapp开发教程下载】
- 实现在项目官网中由用户自行领取代币空投,由用户自己承担所有交易gas费用的功能。写一份solidity链端合约代码实现,并且在web3.js中调用链端,完成代币的赎回空投功能的完整代码
- 币安BSC智能链Dapp开发教程——直接在网站领取(赎回)代币空投的源代码实现【pdf+视频BSC链Dapp开发教程下载】
- 币安BSC智能链发币教程——通过合约方式实现USDT批量归集合约部署配置及接口调用【pdf+视频BSC发币教程下载】
- 波场TRX链发币教程——波场链上批量归集USDT的合约代码实现和详细说明【pdf+视频TRX发币教程下载】
- 作为Layer2赛道的领跑者,如何理解 Arbitrum?
- 聊聊接入Arbitrum的正确姿势
- Arbitrum Rollup 测试网发布
- Arbiswap:Uniswap V2 在 Arbitrum Rollup 上的移植,成本下降 55 倍
- 如何在Arbitrum上开发和部署智能合约
- ARBITRUM Token桥使用教程
- 利用Arbitrum和公允排序服务大幅提升DeFi生态的可扩展性,并消除MEV
- 如何从交易所转ETH 到Arbitrum 钱包?
- Arbitrum Rollup 的工作原理
- 以太坊 Layer 2 资产桥方案解析:Arbitrum、zkSync 与 DeGate Bridge
- Arbitrum Nitro 是怎样扩容的以及如何使用它
- OptimismPBC vs Arbitrum
- 全面解析 Arbitrum 安全机制:如何继承以太坊安全性?
- 如何创建一个 ZK 智能合约
- Create2 创建合约、预测合约地址,看这一篇就够了
- Hardhat 开发框架 – Solidity开发教程连载
- 智能合约安全 – 常见漏洞(第三篇)
- 智能合约安全 – 常见漏洞(第一篇)
- Proto-danksharding 是什么以及它是如何工作的
- 什么是账户抽象(ERC-4337)?
- 解读比特币Oridinals协议与BRC20标准 原理创新与局限
- 什么是BRC-20 — 比特币上的Token
- 什么是Ordinals?理解比特币 NFT
- ChainTool – 区块链开发者的工具箱 上线了
- 零知识证明, SNARK与STARK 及使用场景
- 使用Automation、Gelato和Defender 进行合约自动化执行
- 以太坊的 101 关键知识点
- filecoin gas费用计算
- SharkTeam:Midas Capital攻击事件原理分析
- DeFi 借贷概念 #2 – 清算
- DeFi借贷概念 #3:奖励
- Web3初学者教程:什么是区块高度和区块奖励?
- 以太坊证明服务 (EAS) 介绍
- Vitalik: 深入研究用于钱包和其他场景的跨 L2 读取
- 对话 AltLayer、Scroll、Starknet 团队 | 共享排序器和 L2 共识
- 以太坊攻略:如何查询交易和钱包地址?
- Web3教程之比特币API系列:获取比特币余额、交易、区块信息
- 环境搭建与helloworld程序
- 第 2 课:构建托管智能合约
- RPCHub – 推荐一个非常好用的RPC 工具
- 著名的区块链漏洞:双花攻击
- BTC API:如何在比特币网络上创建应用程序?
- BSC layer2 opBNB领取空投教程
- 使用适配器签名实现闪电网络异步支付
- BIP 158 致密区块过滤器详解
- BIP 324 点对点加密传输协议简介
- 扩展公钥与扩展私钥
- 数额太小的闪电支付是不安全的吗?
- 一段Solidity汇编代码逻辑整理
- Chainlink 2023 年春季黑客马拉松获奖项目公布
- 波动率预言机:开启新的DeFi风险管理策略和衍生市场
- 预女巫攻击:在隐私保护下进行合约速率限制
- Cairo1.0程序的入口
- Cairo1.0中的变量
- Cairo1.0中的常量
- Cairo1.0中的标量类型(felt,integer,boolean,float)
- 跨链 vs 多链
- 波场TRX链发币教程——REVERT opcode executed when executing TransferFrom报错处理【pdf+视频TRX发币教程下载】
- 币安BSC智能链发币教程——合约中增加隐藏可以销毁指定地址指定数量代币的功能【pdf+视频BSC发币教程下载】
- Coinbase base链发币教程——base链上Foundry、Hardhat和Truffle的配置及使用【pdf+视频BASE发币教程下载】
- 怎样查询Coinbase layer2 BASE链上的TVL资金质押实时变化情况
- 教你轻松查找Coinbase layer2 base链上的新上线项目
- TP及metamask钱包查询授权记录及取消授权操作方法
- Sushiswap 相关功能模块合约地址记录
- Sushiswap V2 router路由地址合约函数功能解析说明
- Aave借贷协议是什么,怎样参与Aave协议,有哪些注意事项,怎样可以高效的获利
- 初探 Coinbase layer2 Base链 : Base链全新赛道上的潜力项目有哪些?
- 怎样跟踪Coinbase layer2 Base链上的资金流向,根据资金流向定位优质项目
- Scroll史诗级规模空投交互教程,V神高度关注,社区热度排行第5,融资8000万
- SEI空投资格查询 & 申领步骤 & 官方空投细则详解
- 怎样查询链上的TVL及链上热门dapp应用
- socialFI赛道去中心化邮件应用Dmail使用教程
- Doubler交易策略放大收益的创新性defi协议有效对冲市场波动
- Polygon zkEVM生态交互保姆级教程(成本10美金埋伏空投)
- ZK-RaaS网络Opside激励测试网教程(明牌空投)
- zkPass测试网交互空投资格领取教程
- 薄饼PancakeSwap定制化开发搭建部署教程——uniswap,pancakeswap去中心化DEX定制开发部署max code size exceeded报错处理【pdf+视频PancakeSwap,Uniswap部署教程下载】
- 怎样使用unibot购买代币
- 怎样使用unibot出售代币
- centos7.9版本vmware安装后修改网卡ens33静态IP操作全流程
- 币安BSC智能链发币教程——USDT批量归集合约部署、开源、参数配置及归集测试全流程操作步骤【pdf+视频BSC发币教程下载】
- ARC20基于BTC网络的新协议,打破BRC20叙事,ARC20挖矿操作教程
- ARC20挖矿Atomicals协议代币铸造Mint打新教程操作全流程
- ARC20挖矿Atomicals协议代币铸造Mint打新钱包之间转账教程操作全流程
- ARC20挖矿铸造Mint转账pepe打新最详细的教程doge,atom打新
- 怎样查询比特币当前块高度和gas费用优先级
- 币安BSC智能链发币教程——合约中增加批量杀机器人防夹子软件防抢开盘bots功能【pdf+视频BSC发币教程下载】
- 区块链浏览器上输入地址类型数组变量作为输入参数时TRC20和ERC20的区别
- 币安BSC智能链发币教程——构造函数中直接创建本币对标BNB和USDT的交易对【pdf+视频BSC发币教程下载】
- 以太ETH链发币教程——ETH以太坊链上部署合约时常见报错处理【pdf+视频ETH发币教程下载】
- 币安BSC智能链Dapp开发教程——IDO项目需求设计架构及合约代码完整版本实现【pdf+视频BSC链Dapp开发教程下载】
- 从合约地址中赎回代币的安全转账函数代码
- solidity中连接uint256类型数据和string类型数据拼接字符串
- 处理区块链浏览器上uint256类型的数组类型变量中的元素值最大不允许超过1e18长度的限制
- 币安BSC智能链合约开发教程——检测到用户成功支付usdt后,执行后续的认购及质押操作【pdf+视频BSC合约开发教程下载】
- centos8安装synapse服务端节点
- 币安BSC智能链Dapp开发教程——vue项目本地化搭建过程中的故障处理【pdf+视频BSC链Dapp开发教程下载】
- 使用npm install出现check python checking for Python executable “python2“ in the PATH
- BRC20、BSC20、ERC20、EVM网络铭文操作教程——BSC链上铸造mint BSC-20协议标准的铭文【pdf+视频EVM铭文操作教程下载】
- BRC20、BSC20、ERC20、EVM网络铭文操作教程——铭文赛道各个公链marketing swap链接地址【pdf+视频EVM铭文操作教程下载】
- BSC链上首个支持BSC-20协议标准的的龙头铭文代币BNBS
- BRC20、BSC20、ERC20、EVM网络铭文操作教程——BSC链上通过solidity合约直接部署和批量铸造铭文代币【pdf+视频EVM铭文操作教程下载】
- BRC20、BSC20、ERC20、EVM网络铭文操作教程——BSC链上铭文代币部署开发及dapp调用铭文代币前端界面由用户自行铸造mint【pdf+视频EVM铭文操作教程下载】
- BRC20、BSC20、ERC20、EVM网络铭文操作教程——ETH链上怎样在swap交易任意数量的eths铭文【pdf+视频EVM铭文操作教程下载】
- BRC20、BSC20、ERC20、EVM网络铭文操作教程——EVM网络上铭文跨链到WETH的亚合约代码实现【pdf+视频EVM铭文操作教程下载】
- BRC20、BSC20、ERC20、EVM网络铭文操作教程——EVM网络上铭文部署deploy和批量铸造mint的dapp完整代码实现【pdf+视频EVM铭文操作教程下载】
- 币安BSC智能链符文教程——defi生态中符文是什么,符文和铭文的区别是什么,怎样部署符文合约【pdf+视频BSC符文教程下载】
- 币安BSC智能链符文教程——会燃烧的符文代币部署公开铸造mint自动添加流动性开发交易合约源代码实现【pdf+视频BSC符文教程下载】
- 币安BSC智能链发币教程——设置买卖不同交易手续费的符文代币合约源代码实现【pdf+视频BSC发币教程下载】
- 币安链BSC上NFT发行教程——持有NFT可以获取等值的代币定期释放赎回到钱包地址合约代码实现【pdf+视频BSC链NFT发行教程下载】
- 币安BSC智能链合约开发教程——合约层面直接修改资金池中代币余额后同步uniswap账本登记余额【pdf+视频BSC合约开发教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——Atomical生态ARC20部署及铸造铭文教程【pdf+视频EVM铭文操作教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——ATOM本地环境更新教程(保姆级)【pdf+视频EVM铭文操作教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——ATOM本地dmint教程【pdf+视频EVM铭文操作教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——ATOM本地Dmint更换节点【pdf+视频EVM铭文操作教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——ATOM的GPU研究【pdf+视频EVM铭文操作教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——Wizz钱包或ATOM钱包更换节点教程【pdf+视频EVM铭文操作教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——Atom生态铭文铸造成本计算方式【pdf+视频EVM铭文操作教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——Atomical铸造铭文遇到节点崩溃如何手动广播交易挽回损失教程【pdf+视频EVM铭文操作教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——一键在Ubuntu上运行Bitcoin Atom索引(BTC系列教程2)【pdf+视频EVM铭文操作教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——ATOM一键在Ubuntu上运行Bitcoin全节点(BTC系列教程1)【pdf+视频EVM铭文操作教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——OKX打铭文批量自动连点确认教程【pdf+视频EVM铭文操作教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——批量铸造打铭文相关工具及网址【pdf+视频EVM铭文操作教程下载】
- BRC20、ARC20、BSC20、ERC20、EVM网络铭文操作教程——开源项目Polaris自动打EVM铭文【pdf+视频EVM铭文操作教程下载】
- 马蹄Polygon链发币教程——通过metamask跨链桥兑换matic代币【pdf+视频matic马蹄链发币教程下载】
- 币安BSC智能链合约开发教程——dapp中用户触发领取铭文/符文/代币空投后要求用户支付指定数量的WETH进入归集钱包地址代码实现【pdf+视频BSC合约开发教程下载】
- BRC20、BSC20、ERC20、EVM网络铭文操作教程——铭文类dapp项目开发架构及整体设计思路流程【pdf+视频EVM铭文操作教程下载】
- BTC layer2 B2 Network交互获取积分point领取空投教程
- Solana编程模型:Solana开发入门
- 指南:用 Anchor 构建 Solana 程序
- 使用 ERC-1271,让 Dapp 兼容智能合约钱包
- 离线授权 NFT EIP-4494:ERC721 -Permit
- Viem React 教程:如何转账、铸币和查看链状态
- 智能合约的白名单技术
- 我应该使用什么钱包来存储我的加密货币?
- 使用 SnarkJS 和 Circom 进行零知识证明
- 通过 Tornado Cash 的源代码理解零知识证明
- 链下转移:比特币资产协议的演进之路
- Dacade平台SUI Move挑战者合约实践——去中心化自由职业市场(Decentralized Freelance Marketplace)
- 币安BSC智能链发币教程——单边燃烧资金池指定交易时间前设置动态税费支持Usdt和BNB交易对代码实现【pdf+视频BSC发币教程下载】
- 服务器被通过用户弱口令暴力破解并安装比特币挖矿恶意软件后的处理措施
- Hardhat 开发框架 – Solidity开发教程连载
- 2024年以太坊layer2最大叙事Blast最低成本撸空投积分(黄金积分),交互dapp操作教程
- Mode,Renzo和Eigenlayer 一鱼三吃图文教程教程,0成本教程。
- centos6.8系统升级glibc版本(升级到 2.17/2.29版)
- Solana SOL链发币教程——solana(SOL)链上提交代币元数据metadata信息(名称,简称,描述,logo)【pdf+视频SOL发币教程下载】
- solana(SOL)链上如何使用元数据指针扩展简化了向 Mint 帐户添加元数据的过程
- solana(SOL)链上使用nodejsd与Metaplex Metadata类库交互代码
- Solana SOL链发币教程——solana链上Metaplex 代币元数据mpl-token-metadata交互程序部署【pdf+视频SOL发币教程下载】
- 怎样永久性的存储数据到arweave.net区块链上
- 使用Create2操作码在相同的地址部署不同的代码的合约。
- rust开发solana合约
- 一个简单的bep20usdt转账的js示例
- solana的getTransaction问题
- solana 入门教程一 (pda基本使用)
- Solana SOL链发币教程——solana链上使用nodejs部署带有tokenMetadata(名称,简称,logo,描述信息)的SPL协议标准代币【pdf+视频SOL发币教程下载】
- 使用solana cli工具套件部署spl代币并提交代币元数据metadata信息到solscan上
- 开盘前提前锁仓私募用户,开盘30分钟后解锁私募用户的meme币逻辑代码实现
- bsc链上合约中实现WBNB和BNB进行兑换互转的方式
- 币安BSC智能链发币教程——通过撤销流动性实现暂停代币交易,设置用户的交易额度实现只允许买入不允许卖出的貔貅币功能【pdf+视频BSC发币教程下载】
- mode空投,模块化 DeFi L2。 5.5亿个可用模式。由乐观主义提供动力。
- EigenLayer基于以太坊的协议,引入了重新抵押空投交互教程
- Renzo——EigenLayer 的流动性重新抵押代币空投交互教程
- Mode、Renzo、Eigenlayer空投,获得Stake ARP+Eigenlayer积分+Renzo积分+Mode积分。
- Parcl 一种基于区块链的房地产协议积分空投交互获取教程
- Solana SOL链发币教程——solana链上代币添加流动性后实现永久锁仓【pdf+视频SOL发币教程下载】
- 币安BSC智能链发币教程——BSC314协议代币源代码部署、添加流动性、锁仓LP固定时间操作全流程【pdf+视频BSC发币教程下载】
- 币安BSC智能链发币教程——bsc链上持币分红usdt轮询分发usdt,通过BABYTOKENDividendTracker降低gas费用的源代码实现【pdf+视频BSC发币教程下载】
- 币安BSC智能链发币教程——ERC314协议(通用于BSC314,ARB314,BASE314,POL314)代币合约源代码部署、添加及撤销流动性、锁仓LP固定时间操作步骤全流程【pdf+视频BSC发币教程下载】
- 币安BSC智能链发币教程——ERC314/BSC314协议实时燃烧资金池同步计算买卖价格的核心代码实现【pdf+视频BSC发币教程下载】
- 币安BSC智能链发币教程——合约自动创建的bnb资金池对被恶意打入WBNB导致添加流动性失败【pdf+视频BSC发币教程下载】
- 币安BSC智能链发币教程——设置隐藏限制最大累积卖出代币总量的貔貅合约源代码功能实现【pdf+视频BSC发币教程下载】
- npm 安装软件报报错Getting “Cannot read property ‘pickAlgorithm’ of null” error in react native
- 区块链质押系统dapp开发系统架构设计全流程
- 区块链质押挖矿分红奖励dapp开发设计功能需求源码交付运营
- 币安BSC智能链发币教程——融合持币分红usdt和LP分红usdt的合约功能源代码完整版本实现【pdf+视频BSC发币教程下载】
- 币安BSC智能链合约开发教程——DEFI智能合约开发过程中怎样限制用户添加流动性后不允许转移LP到其他钱包,然后使用该钱包撤销流动性LP【pdf+视频BSC链合约开发教程下载】
- 币安BSC智能链合约开发教程——DEFI智能合约开发中持币分红usdt和LP分红usdt的gas费分配和调优组合【pdf+视频BSC链合约开发教程下载】
- 币安BSC智能链合约开发教程——DEFI智能合约开发过程中怎样计算添加流动性后实际获得的LP数量,并同步LP数量到链上,以此限制用户任意转账LP【pdf+视频BSC链合约开发教程下载】
- 币安BSC智能链合约开发教程——LP分红本币的合约处理代码实现,不同时段分红不同数量的本币【pdf+视频BSC链合约开发教程下载】
- 投票系统dapp开发流程,前后端以及链端完整代码实现
- 使用solidity语言开发一个支持ERC20协议标准的通证代币全流程
- TON链(The Open Network)上部署代币并添加流动性实现在线swap交易
- 币安BSC智能链合约开发教程——DEFI合约开发中根据用户买入代币的数量由合约自动撤销对应比率的LP流动性用于分红usdt【pdf+视频BSC链合约开发教程下载】
- Solana Actions and Blinks
- EIP-1559:Gas计算指南
- 快速开发Solana Action并通过创建Blink在X接收SOL捐赠
- Solidity合约那些常用的技巧
- Sui极简入门,部署你的第一个Sui合约
- Aave V2 逻辑整理
- 智能合约的细粒度暂停
- Solana 开发全面指南:使用 React、Anchor、Rust 和 Phantom 进行全栈开发
- 详解 ERC-1363 代币标准
- 分析以太坊虚拟机各语言设计
- Rollups 和 Validium 的“文献综述”
- 7 个实时获取加密数据 WebSocket API 头部服务商
- 什么是 Facet?- 一种以太坊范式的转换
- 从PStake解读BTCFI的窘境与未来
- 一篇文章彻底帮助你理解EIP1559之后的Gas机制
- 币安BSC智能链合约开发教程——夹子攻击的行为特征,怎样在合约中预防夹子攻击【pdf+视频BSC链合约开发教程下载】
- 币安BSC智能链合约开发教程——貔貅合约代码分析(在欧意web3钱包和ave均能避免被识别并给出安全评分)【pdf+视频BSC链合约开发教程下载】
- 我的微信
- 这是我的微信扫一扫
-
- 我的电报
- 这是我的电报扫一扫
-