@clockwork-xyz/sdk
TypeScript icon, indicating that this package has built-in type declarations

0.3.4 • Public • Published

Clockwork SDK

Clockwork Typescript SDK

License

Getting Started

For a quickstart guide and in depth tutorials, see the Clockwork Docs. To jump straight to examples, go here. For the latest Rust API documentation, see Clockwork Rust SDK.

Note

  • Clockwork SDK is in active development, so all APIs are subject to change.
  • This code is unaudited. Use at your own risk.

Usage

First, initialize a ClockworkProvider

const wallet = new NodeWallet(new Keypair());
const connection = new Connection(clusterApiUrl("devnet"));
const clockworkProvider = new ClockworkProvider(wallet, connection);

#or
const anchorProvider = new anchor.AnchorProvider(
        connection,
        wallet,
        anchor.AnchorProvider.defaultOptions()
);
const provider = new ClockworkProvider.fromAnchorProvider(provider);

Get Thread Address

const [pubkey, bump] = provider.getThreadPDA(
      wallet.publicKey,
      "ThreadProgramTest"
);

Initialize a Thread

const ix = await provider.threadCreate(
      wallet.publicKey,         // authority
      "ThreadProgramTest",      // id
      [],                       // instructions to execute
      { now: {} },              // thread trigger
      0.1 * LAMPORTS_PER_SOL    // amount to send to the thread
);
const tx = new Transaction().add(ix);
const signature = await provider.anchorProvider.sendAndConfirm(tx);

Get Thread Data Deserialized

const threadAccount = await provider.getThreadAccount(threadPubkey);

Pause/Resume/Reset/Delete/ Thread

const ix = await provider.threadPause(wallet.publicKey, threadPubkey);
const ix = await provider.threadResume(wallet.publicKey, threadPubkey);
const ix = await provider.threadReset(wallet.publicKey, threadPubkey);
const ix = await provider.threadDelete(wallet.publicKey, threadPubkey);

Update a Thread

const ix = await provider.threadUpdate(wallet.publicKey, threadPubkey, {
      name: "TestUpdateThread",
      rateLimit: new BN(32),
      trigger: { now: {} },
});
const tx = new Transaction().add(ix);
const signature = await provider.anchorProvider.sendAndConfirm(tx);

Withdraw from Thread

const ix = await provider.threadWithdraw(
      wallet.publicKey,
      threadPubkey,
      0.01 * LAMPORTS_PER_SOL
);
const tx = new Transaction().add(ix);
const signature = await provider.anchorProvider.sendAndConfirm(tx);

Readme

Keywords

Package Sidebar

Install

npm i @clockwork-xyz/sdk

Weekly Downloads

203

Version

0.3.4

License

MIT

Unpacked Size

117 kB

Total Files

35

Last publish

Collaborators

  • clockwork-xyz