Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the redux-framework domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/mmsteam/public_html/wp-includes/functions.php on line 6121

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the betterdocs domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/mmsteam/public_html/wp-includes/functions.php on line 6121

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the cyr2lat domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/mmsteam/public_html/wp-includes/functions.php on line 6121

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the yandex-metrica domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/mmsteam/public_html/wp-includes/functions.php on line 6121

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the ultimate-blocks domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/mmsteam/public_html/wp-includes/functions.php on line 6121

Notice: Function _load_textdomain_just_in_time was called incorrectly. Translation loading for the teknolab domain was triggered too early. This is usually an indicator for some code in the plugin or theme running too early. Translations should be loaded at the init action or later. Please see Debugging in WordPress for more information. (This message was added in version 6.7.0.) in /home/mmsteam/public_html/wp-includes/functions.php on line 6121
Представляем типы платежных транзакций Sui – MMS
MMS

В нашем последнем выпуске Sui представлены три новых собственных типа транзакций и объявлены устаревшими три существующих метода. Новые API —Платить,PaySui, а также PayAllSui— эффективно заменить TransferSui, SplitCoin и MergeCoin. Три старых метода пока остаются функциональными, и мы заранее уведомим сообщество, прежде чем удалять их.

Эти способы оплаты обеспечивают большую простоту использования и могут поддерживать различные сценарии с меньшими затратами на управление монетами. Мы надеемся, что разработчики найдут больше гибкости для поддержки более широкого набора вариантов использования, а также более надежные гарантии API, которые обычно ожидаются от вариантов использования платежей.

Платить,PaySui, а такжеPayAllSuiбыли выпущены как часть Sui 0.14.0.

Новые типы транзакций Pay*

Payтранзакции принимают несколько монет и отправляют на несколько адресов, следуя указанному списку сумм. Payтранзакции принимают любой тип монеты, включая SUI. Для оплаты газа будет использоваться отдельный объект SUI, и при необходимости протокол выберет его для транзакции.

  • Если получатель и отправитель одни и те же, Payфактически является обобщенной версией splitCoinи mergeCoin.

PaySuiтранзакции принимают несколько монет SUI и отправляют их на несколько адресов в соответствии с указанным списком сумм. PaySuiпринимает только монеты SUI и не требует газовой монеты.

  • Первый ввод объекта монеты SUI будет использоваться для оплаты газа, поэтому баланс этой монеты SUI должен быть равен или превышать бюджет газа.
  • Общий ввод баланса монет SUI должен быть достаточным для покрытия как газового бюджета, так и сумм, подлежащих переводу.

PayAllSuiтранзакции берут несколько монет SUI и отправляют их одному получателю после вычета оплаты за газ. После транзакции под адресом отправителя останется строго ноль введенных монет SUI.

  • Первый ввод объекта монеты SUI будет использоваться для оплаты газа, поэтому баланс этой монеты SUI должен быть равен или превышать бюджет газа.
  • Отправитель может перевести все свои монеты SUI на другой адрес со строго нулевым SUI, оставшимся в одной транзакции с помощью этого типа транзакции.

Руководство по миграции

Ниже приведены примеры кода миграции на основе Typescript SDK. Эти изменения очень похожи на то, что будет использоваться для конечных точек Rust SDK и RPC.

  • TransferSuiс указанной суммой перейдет наPaySui
// pre-migration codes in TS
const txn = {
    suiObjectId: id,
    gasBudget: GAS_BUDGET,
    recipient: recipient_addr,
    amount: amount,
};
await signer.transferSuiWithRequestType(txn);


// post-migration codes in TS
const txn = {
    inputCoins: [id],
	// length of recipients need to be the same as amounts
    recipients: [recipient_addr],
    amounts: [amount],
    gasBudget: GAS_BUDGET,
};
await signer.paySuiWithRequestType(txn);
  • TransferSuiбез указанной суммы будет мигрировать вPayAllSui
// pre-migration codes in TS
const txn = {
    suiObjectId: id,
    gasBudget: GAS_BUDGET,
    recipient: recipient_addr,
    amount: null,
};
await signer.transferSuiWithRequestType(txn);


// post-migration codes in TS
const txn = {
    inputCoins: [id],
    recipient: recipient_addr,
    gasBudget: GAS_BUDGET,
};
await signer.payAllSuiWithRequestType(txn);
  • SplitCoinи MergeCoinперейдет на Pay
// pre-migration split coin
const txn = {
  coinObjectId: id;
  splitAmounts: [amount0, amount1],
  gasPayment: gas_obj_id,
  gasBudget: GAS_BUDGET,
};
await signer.SplitCoinWithRequestType(txn);
// post-migration pay txn for splitting
const txn = {
  inputCoins: [id],
// length of recipients need to be the same as amounts
  recipients: [sender_addr, sender_addr],
  amounts: [amount0, amount1],
  gasPayment: gas_obj_id,
  gasBudget: GAS_BUDGET,
};
await signer.PayWithRequestType(txn);


// pre-migration merge coin
const txn = {
  primaryCoin: primary_coin_id,
  coinToMerge: coin_to_merge,
  gasPayment?: gas_obj_id,
  gasBudget: GAS_BUDGET,
};
await signer.MergeCoinWithRequestType(txn);
// post-migration pay txn for merging
const txn = {
  inputCoins: [primary_coin_id, coin_to_merge],
  recipients: [sender_addr],
  amounts: [primary_coin_amount + coin_to_merge_amount],
  gasPayment: gas_obj_id,
  gasBudget: GAS_BUDGET,
};
await signer.PayWithRequestType(txn);

Текущая связанная работа

Наша команда будет продолжать работать над дальнейшим улучшением опыта разработчиков и скорости, связанной с платежами. Другие инициативы, над которыми мы работаем, включают:

  • Реализуйте аналогичные полезные функции, как Payв модулях Move.
  • Внедрите оценку газа для улучшения баланса газа и оценки общей стоимости газа.
  • Дальнейшее улучшение API выбора монет для различных вариантов использования.

Узнать больше о Sui

Стройте вместе с нами!

Мы в восторге от того, как разворачивается будущее, и приглашаем создателей и строителей Присоединяйтесь к нам

Tags:

Leave a Reply

Your email address will not be published. Required fields are marked *