{"version":3,"file":"createWithdrawTransaction.cjs","sources":["../../../../src/staking/createWithdrawTransaction.ts"],"sourcesContent":["import {\n  Address,\n  appendTransactionMessageInstructions,\n  createTransactionMessage,\n  getBase64EncodedWireTransaction,\n  KeyPairSigner,\n  pipe,\n  Rpc,\n  setTransactionMessageFeePayer,\n  setTransactionMessageLifetimeUsingBlockhash,\n  signTransactionMessageWithSigners,\n  SolanaRpcApi,\n} from \"@solana/kit\";\nimport { getWithdrawInstruction } from \"@solana-program/stake\";\nimport { SYSVAR_CLOCK, SYSVAR_STAKE_HISTORY } from \"./types\";\n\nexport const makeCreateWithdrawTransaction = ({\n  rpc,\n}: {\n  rpc: Rpc<SolanaRpcApi>;\n}) => {\n  return async (\n    withdrawAuthority: KeyPairSigner<string>,\n    stakeAccount: Address,\n    destination: Address,\n    lamports: number | bigint\n  ): Promise<{ serializedTx: string }> => {\n    const withdrawIx = getWithdrawInstruction({\n      stake: stakeAccount,\n      recipient: destination,\n      clockSysvar: SYSVAR_CLOCK,\n      stakeHistory: SYSVAR_STAKE_HISTORY,\n      withdrawAuthority,\n      args: lamports,\n    });\n\n    const { value: blockHeight } = await rpc.getLatestBlockhash().send();\n\n    const msg = pipe(\n      createTransactionMessage({ version: 0 }),\n      (m) => setTransactionMessageFeePayer(withdrawAuthority.address, m),\n      (m) => setTransactionMessageLifetimeUsingBlockhash(blockHeight, m),\n      (m) => appendTransactionMessageInstructions([withdrawIx], m)\n    );\n\n    const signedTx = await signTransactionMessageWithSigners(msg);\n    const serializedTx = getBase64EncodedWireTransaction(signedTx);\n\n    return { serializedTx };\n  };\n};\n"],"names":["getWithdrawInstruction","SYSVAR_CLOCK","SYSVAR_STAKE_HISTORY","pipe","createTransactionMessage","setTransactionMessageFeePayer","setTransactionMessageLifetimeUsingBlockhash","appendTransactionMessageInstructions","signTransactionMessageWithSigners","getBase64EncodedWireTransaction"],"mappings":";;;;;;MAgBa,6BAA6B,GAAG,CAAC,EAC5C,GAAG,GAGJ,KAAI;IACH,OAAO,OACL,iBAAwC,EACxC,YAAqB,EACrB,WAAoB,EACpB,QAAyB,KACY;QACrC,MAAM,UAAU,GAAGA,4BAAsB,CAAC;AACxC,YAAA,KAAK,EAAE,YAAY;AACnB,YAAA,SAAS,EAAE,WAAW;AACtB,YAAA,WAAW,EAAEC,kBAAY;AACzB,YAAA,YAAY,EAAEC,0BAAoB;YAClC,iBAAiB;AACjB,YAAA,IAAI,EAAE,QAAQ;AACf,SAAA,CAAC;AAEF,QAAA,MAAM,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,MAAM,GAAG,CAAC,kBAAkB,EAAE,CAAC,IAAI,EAAE;QAEpE,MAAM,GAAG,GAAGC,QAAI,CACdC,4BAAwB,CAAC,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,EACxC,CAAC,CAAC,KAAKC,iCAA6B,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC,CAAC,EAClE,CAAC,CAAC,KAAKC,+CAA2C,CAAC,WAAW,EAAE,CAAC,CAAC,EAClE,CAAC,CAAC,KAAKC,wCAAoC,CAAC,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,CAC7D;AAED,QAAA,MAAM,QAAQ,GAAG,MAAMC,qCAAiC,CAAC,GAAG,CAAC;AAC7D,QAAA,MAAM,YAAY,GAAGC,mCAA+B,CAAC,QAAQ,CAAC;QAE9D,OAAO,EAAE,YAAY,EAAE;AACzB,IAAA,CAAC;AACH;;;;"}