How to Implement HTLC Locking for Taproot Assets Using an HTLC Script Address? #1287
Replies: 4 comments 14 replies
-
2025-01-13 11:34:36.559 [ERR] FRTR: Error evaluating state (SendStateStoreProofs): error verifying proof: invalid transfer asset witness: locktime requirement not satisfied -- locktime is greater than the transaction locktime: 44401 > 0 |
Beta Was this translation helpful? Give feedback.
-
Hello, I’m working on implementing a multi-signature and time-lock escrow mechanism, using the approach from a multi-signature test case as a reference. However, when I add the time-lock condition to the vutxo script, I encounter the following error in the logs: When I add the time-lock condition to the utxo script, I encounter the following error: The error indicates that the locktime requirement is not satisfied. |
Beta Was this translation helpful? Give feedback.
-
Thank you for your response. Your response has been incredibly helpful to me.I attempted to use litd v0.14.0-alpha and tried the ImportProof functionality. However, I encountered the following error: Error importing proof: rpc error: code = Unimplemented desc = unknown service tapdevrpc.TapDev. To address this, I referred to the sendProofUniRPC example. In the code, I had Alice call exportProof and then used the universe server on Bob's side to invoke importProof. After completing the process, I checked Bob's asset list but couldn't find the asset. Additionally, there was no corresponding proof file in the proofs folder. Could it be that I have misunderstood the process? |
Beta Was this translation helpful? Give feedback.
-
How can I import the proof file for asset transfers into the recipient's node? Both nodes are configured to use the same Universe server. Following the sendProofUniRPC reference, I had Alice export the proof file and then used the Universe server to call InsertProof. All these steps were completed without any errors. However, the recipient's node still hasn't received the proof file for the asset transfer, and the corresponding asset is not listed in their asset list. If using ImportProof is not an option, is there any alternative way to ensure that the node successfully imports the proof file? I would greatly appreciate any guidance or suggestions on this matter. The reason I'm asking this question is that I used a timelock script to create an address for implementing a timelock. To eventually spend the asset, the timelock condition must be satisfied by setting the LockTime field on the spending asset before signing. Here’s how it is configured:
However, there is a significant limitation with this approach: I cannot use a Taproot address to receive this asset. Instead, I have to rely on the test case's sendProof method to complete the final transaction. The main issue is that I cannot properly import the proof file. The failure to successfully import the proof file on the recipient's side has left me completely stuck. My question might be quite basic, but I sincerely hope to receive your guidance and assistance. |
Beta Was this translation helpful? Give feedback.
-
How can I implement HTLC locking for Taproot Assets using an address created with an HTLC script? I attempted to create a timelock address using a Taproot script and sent an asset to this address. However, it seems the script didn’t take effect. After creating an address with a timelock script, are there additional steps required to enforce the lock? I want to achieve locking by creating a locking address. So far, I’ve only successfully implemented a multisig lock based on the reference test cases, but I’ve been unable to correctly implement other test cases.
Currently, I’m using tapd version tapcli 0.5.0-alpha.rc2 commit=v0.5.0-rc2. The ImportProof RPC is not functional for me, so I can’t use swap transactions to set a timelock.
Beta Was this translation helpful? Give feedback.
All reactions