跳转至

内置函数

原文:https://docs.elrond.com/developers/built-in-functions

## 简介

Elrond协议有一组内置函数。内置函数是一种特殊的协议端函数,它不需要特定的智能合约地址作为交易的接收者。当通过交易调用这样的函数时,内置处理程序被触发并执行它。

对这些函数的调用被视为built-in function calls,并被视为不同于其他智能合约调用。

本文档可能会更改,但在撰写本文时,当前的内置函数是:

  • ClaimDeveloperRewards
  • ChangeOwnerAddress
  • 获取用户名
  • SaveKeyValue
  • ESDTTransfer
  • 伊斯特本
  • ESDTFreeze
  • ESDTUnFreeze
  • ESDTWipe
  • ESDTPause
  • ESDTUnPause
  • ESDTSetRole
  • ESDTUnSetRole
  • ESDTSetLimitedTransfer
  • ESDTUnSetLimitedTransfer
  • ESDTLocalBurn
  • ESDTLocalMint
  • ESDTNFTTransfer
  • ESDTNFTCreate
  • ESDTNFTAddQuantity
  • ESDTNFTBurn
  • ESDTNFTAddURI
  • ESDTNFTUpdateAttributes
  • multimesdtnfttransfer

**智能合约所有者将使用此功能,以便索取智能合约调用期间累积的费用。目前,开发者奖励设定为每次智能合约调用费用的 30%。

ClaimDeveloperRewardsTransaction {
 Sender: <the owner of the SC>
 Receiver: <SC address>
 Value: 0
 GasLimit: 6_000_000
 Data: "ClaimDeveloperRewards"
} 

关于参数如何编码的更多细节,请点击这里

当使用智能合约作为bech32Address时,可以通过获取地址端点查看可用的开发者奖励金额。

ChangeOwnerAddress

当需要新的所有者时,智能合约的所有者将调用该函数。

ChangeOwnerAddressTransaction {
    Sender: <the current owner of the SC>
    Receiver: <SC address>
    Value: 0
    GasLimit: 6_000_000
    Data: "ChangeOwnerAddress" +
          "@" + <new owner address in hexadecimal encoding>
} 

关于参数如何编码的更多细节,请点击这里

set username

SetUserName用于设置给定地址的用户名。收件人的地址必须是该地址的 DNS 智能合约地址。

SetUserNameTransaction {
    Sender: <sender>
    Receiver: <DNS address that corresponds to the sender>
    Value: 0
    GasLimit: 1_200_000
    Data: "SetUserName@" +
          "@" + <username in hexadecimal encoding>
} 

关于参数如何编码的更多细节,点击这里

save key value

SaveKeyValue用于在一个地址的存储器下存储给定的键值。更多细节和交易形式已经在这里介绍过了。

ESDT 和 NFT 内置函数

大多数与 ESDT 和 NFT 相关的内置函数已经在 ESDTNFT 章节中描述过了。**



回到顶部