模块中的动态令牌 |阿普托斯移动

问题描述 投票:0回答:1

我是 Aptos Move 的新手,

我正在编写一个模块以允许动态令牌作为 Solidity。在 Solidity 中,我们可以将 ERC20 地址传递到构造函数中,智能合约会将此地址解析为 ERC20 智能合约,并调用

transferFrom
函数将
amount
的代币从
sender
转移到该智能合约。

采用不同的架构,根据我目前的了解,在Aptos Move中构建模块时,所有者仍然需要通过

function_name<address:token's module>(parameters)
声明令牌的类型。但是用户调用与代币相关的函数也必须包含这个
function_name<address:token's module>(parameters)

总结我想知道在Solidity中,用户不必太关心区块链,比如代币的地址,我只知道他们有这个代币的数量,所以他们可以调用一些函数。然而,在 Aptos 中,用户必须明确声明他们想要使用什么代币。

我在Aptos Move中提到的转移代币的方式是标准的、通用的方式吗?还是我误解了任何部分?

提前感谢您的指导!

token blockchain solidity smartcontracts aptos
1个回答
1
投票

是的,没错。 Aptos Move 中的方法有意比 Solidity 更明确。 在 Aptos Move 中转移代币时,您需要使用泛型指定代币类型,例如:

public entry fun deposit<CoinType>(amount: u64) {
    // Transfer logic here
}`

这种显式类型声明是 Move 中的核心设计选择,可提供额外的安全性和清晰度。 Solidity 通过地址使用动态调度,但 Move 使用静态类型来防止运行时错误并使令牌交互更加可预测。

调用您的模块的用户确实需要指定令牌类型:

module.deposit<0x1::aptos_coin::AptosCoin>(100)

这是 Aptos 生态系统的标准模式,带来编译时类型检查和更清晰的代码意图等好处。 希望您能有一个清晰的认识

© www.soinside.com 2019 - 2024. All rights reserved.