Skip to content

signReveal

Signs the reveal transaction in a P2TR Commit Reveal Scheme.

import { 
  createKontorIndexerClient,
  http,
  nativeToken,
  createKontorWalletClient, 
  signet, 
  custom,
  mnemonicToAccount 
} from "@kontor/kontor-sdk";
 
 
const account = mnemonicToAccount("mnemomic phrase", {
    networkConfig: signet.networkConfig,
    coinType: 1, 
});
 
const indexerClient = createKontorIndexerClient({
  chain: signet,
  transport: http(),
});
 
const walletClient = createKontorWalletClient({
  account,
  chain: signet,
  transport: custom({
    request: async (args: any) => {},
  }),
});
 
const composeResponse = await indexerClient.procContract({
  account: ["taproot-address", "x-only-public-key"],
  wit: nativeToken.wit,
  contractAddress: 'token_0_0',
  functionName: "transfer",
  args: ["dst-taproot-address", [1n, 18]],
  satsPerVByte: 1,
  utxos: [
     "txid:vout",
  ],
  gas: 10n,
})
 
const signedCommitHex = await walletClient.signCommit({
  psbt: composeResponse.result.commit_psbt_hex,
})
 
 
const signedRevealHex = await walletClient.signReveal({      
  psbt: composeResponse.result.reveal_psbt_hex,		     
  participantScripts: composeResponse.result.per_participant,  
})