
1.环境需要 安装node js 下载地址
2.申请一个RPC地址,我这里用的是alchemy提供的节点:注册地址

注册成功后会有一个dashboard界面,点击view key
注意你的network 我这里用的是以太坊的测试链 Goerli,如果要用主网需要换成主网的network

点击copy复制HTTPS的链接

1.初始化项目
npm init
安装ethers.js
npm install --save ethers
2.当前目录创建index.js文件,配置参数,其中一些参数根据mint的合约需要手动调整
const ethers = require("ethers");
//第一步中申请的https链接
const rpc = new ethers.providers.JsonRpcProvider("https://eth-goerli.g.alchemy.com/v2/<填写你的key>");
//合约地址 我的测试合约0xbECEE4aa0Ba59285E82Ec8f4B70BBb9F63B0482d
const address = "<填写你要mint合约的地址>";
//钱包私钥
const privateKey = "<填写你的钱包私钥>";
//下面配置只是针对我的测试合约配置
//mint数量
const mintCount = 1;
//最大mint数量
const maxCount = 10;
//每个数量单价 单位 eth
const mintPrice = "0.005";
//mint 开始时间 时间戳
const startingTimestamp = 1667623198;
//对应需要调用方法的abi
const abi = [{
inputs: [{
internalType: "uint256",
name: "tokenQuantity",
type: "uint256"
}],
name: "mintPublic",
outputs: [],
stateMutability: "payable",
type: "function"
},
{
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "symbol",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
},
];
abi可与去已验证合约的最下方找到,只需要你用到的方法即可,当然也可以全部复制。

我写的这个合约地址用到的mint方法是mintPublic每个地址最多mint10个每次最多mint1个,你也可以自己写一个合约调用自己的地址。
3.连接钱包
// 用私钥创建钱包对象
const wallet = new ethers.Wallet(privateKey,rpc);
// 构造 nft 的合约对象
const nftObject = new ethers.Contract(address, abi, wallet);
4.监听区块
(async () => {
// 监控区块产生的事件
rpc.on("block", async (blockNumber) => {
// 获取最新产生区块的时间戳
const { timestamp } = await rpc.getBlock(blockNumber);
// 查询地址拥有NFT的数量 balanceOf需要在abi中声明
const numOwned = (await nftObject.balanceOf(wallet.address)).toNumber();
// 打印信息
console.log(`Block #${blockNumber} balance: ${numOwned} times tokens.`);
// 判断时间戳,提前发起请求
if (timestamp + 15 >= startingTimestamp && numOwned != maxCount) {
// 记录发送交易的日志
console.log(`Sending transaction in ${blockNumber}.`);
// 第二、三个参数是矿工费,在 eip-1559 之后,发送交易需要设置 maxFeePerGas 基础费用(会被燃烧掉)和 maxPriorityFeePerGas 小费(给旷工的奖励)
// 可以看到这里通过设置很高 gas 的费用去贿赂旷工尽快打包交易
await nftObject.mintPublic(mintCount, {
value: ethers.utils.parseEther(mintPrice),
maxFeePerGas: ethers.utils.parseUnits("200", "gwei"),
maxPriorityFeePerGas: ethers.utils.parseUnits("200", "gwei"),
});
}
// 当查询到 nft 的余额数量是maxCount个时候退出
if (numOwned == maxCount) {
console.log("Successfully exiting");
process.exit(1);
}
});
})();
代码部分完成运行
node index.js



上述交易链接:测试网区块浏览器链接
因为测试网fee太高我只mint了3个就没eth了。但是可以看出代码是完全没问题的。
当然这只是最简单的自动mint方式,还有很多可以优化。
如果有好的建议或者意见非常欢迎沟通,可以关注推特分享一些感兴趣的东西。

如何用随机打乱顺序的12个助记词生成指定钱包私钥|NodeJS
前段时间参加了一个游戏活动,给出12个助记词但是打乱顺序,钱包里有1个Eth,FCFS。 在没有任何提示的情况下会有12!(479001600)种可能。 这不就是全排列吗!一、准备工作创建一个目录然后初始化项目npm init 安装yarnnpm install -g yarn 安装依赖模块yarn add bip39 ethereum-hdwallet 二、代码部分创建index.js文件 导入模块var fs = require("fs") const bip39 = require('bip39') const HDWallet = require('ethereum-hdwallet'); 配置参数//计数器 var count = 0; //已知的12个助记词 var arrtemp = ['cluster', 'violin', 'cart', 'steel', 'crouch', 'olive', 'water', 'pass', 'lab', 'father', 'until', 'exercise']; //需要对比的钱包地址 var create_addres...

