为什么在 XRPL 上没有删除信任线并解锁保留



我是xrpl的新手,正在学习python教程。昨天我建立了三个信任线,今天我试图删除它们,但没有成功。

在我的在线研究中,我在xrpchat网站上发现了以下两条线索:

https://www.xrpchat.com/topic/2338-how-to-totally-remove-trustlines/

https://www.xrpchat.com/topic/16834-is-there-a-way-to-totally-remove-trust-lines/

两个线程都提供了相同的答案:

如果您的信任线处于默认状态,则不会计入您的储备。如果信任线在两侧都处于默认状态,它将被删除。默认状态表示:

  1. 余额为零
  2. 限制为零
  3. 线路未验证或冻结
  4. 行不允许有波纹,除非帐户有";DefaultRipple";标志设置,在这种情况下,它必须允许波纹

imo我正在努力消除的三条信任线满足了上述四点。。。交易成功完成";删除信任线";但信任线仍在显示,并锁定了对它们的保留(请参阅https://test.bithomp.com/)。

我想不出我错过了什么或做错了什么。因此,如果有人能指出我的错误以及如何解决,我将不胜感激

[在此输入图像描述][1]

这是我使用的地址:rf84on2iJ41Dy67M6ZdMCJzBA9rVZynos4

这是我创建的三条信任线:


token_current_code=";ZAP";

token_issuer=";rpswrb1mV年4R2NHGE1eTemwAg3Y7X";

token_ value=";47.61678015";


token_current_code=";WAN";

token_issuer=";rpswrb1mV年4R2NHGE1eTemwAg3Y7X";

token_ value=";1.17096019";


token_current_code=";MXN";

token_issuer=";rpswrb1mV年4R2NHGE1eTemwAg3Y7X";

token_ value=";17.8441〃;


删除时使用:


token_current_code=";ZAP";

token_issuer=";rpswrb1mV年4R2NHGE1eTemwAg3Y7X";

token_ value=";0";


token_current_code=";WAN";

token_issuer=";rpswrb1mV年4R2NHGE1eTemwAg3Y7X";

token_ value=";0";


token_current_code=";MXN";

token_issuer=";rpswrb1mV年4R2NHGE1eTemwAg3Y7X";

token_ value=";0";


我一直在玩这些没有结果的标志

flags=262144,#禁用无波纹标志,允许在此信任线上产生波纹。flags=131072,#启用无波纹标志flags=1048576,#冻结信任线。

这是我一直在使用的代码:

client = JsonRpcClient(JSON_RPC_URL)
My_Wallet_Address = "rf84on2iJ41Dy67M6ZdMCJzBA9rVZynos4"
My_Wallet_seed = "<myseed>"
#    flags= 262144, # Disable the No Ripple flag, allowing rippling on this trust line.
#    flags= 131072, # Enable the No Ripple flag
#    flags= 1048576, # Freeze the trust line.
tx_flags= 1048576
# -----------------
token_currency_code = "ZAP"
token_issuer = "rpswrb1mVCtahne4R2NHGe1eTemwAg3Y7X"
token_value = "0"
# -----------------
#token_currency_code = "WAN"
#token_issuer = "rpswrb1mVCtahne4R2NHGe1eTemwAg3Y7X"
#token_value = "0"
# -----------------
#token_currency_code = "MXN"
#token_issuer = "rpswrb1mVCtahne4R2NHGe1eTemwAg3Y7X"
#token_value = "0"
# ------------------
from xrpl.core import keypairs
public, private = keypairs.derive_keypair(My_Wallet_seed)
My_Wallet_account = keypairs.derive_classic_address(public)
from xrpl.wallet import Wallet
My_Wallet_wallet: Wallet = xrpl.wallet.Wallet(My_Wallet_seed, 0)
from xrpl.ledger import get_fee
# Delete trust line  -----------------------------------
trust_set_tx = xrpl.models.transactions.TrustSet(
account=My_Wallet_wallet.classic_address,
fee=get_fee(client),
flags= tx_flags,
limit_amount=xrpl.models.amounts.issued_currency_amount.IssuedCurrencyAmount(
currency=token_currency_code,
issuer=token_issuer,
value=token_value,
)
)
ts_prepared = xrpl.transaction.safe_sign_and_autofill_transaction(
transaction=trust_set_tx,
wallet=My_Wallet_wallet,
client=client,
)
print("Delete trust line ...")
response = xrpl.transaction.send_reliable_submission(ts_prepared, client)
print(response)
``

and this is the output:
Delete trust line ...
Response(status=<ResponseStatus.SUCCESS: 'success'>, result={'Account': 'rf84on2iJ41Dy67M6ZdMCJzBA9rVZynos4', 'Fee': '10', 'Flags': 1048576, 'LastLedgerSequence': 24145712, 'LimitAmount': {'currency': 'ZAP', 'issuer': 'rpswrb1mVCtahne4R2NHGe1eTemwAg3Y7X', 'value': '0'}, 'Sequence': 24095419, 'SigningPubKey': 'ED6D46333BBAB91D539FEA52E1129FAB0F52DCA72BD681F5952B0C408D27A4C9F1', 'TransactionType': 'TrustSet', 'TxnSignature': '12653F1536ABB39346F8172A2B1DAC6D1FEA17C1AA12212C845134A937FE74CDC91224F880C4010B487D073F756F736904819E33DE4CF284DF2E8EF7C675B30A', 'date': 694613911, 'hash': '0ED99BDB7A1D6D44AE519407C9154BCC80DA448AF0C1D4B56473383D7DB4DCA4', 'inLedger': 24145695, 'ledger_index': 24145695, 'meta': {'AffectedNodes': [{'ModifiedNode': {'FinalFields': {'Account': 'rf84on2iJ41Dy67M6ZdMCJzBA9rVZynos4', 'Balance': '21999840', 'Flags': 0, 'OwnerCount': 3, 'Sequence': 24095420}, 'LedgerEntryType': 'AccountRoot', 'LedgerIndex': 'B4F90BF9B121813B822C4473F30E5CCCC4BE798E74CD55C0B15A77E644BE7D9C', 'PreviousFields': {'Balance': '21999850', 'Sequence': 24095419}, 'PreviousTxnID': '2458A55EBDCD918E8C067305B93D3FDD56824EC26608FD475F3A6E25115F9E67', 'PreviousTxnLgrSeq': 24124624}}], 'TransactionIndex': 0, 'TransactionResult': 'tesSUCCESS'}, 'validated': True}, id=None, type=<ResponseType.RESPONSE: 'response'>)
``
Any Idea, what my mistake is?
Many thanks in advance.
[1]: https://i.stack.imgur.com/vusZe.png

您走在正确的轨道上,列出的点是正确的。找出信任线不匹配的点可能很难,但我这样做的方法是调用account_lines并查看结果的字段。

在你的ZAP线的情况下,它显示的是:

{
"account": "rpswrb1mVCtahne4R2NHGe1eTemwAg3Y7X",
"balance": "0",
"currency": "ZAP",
"freeze": true,
"limit": "0",
"limit_peer": "0",
"no_ripple": true,
"no_ripple_peer": true,
"quality_in": 0,
"quality_out": 0
}

你可以看到,极限、质量和平衡数都是零,所以这是设定的。两侧的No Ripple设置都设置为true,这可能是默认设置,不过我必须仔细检查两个帐户的default Ripple标志才能确定。但是freeze设置在您一侧设置为true,这是而不是的默认设置。查看您的代码示例,这是有意义的,因为您的事务一直在设置tx_flags= 1048576,即";启用冻结";标志值。因此,要删除这一行,您需要向发送一个TrustSet以清除冻结。其值为xrpl.models.transactions.TrustSetFlag.TF_CLEAR_FREEZE或0x00200000。据我所见,其他两条信任线处于相同状态。

简言之,如果只更改一行,您的代码示例应该工作得很好:

tx_flags=xrpl.models.transactions.TrustSetFlag.TF_CLEAR_FREEZE

(这是假设你已经完成了import xrpl。当然,你可以以不同的方式进行导入,或者只使用原始值2097152。(

无论如何,在使用此更改再次运行代码后,您应该会看到信任行被删除,您可以使用资源管理器或WebSocket API工具验证这一点,使用我一开始链接的相同示例account_lines调用。

最新更新