开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第4天,点击查看活动详情
说在前面
从这篇文章开始,不出意外的话,开始讲一些对接时候的细节。
正文开始
授权
看到这个标题,我想应该有人会问了,前面不是讲过签名授权了吗。为什么还有授权,是不是在水,其实这篇文章讲的授权是将代币授权给合约,让合约可以直接在你账户里扣钱。对没错 免密支付!!
授权那分为两部分,一个是查询当前合约所授权的代币数量还有多少,一个是将代币授权给合约使用
// contract:"代币合约",传参中合约地址并不是代币地址,而是需要使用代币的合约
//allowance 为查询合约中授权代币数量
contract.methods.allowance('钱包地址', "合约地址").call().then(res => {
// res 返回的代币数量 同样 也是代币合约精度的数量
if (res <= 1) {
console.warn("当前合约没有进行授权", res)
//没有授权,去进行授权
// contract:"代币合约", 授权数量 需要转换精度 转换为代币所使用的精度
contract.methods.approve("合约地址", "授权数量").send(
{
gas: 600000,
gaslimit: 10,
from: "用户链接钱包"},
(err, hash) => {
//err 报错
// hash 交易hash
})
} else {
console.log("已经授权过了,当前合约剩余可支配数:", res)
}
})
添加代币到钱包
window.ethereum.request({
method: 'wallet_watchAsset',
params: {
type: 'ERC20',
options: {
address: '代币地址',
symbol: '代币名称',
decimals: '代币精度“,
image: ‘代币图标地址(网络地址)',
},
},
}).then((success) => {
if (success) {
//添加成功
} else {
//添加失败
}
})
下一期开始讲解一些真实DAPP开发中所需要注意的事项,另外要不要出Tron版本那