{"version":3,"sources":["../src/index.ts"],"sourcesContent":["import nacl from \"tweetnacl\";\nimport bs58 from \"bs58\";\nimport { Buffer } from \"buffer\";\n\nexport async function sha256(input: Uint8Array): Promise<Uint8Array> {\n  const digest = await crypto.subtle.digest(\"SHA-256\", input as BufferSource);\n  return new Uint8Array(digest);\n}\n\nexport interface Keypair {\n  publicKey: string;\n  secretKey: string;\n}\n\n/**\n * Generate a new Ed25519 keypair\n * @returns A keypair with base58-encoded public and secret keys\n */\nexport function generateKeyPair(): Keypair {\n  const keypair = nacl.sign.keyPair();\n  return {\n    publicKey: bs58.encode(keypair.publicKey),\n    secretKey: bs58.encode(keypair.secretKey),\n  };\n}\n\n/**\n * Create a keypair from a base58-encoded private key\n * @param b58PrivateKey - Base58-encoded private key\n * @returns A keypair with base58-encoded public and secret keys\n */\nexport function createKeyPairFromSecret(b58PrivateKey: string): Keypair {\n  const secretKeyBytes = bs58.decode(b58PrivateKey);\n  const keypair = nacl.sign.keyPair.fromSecretKey(secretKeyBytes);\n  return {\n    publicKey: bs58.encode(keypair.publicKey),\n    secretKey: bs58.encode(keypair.secretKey),\n  };\n}\n\n/**\n * Sign data using Ed25519 with a secret key\n * @param secretKey - Base58-encoded secret key or raw Uint8Array\n * @param data - Data to sign (string, Uint8Array, or Buffer)\n * @returns Base64-encoded signature\n */\nexport function signWithSecret(secretKey: string | Uint8Array, data: string | Uint8Array | Buffer): Uint8Array {\n  // Decode secret key if it's a string\n  const secretKeyBytes = typeof secretKey === \"string\" ? bs58.decode(secretKey) : secretKey;\n\n  // Convert data to Uint8Array if needed\n  let dataBytes: Uint8Array;\n  if (typeof data === \"string\") {\n    dataBytes = new TextEncoder().encode(data);\n  } else if (data instanceof Buffer) {\n    dataBytes = new Uint8Array(data);\n  } else {\n    dataBytes = data;\n  }\n\n  // Sign the data\n  return nacl.sign.detached(dataBytes, secretKeyBytes);\n}\n"],"mappings":";AAAA,OAAO,UAAU;AACjB,OAAO,UAAU;AACjB,SAAS,cAAc;AAEvB,eAAsB,OAAO,OAAwC;AACnE,QAAM,SAAS,MAAM,OAAO,OAAO,OAAO,WAAW,KAAqB;AAC1E,SAAO,IAAI,WAAW,MAAM;AAC9B;AAWO,SAAS,kBAA2B;AACzC,QAAM,UAAU,KAAK,KAAK,QAAQ;AAClC,SAAO;AAAA,IACL,WAAW,KAAK,OAAO,QAAQ,SAAS;AAAA,IACxC,WAAW,KAAK,OAAO,QAAQ,SAAS;AAAA,EAC1C;AACF;AAOO,SAAS,wBAAwB,eAAgC;AACtE,QAAM,iBAAiB,KAAK,OAAO,aAAa;AAChD,QAAM,UAAU,KAAK,KAAK,QAAQ,cAAc,cAAc;AAC9D,SAAO;AAAA,IACL,WAAW,KAAK,OAAO,QAAQ,SAAS;AAAA,IACxC,WAAW,KAAK,OAAO,QAAQ,SAAS;AAAA,EAC1C;AACF;AAQO,SAAS,eAAe,WAAgC,MAAgD;AAE7G,QAAM,iBAAiB,OAAO,cAAc,WAAW,KAAK,OAAO,SAAS,IAAI;AAGhF,MAAI;AACJ,MAAI,OAAO,SAAS,UAAU;AAC5B,gBAAY,IAAI,YAAY,EAAE,OAAO,IAAI;AAAA,EAC3C,WAAW,gBAAgB,QAAQ;AACjC,gBAAY,IAAI,WAAW,IAAI;AAAA,EACjC,OAAO;AACL,gBAAY;AAAA,EACd;AAGA,SAAO,KAAK,KAAK,SAAS,WAAW,cAAc;AACrD;","names":[]}