Namada公共测试网节点搭建
namada的公共测试网开启了,可以参与。但是没有激励。准备工作一台服务器,硬件配置cpu 4核以上内存 8G以上硬盘空间500G确保你的机器开启26656和26657 两个端口 如果你用vps作为服务器,如何选择以及如何开启可以查看我之前的文章安装更新安装以及更新一些依赖库 这部分复制粘贴更新安装就行了cd $HOME sudo apt update && sudo apt upgrade -y sudo apt install curl tar wget clang pkg-config libssl-dev libclang-dev jq build-essential bsdmainutils git make ncdu gcc git jq chrony liblz4-tool -y sudo apt install -y uidmap dbus-user-session 继续安装下载rustsudo curl https://sh.rustup.rs -sSf | sh -s -- -y source $HOME/.cargo/env 安装goif...

3分钟撸空投 | Araya Finance一站式Defi协议交互教程
Araya Finance是在Sui上的一站式Defi协议,刚开放过了早期测试网,可以进行测试。 官方推特: https://twitter.com/ArayaFinance 官方discord: https://discord.com/invite/6XfsKdEY8d教程开始首先需要下载Sui钱包,创建一个钱包地址 https://chrome.google.com/webstore/detail/sui-wallet/opcgpfmipidbgpenhmajoajpbobppdil 如果你是新创建的Sui,需要先领取Sui测试币,打开钱包有Request按钮,申请测试Sui即可 来到网站连接钱包,领取测试代币 https://www.arayafi.org/swap任意选两个代币进行swap操作点击确认和授权按钮确认成功界面需要截图保留,后面操作需要提交证明需要保存截图接下来添加流动性,点击liquidity,再点击add liquidity选着添加的数量,点击add liquidity成功后会在列表那里显示记录,接着点击manage → remove 选着移除流动性的比例...
Developer | WEB3 | NFT | Solidity

1.环境需要 安装node js 下载地址
2.申请一个RPC地址,我这里用的是alchemy提供的节点:注册地址

注册成功后会有一个dashboard界面,点击view key
注意你的network 我这里用的是以太坊的测试链 Goerli,如果要用主网需要换成主网的network

点击copy复制HTTPS的链接

1.初始化项目
npm init
安装ethers.js
npm install --save ethers
2.当前目录创建index.js文件,配置参数,其中一些参数根据mint的合约需要手动调整
const ethers = require("ethers");
//第一步中申请的https链接
const rpc = new ethers.providers.JsonRpcProvider("https://eth-goerli.g.alchemy.com/v2/<填写你的key>");
//合约地址 我的测试合约0xbECEE4aa0Ba59285E82Ec8f4B70BBb9F63B0482d
const address = "<填写你要mint合约的地址>";
//钱包私钥
const privateKey = "<填写你的钱包私钥>";
//下面配置只是针对我的测试合约配置
//mint数量
const mintCount = 1;
//最大mint数量
const maxCount = 10;
//每个数量单价 单位 eth
const mintPrice = "0.005";
//mint 开始时间 时间戳
const startingTimestamp = 1667623198;
//对应需要调用方法的abi
const abi = [{
inputs: [{
internalType: "uint256",
name: "tokenQuantity",
type: "uint256"
}],
name: "mintPublic",
outputs: [],
stateMutability: "payable",
type: "function"
},
{
inputs: [{
internalType: "address",
name: "owner",
type: "address"
}],
name: "balanceOf",
outputs: [{
internalType: "uint256",
name: "",
type: "uint256"
}],
stateMutability: "view",
type: "function",
},
{
inputs: [],
name: "symbol",
outputs: [{
internalType: "string",
name: "",
type: "string"
}],
stateMutability: "view",
type: "function"
},
];
abi可与去已验证合约的最下方找到,只需要你用到的方法即可,当然也可以全部复制。

