首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >为什么不删除信任线并在xrpl上取消锁定

为什么不删除信任线并在xrpl上取消锁定
EN

Stack Overflow用户
提问于 2022-01-04 12:44:00
回答 1查看 247关注 0票数 1

我对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“标志,在这种情况下,它必须允许涟漪。

我要删除三条信任线,以实现上述四点.这些操作成功地完成了"Trustline已删除“,但仍在显示信任线,并锁定了它们的保留(请参见https://test.bithomp.com/的屏幕截图)。

我不知道我错过了什么或做错了什么。所以我真的很感激,如果有人能指出我的错误是什么以及如何解决它。

在这里输入图像描述

这是我使用的地址: rf84on2iJ41Dy67M6ZdMCJzBA9rVZynos4

以下是我创建的三条信任线:

token_currency_code = "ZAP“

token_issuer = "rpswrb1mVCtahne4R2NHGe1eTemwAg3Y7X“

token_value = "47.61678015“

token_currency_code =“广域网”

token_issuer = "rpswrb1mVCtahne4R2NHGe1eTemwAg3Y7X“

token_value = "1.17096019“

token_currency_code = "MXN“

token_issuer = "rpswrb1mVCtahne4R2NHGe1eTemwAg3Y7X“

token_value = "17.8441“

删除时,我使用:

token_currency_code = "ZAP“

token_issuer = "rpswrb1mVCtahne4R2NHGe1eTemwAg3Y7X“

token_value = "0“

token_currency_code =“广域网”

token_issuer = "rpswrb1mVCtahne4R2NHGe1eTemwAg3Y7X“

token_value = "0“

token_currency_code = "MXN“

token_issuer = "rpswrb1mVCtahne4R2NHGe1eTemwAg3Y7X“

token_value = "0“

我一直在玩这些旗子而没有结果

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

这是我一直使用的代码:

代码语言:javascript
运行
复制
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
EN

回答 1

Stack Overflow用户

发布于 2022-01-06 21:45:08

你在正确的轨道上,你列出的要点是正确的。找出信任线中哪些点不匹配是很棘手的,但我所做的方法是创建一个线路呼叫并查看结果的字段。

以ZAP行为例,如下所示:

代码语言:javascript
运行
复制
{
    "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,这可能是默认设置,但我必须对两个帐户的默认Ripple标志进行双重检查才能确定。但是freeze设置设置为true,这不是默认设置。查看您的代码示例,这是有意义的,因为您的事务一直在设置tx_flags= 1048576,这是“启用冻结”标志值。因此,要删除这一行,您需要发送一个TrustSet来清除冻结。它的值是xrpl.models.transactions.TrustSetFlag.TF_CLEAR_FREEZE0x00200000。据我所见,其他两条信任线处于同一状态。

简而言之,如果只更改一行代码,代码示例就会工作得很好:

代码语言:javascript
运行
复制
tx_flags=xrpl.models.transactions.TrustSetFlag.TF_CLEAR_FREEZE

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

无论如何,在使用此更改再次运行代码之后,您应该会看到信任行被删除,您可以使用WebSocket i链接的线路呼叫工具在开始时使用线路呼叫来验证信任行。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70579017

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档