Near-example/workshop--exploring-assemblyscript-contracts/assembly/A.sample-projects/04.token-contra

Posted

技术标签:

【中文标题】Near-example/workshop--exploring-assemblyscript-contracts/assembly/A.sample-projects/04.token-contract/中的“批准”功能【英文标题】:The "approve" function in near-example/workshop--exploring-assemblyscript-contracts/assembly/A.sample-projects/04.token-contract/ 【发布时间】:2021-12-26 07:02:57 【问题描述】:

有人介意解释这个令牌smart contract 中的approveallowance 函数吗:

export function approve(spender: string, tokens: u64): boolean 
  logging.log("approve: " + spender + " tokens: " + tokens.toString());
  approves.set(context.sender + ":" + spender, tokens);
  return true;

export function allowance(tokenOwner: string, spender: string): u64 
  const key = tokenOwner + ":" + spender;
  if (!approves.contains(key)) 
    return 0;
  
  return approves.getSome(key);

我试图根据我从 Cointelegraph 读到的有关 ERC-20 的 approveallowance 函数的博文了解他们在做什么

并非如此,因为 [approve] 根据代币的总供应量检查交易。 它确保没有遗漏或多余。 保护我们假设的扑克游戏完整性的另一种方法是确保没有人将额外的 BLU 带到桌面上。所以,[approve] 通过检查桌子上的 BLU 总数等于 10 来允许交换。

就像我之前说的,在这个repo 中存在的代币智能合约中包含一些文档不会有什么坏处。请!

【问题讨论】:

【参考方案1】:

Approve 函数设置合约允许从所有者转移的代币数量。

Allowance 授予第 3 方使用所有者令牌的权限。话虽如此,这并不意味着其他人可以窃取您的钱,而是您允许智能合约代表您使用它们。

【讨论】:

以上是关于Near-example/workshop--exploring-assemblyscript-contracts/assembly/A.sample-projects/04.token-contra的主要内容,如果未能解决你的问题,请参考以下文章