
适用范围:解释通用机制
tp钱包授权合约相关术语如何理解,可以先从以太坊账户及ERC-20代币机制入手。以下解释适用于相关技术语境,不代表TP钱包某个版本的功能说明,也不能直接套用于其他链或其他代币标准。
钱包、账户与合约地址
以太坊账户文档区分钱包与账户:钱包是交互工具,账户才是链上活动的主体。外部账户由私钥控制,合约账户按代码逻辑运行。地址用于标识账户,不能仅凭地址外观判断其用途。

因此,“钱包地址”“代币合约地址”“被授权地址”不是同一个概念。理解授权时,需要分别识别资产持有人、记录代币规则的合约,以及获得支出权限的对象,不能把它们统称为“授权合约”。

owner、spender与allowance
OpenZeppelin的ERC-20接口说明中,owner是代币持有人,spender是被允许代为支出代币的地址;allowance表示剩余授权额度。approve用于设置额度,transferFrom则在余额和权限等条件满足时执行代为转移。
可以把这组关系理解为“谁允许谁动用哪一种代币、最多多少”。权限针对特定代币及特定双方关系,并不是把整个账户的控制权交给对方。spender也不必然是合约地址。
授权额度不等于转账金额
设置额度是在改变权限,实际转移是在改变代币余额,两者不能混为一谈。授权本身不等于已经扣走对应数量,也不意味着被授权方只能在用户再次确认后才动用额度。
余额与额度是不同限制:额度足够但余额不足,不能据此完成转移;余额充足但授权不足,也不满足代为支出的条件。所谓“无限授权”描述的是极大的权限上限,并不意味着资产余额无限。
常见问题:撤销、断开与记录
撤销普通ERC-20额度通常指将对应额度设为零,其含义是取消这项支出权限,不是撤回已经发生的转移。关闭页面或断开应用连接属于交互层变化,不能据此认定链上额度已经归零。
Approval与Transfer也应分开理解:前者与授权设置有关,后者与代币转移有关。历史授权记录不等于当前剩余额度,判断权限状态应关注对应代币合约中的当前allowance,而不能只看一条旧记录。