我对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/
这两个线程提供了相同的答案:
如果信任线在您的一方处于默认状态,则它将不被计算在您的储备中。如果信任线在双方处于默认状态,则将移除它。默认状态意味着:
我要删除三条信任线,以实现上述四点.这些操作成功地完成了"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,#冻结信任线。
这是我一直使用的代码:
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
发布于 2022-01-06 21:45:08
你在正确的轨道上,你列出的要点是正确的。找出信任线中哪些点不匹配是很棘手的,但我所做的方法是创建一个线路呼叫并查看结果的字段。
以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
,这可能是默认设置,但我必须对两个帐户的默认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 i链接的线路呼叫工具在开始时使用线路呼叫来验证信任行。
https://stackoverflow.com/questions/70579017
复制相似问题