作为一些和链上交互的一些调试基础
`关于添加新的测试网络,下面例子只是简单举例BSC的如果其他的区块链浏览器,以及相关文档完善,就可以找对应链的文档去进行查询。
(其实插一句补充,基本和合约接口约定,coinPrice, coinAmount)
咱们这边的 number value amount ,太懵圈了,统一下最好。
举个例子比如这个,我们之前主要业务在 BSC 链上
https://docs.bnbchain.org/docs/BSCtestnet
查询链ID
https://docs.bnbchain.org/docs/rpc
比如,举例BSC 测试网
网络名称: bsc test (自己随意命名)
新的RPC URL: https://data-seed-prebsc-1-s1.bnbchain.org:8545 (上面网站上粘一个)
链ID: 0x61 或者 97 (97 不行就写 0x61)
货币符号:tBNB
区块链浏览器URL(可选):
https://testnet.bscscan.com/
(这个还是写上舒服点,方便在钱包里直接跳区块链浏览器)
下面有我自己写好的一个。`


当然 添加好的网络也是可以进行修改的。


切过去之后。

这里 补充一下 区块链浏览器的使用方法:
https://testnet.bscscan.com/address/****** (一般指合约地址, 钱包地址也行)
https://testnet.bscscan.com/tx/****** (一般指某一条的交易记录)
https://testnet.bscscan.com/token/****** (一般指代币地址)
比如我随意找了一条,USDT 测试网的地址
https://testnet.bscscan.com/token/0x337610d27c682e347c9cd60bd4b3b107c9d34ddd
Block 我用的很少大概代指区块
https://testnet.bscscan.com/token/0x337610d27c682e347c9cd60bd4b3b107c9d34ddd#readContract
https://testnet.bscscan.com/address/****** (一般指合约地址)
https://testnet.bscscan.com/tx/****** (一般指单次交易记录)
https://testnet.bscscan.com/token/0x337610d27c682e347c9cd60bd4b3b107c9d34ddd (指代币地址)
Block 我用的比较少,大概指区块是否落块吧。

只要把对应的钱包地址粘进去就行,


一次只能 0.3 个了现在

它说我是机器人

这次成功了!!!(用钱包去浏览器上看一下,3秒前,领了0.3)

本次的钱包地址:
https://testnet.bscscan.com/address/0xB55953C6E35784763Adb51E44FA25b5E2fBA07c6
本次交易的tx:
https://testnet.bscscan.com/tx/0x3fc19792632048f1d7d322455974e6fb1eae1da74cd04ea6dd3f98265cfb282c
所以调取合约交易上没上链是否成功,均可以在区块链浏览器服务商查询。
漏了漏了,补充下 eth 测试网的添加, 这个MetaMask 自带最好用,设置里面找到网络




然后水龙头低的可怜 一天0.02 个,

然后有个不友好的地方就是必须持有,ETH 且是主网的才能领取,领取流程入 BSC ,就不测试了。
https://faucet.quicknode.com/ethereum/goerli
https://goerlifaucet.com/

最好补充实用的工具网站:
https://chainlist.org/chain/56
查询节点速度,和以及自动添加钱包地址。(节点速度还是很重要的)
我之前碰到过好一些无法调取合约API的情况,就是用户自己得钱包节点堵塞了,这种情况下更换节点就能得到很好的改善。(1秒以上均为堵塞节点,可能延时而无法调取API,例如下图也大部分标记警告了)

然后在开发当中,查询一些合约的接口,也可以使用区块链浏览器
https://testnet.bscscan.com/token/0x337610d27c682e347c9cd60bd4b3b107c9d34ddd#readContract还是 USDT 测试网这个地址:

先进行 Connect to Web3

有警告不用管点确定

用 metaMask 进行链接调试:
链接上之后,有好多的查询方法,我们查一个地址,

因为我们没有这个测试币(一般合约开发,测试合约上线后可以打大量测试代币,他那边生成)
同样的我们可以在钱包增加这个代币:

主要你的网络一定要测试网, 然后写入该币的合约地址就可以了
0x337610d27c682e347c9cd60bd4b3b107c9d34ddd


所以我没有 该代币。。。

增加成功钱包里也会显示。
然后同样的我们也可以在 浏览器内直接调取授权:

填写地址和数量:


在活动里面进行确认。
在区块链浏览器里进行确认:
https://testnet.bscscan.com/tx/0x1a5472b2e2cfd0eff6de761db8f613bf61b63b34c8008df5e1cf4cb73cbaab19
看是否能给我 mint 10个币出来


结果是当然不行,我没有该代币的权限,
调用 mint 函数的账户不是合约的所有者,而该函数要求只有所有者才能执行。
但是演示 这个例子就是在 调取合约报错的时候,我们会在对应的区块链浏览器可以看到该条报错信息。
然后,在插个小知识点,
比如 ETH 是不需要授权的,
1.ETH 是以太坊区块链的原生代币,它是直接在以太坊协议层面支持的。它的转账并不涉及智能合约,而是通过以太坊协议进行的。
2.以太坊网络内置了对 ETH 转账的支持。以太坊的核心协议直接处理 ETH 的转账和交易,无需额外的智能合约干预。
3.相比之下,ERC-20 代币是通过智能合约实现的,这些合约需要授权和转移函数来确保安全性和灵活性。ERC-20 代币通常遵循 ERC-20 标准,其中规定了一组通用的接口和函数,包括 approve 和 transferFrom,以进行授权和转移。
所以 Binance Smart Chain(BSC)作为以太坊的一个侧链,与以太坊相似。 所以同样不需要对BSC 进行授权(这个在做业务的时候面对多币种会使用到)
在插一个小的tip,就是 BSC 端的USDT 和 ETH 端的 USDT 位数不一样。
BSC 上的 USDT 为 1e18
https://bscscan.com/token/0x55d398326f99059ff775485246999027b3197955

ETH 上的 USDT 为 1e6
https://etherscan.io/token/0xdac17f958d2ee523a2206206994597c13d831ec7

当然我们进合约里也可以查到,字段是 decimals


以上 over。
文章采用 知识共享署名 4.0 国际许可协议 进行许可,转载时请注明原文链接。