我写的这个合约地址用到的mint方法是mintPublic每个地址最多mint10个每次最多mint1个,你也可以自己写一个合约调用自己的地址。
3.连接钱包
// 用私钥创建钱包对象
const wallet = new ethers.Wallet(privateKey,rpc);
// 构造 nft 的合约对象
const nftObject = new ethers.Contract(address, abi, wallet);
4.监听区块
(async () => {
// 监控区块产生的事件
rpc.on("block", async (blockNumber) => {
// 获取最新产生区块的时间戳
const { timestamp } = await rpc.getBlock(blockNumber);
// 查询地址拥有NFT的数量 balanceOf需要在abi中声明
const numOwned = (await nftObject.balanceOf(wallet.address)).toNumber();
// 打印信息
console.log(`Block #${blockNumber} balance: ${numOwned} times tokens.`);
// 判断时间戳,提前发起请求
if (timestamp + 15 >= startingTimestamp && numOwned != maxCount) {
// 记录发送交易的日志
console.log(`Sending transaction in ${blockNumber}.`);
// 第二、三个参数是矿工费,在 eip-1559 之后,发送交易需要设置 maxFeePerGas 基础费用(会被燃烧掉)和 maxPriorityFeePerGas 小费(给旷工的奖励)
// 可以看到这里通过设置很高 gas 的费用去贿赂旷工尽快打包交易
await nftObject.mintPublic(mintCount, {
value: ethers.utils.parseEther(mintPrice),
maxFeePerGas: ethers.utils.parseUnits("200", "gwei"),
maxPriorityFeePerGas: ethers.utils.parseUnits("200", "gwei"),
});
}
// 当查询到 nft 的余额数量是maxCount个时候退出
if (numOwned == maxCount) {
console.log("Successfully exiting");
process.exit(1);
}
});
})();
代码部分完成运行
node index.js



上述交易链接:测试网区块浏览器链接
因为测试网fee太高我只mint了3个就没eth了。但是可以看出代码是完全没问题的。
当然这只是最简单的自动mint方式,还有很多可以优化。
如果有好的建议或者意见非常欢迎沟通,可以关注推特分享一些感兴趣的东西。

如何用随机打乱顺序的12个助记词生成指定钱包私钥|NodeJS
前段时间参加了一个游戏活动,给出12个助记词但是打乱顺序,钱包里有1个Eth,FCFS。 在没有任何提示的情况下会有12!(479001600)种可能。 这不就是全排列吗!一、准备工作创建一个目录然后初始化项目npm init 安装yarnnpm install -g yarn 安装依赖模块yarn add bip39 ethereum-hdwallet 二、代码部分创建index.js文件 导入模块var fs = require("fs") const bip39 = require('bip39') const HDWallet = require('ethereum-hdwallet'); 配置参数//计数器 var count = 0; //已知的12个助记词 var arrtemp = ['cluster', 'violin', 'cart', 'steel', 'crouch', 'olive', 'water', 'pass', 'lab', 'father', 'until', 'exercise']; //需要对比的钱包地址 var create_addres...

Namada公共测试网节点搭建
namada的公共测试网开启了,可以参与。但是没有激励。准备工作一台服务器,硬件配置cpu 4核以上内存 8G以上硬盘空间500G确保你的机器开启26656和26657 两个端口 如果你用vps作为服务器,如何选择以及如何开启可以查看我之前的文章安装更新安装以及更新一些依赖库 这部分复制粘贴更新安装就行了cd $HOME sudo apt update && sudo apt upgrade -y sudo apt install curl tar wget clang pkg-config libssl-dev libclang-dev jq build-essential bsdmainutils git make ncdu gcc git jq chrony liblz4-tool -y sudo apt install -y uidmap dbus-user-session 继续安装下载rustsudo curl https://sh.rustup.rs -sSf | sh -s -- -y source $HOME/.cargo/env 安装goif...

3分钟撸空投 | Araya Finance一站式Defi协议交互教程
Araya Finance是在Sui上的一站式Defi协议,刚开放过了早期测试网,可以进行测试。 官方推特: https://twitter.com/ArayaFinance 官方discord: https://discord.com/invite/6XfsKdEY8d教程开始首先需要下载Sui钱包,创建一个钱包地址 https://chrome.google.com/webstore/detail/sui-wallet/opcgpfmipidbgpenhmajoajpbobppdil 如果你是新创建的Sui,需要先领取Sui测试币,打开钱包有Request按钮,申请测试Sui即可 来到网站连接钱包,领取测试代币 https://www.arayafi.org/swap任意选两个代币进行swap操作点击确认和授权按钮确认成功界面需要截图保留,后面操作需要提交证明需要保存截图接下来添加流动性,点击liquidity,再点击add liquidity选着添加的数量,点击add liquidity成功后会在列表那里显示记录,接着点击manage → remove 选着移除流动性的比例...
Share Dialog
Share Dialog
Developer | WEB3 | NFT | Solidity

Subscribe to dapaopao

Subscribe to dapaopao
<100 subscribers
<100 subscribers
No activity yet