@smithii_io/mixoor 0.0.9 → 0.0.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -70,7 +70,7 @@ const signAndSendTransaction = async (client, transactionMessage, commitment = "
70
70
  commitment,
71
71
  skipPreflight: true
72
72
  });
73
- console.log("\n[DEBUG;] le signature ->", signature);
73
+ console.log("[DEBUG;] le signature ->", signature, "\n");
74
74
  return signature;
75
75
  };
76
76
  const getBalance = async (client, address) => (await client.rpc.getBalance(address, { commitment: "confirmed" }).send()).value;
@@ -89,9 +89,7 @@ const createSolPoolForAuthority = async (client) => {
89
89
  const createIx = await src.getInitializePoolInstructionAsync({
90
90
  authority,
91
91
  mint: _constants.WRAPPED_SOL_MINT_TOKEN_PROGRAM,
92
- // feeCollector: FEE_COLLECTOR_ADDRESS,
93
92
  assetType: src.AssetType.Sol
94
- //! since we are using wrapped sol mint, can we get rid of this
95
93
  });
96
94
  await kit.pipe(
97
95
  await createDefaultTransaction(client, authority),
@@ -108,10 +106,8 @@ const depositSolPoolForAuthority = async (client, amount, merkleTree) => {
108
106
  const secret = crypto.randomBytes(32);
109
107
  const nullifier = crypto.randomBytes(32);
110
108
  const commitment = await src.generateCommitment(secret, nullifier, amount, pool);
111
- console.log("commitment ", commitment);
112
109
  merkleTree.insert(commitment);
113
110
  const newRoot = merkleTree.root();
114
- console.log("New merkle root after deposit:", newRoot);
115
111
  const depositIx = await src.getDepositInstructionAsync({
116
112
  depositor: authority,
117
113
  pool,
@@ -157,13 +153,10 @@ const transferForAuthority = async (client, ixArgs) => {
157
153
  proofA,
158
154
  proofB,
159
155
  proofC,
160
- // root,
161
156
  nullifierHash,
162
157
  publicInputs,
163
- // recipientArg: recipient.address,
164
- amount: BigInt(relayerFee),
165
- // OLD 'amount' param → NEW 'relayer_fee'
166
- fee: BigInt(recipientAmount),
158
+ recipientAmount,
159
+ relayerFee,
167
160
  mint
168
161
  });
169
162
  await kit.pipe(
@@ -1 +1 @@
1
- {"version":3,"sources":["../../test/_setup.ts"],"names":["createSolanaRpc","createSolanaRpcSubscriptions","generateKeyPairSigner","airdropFactory","lamports","path","os","fs","createKeyPairSignerFromBytes","pipe","createTransactionMessage","setTransactionMessageFeePayerSigner","setTransactionMessageLifetimeUsingBlockhash","signTransactionMessageWithSigners","assertIsSendableTransaction","getSignatureFromTransaction","assertIsTransactionWithBlockhashLifetime","sendAndConfirmTransactionFactory","getInitializePoolInstructionAsync","WRAPPED_SOL_MINT_TOKEN_PROGRAM","AssetType","appendTransactionMessageInstruction","findPoolAddress","randomBytes","generateCommitment","getDepositInstructionAsync","getTransferInstructionAsync","appendTransactionMessageInstructions","getSetComputeUnitLimitInstruction"],"mappings":";;;;;;;;;;;;;;;;;AAqDO,MAAM,4BAA4B,MAAc;AACrD,EAAA,MAAM,GAAA,GAAMA,oBAAgB,uBAAuB,CAAA;AACnD,EAAA,MAAM,gBAAA,GAAmBC,iCAA6B,qBAAqB,CAAA;AAC3E,EAAA,OAAO,EAAE,KAAK,gBAAA,EAAiB;AACjC;AAEO,MAAM,qBAAqB,MAAc;AAC9C,EAAA,MAAM,GAAA,GAAMD,oBAAgB,+BAA+B,CAAA;AAC3D,EAAA,MAAM,gBAAA,GAAmBC,gCAAA;AAAA,IACvB;AAAA,GACF;AAEA,EAAA,OAAO,EAAE,KAAK,gBAAA,EAAiB;AACjC;AAEO,MAAM,4BAAA,GAA+B,OAC1C,MAAA,EACA,gBAAA,GAA2B,WAAA,KACxB;AACH,EAAA,MAAM,MAAA,GAAS,MAAMC,yBAAA,EAAsB;AAC3C,EAAA,MAAMC,kBAAA,CAAe,MAAM,CAAA,CAAE;AAAA,IAC3B,kBAAkB,MAAA,CAAO,OAAA;AAAA,IACzB,QAAA,EAAUC,aAAS,gBAAgB,CAAA;AAAA,IACnC,UAAA,EAAY;AAAA,GACb,CAAA;AACD,EAAA,OAAO,MAAA;AACT;AAEO,MAAM,mBAAA,GAAsB,OACjC,MAAA,EACA,QAAA,EACA,mBAA2B,WAAA,KACxB;AACH,EAAA,MAAMD,kBAAA,CAAe,MAAM,CAAA,CAAE;AAAA,IAC3B,gBAAA,EAAkB,QAAA;AAAA,IAClB,QAAA,EAAUC,aAAS,gBAAgB,CAAA;AAAA,IACnC,UAAA,EAAY;AAAA,GACb,CAAA;AACH;AAEA,eAAsB,oBACpB,QAAA,EACgC;AAEhC,EAAA,MAAM,eAAeC,qBAAA,CAAK,OAAA;AAAA,IACxB,QAAA,CAAS,UAAA,CAAW,GAAG,CAAA,GAAI,QAAA,CAAS,QAAQ,GAAA,EAAKC,mBAAA,CAAG,OAAA,EAAS,CAAA,GAAI;AAAA,GACnE;AACA,EAAA,MAAM,iBAAiB,UAAA,CAAW,IAAA;AAAA,IAChC,KAAK,KAAA,CAAMC,mBAAA,CAAG,YAAA,CAAa,YAAA,EAAc,MAAM,CAAC;AAAA,GAClD;AAEA,EAAA,MAAM,aAAA,GAAgB,MAAMC,gCAAA,CAA6B,cAAc,CAAA;AACvE,EAAA,OAAO,aAAA;AACT;AAEO,MAAM,wBAAA,GAA2B,OACtC,MAAA,EACA,QAAA,KACG;AACH,EAAA,MAAM,EAAE,OAAO,eAAA,EAAgB,GAAI,MAAM,MAAA,CAAO,GAAA,CAC7C,kBAAA,EAAmB,CACnB,IAAA,EAAK;AACR,EAAA,OAAOC,QAAA;AAAA,IACLC,4BAAA,CAAyB,EAAE,OAAA,EAAS,CAAA,EAAG,CAAA;AAAA,IACvC,CAAC,EAAA,KAAOC,uCAAA,CAAoC,QAAA,EAAU,EAAE,CAAA;AAAA,IACxD,CAAC,EAAA,KAAOC,+CAAA,CAA4C,eAAA,EAAiB,EAAE;AAAA,GACzE;AACF;AAEO,MAAM,sBAAA,GAAyB,OACpC,MAAA,EACA,kBAAA,EAEA,aAAyB,WAAA,KACtB;AACH,EAAA,MAAM,iBAAA,GACJ,MAAMC,qCAAA,CAAkC,kBAAkB,CAAA;AAC5D,EAAAC,+BAAA,CAA4B,iBAAiB,CAAA;AAE7C,EAAA,MAAM,SAAA,GAAYC,gCAA4B,iBAAiB,CAAA;AAE/D,EAAAC,4CAAA,CAAyC,iBAAiB,CAAA;AAC1D,EAAA,MAAMC,oCAAA,CAAiC,MAAM,CAAA,CAAE,iBAAA,EAAmB;AAAA,IAChE,UAAA;AAAA,IACA,aAAA,EAAe;AAAA,GAChB,CAAA;AAED,EAAA,OAAA,CAAQ,GAAA,CAAI,8BAA8B,SAAS,CAAA;AACnD,EAAA,OAAO,SAAA;AACT;AAEO,MAAM,UAAA,GAAa,OAAO,MAAA,EAAgB,OAAA,KAAA,CAC9C,MAAM,MAAA,CAAO,GAAA,CAAI,UAAA,CAAW,OAAA,EAAS,EAAE,UAAA,EAAY,WAAA,EAAa,CAAA,CAAE,MAAK,EACrE;AAEL,eAAsB,kBAAA,GAAqD;AACzE,EAAA,OAAO,MAAM,oBAAoB,0BAA0B,CAAA;AAC7D;AAEA,eAAsB,mBAAA,GAAsD;AAC1E,EAAA,OAAO,MAAM,oBAAoB,8BAA8B,CAAA;AACjE;AAEA,eAAsB,kBAAA,GAAqD;AACzE,EAAA,OAAO,MAAM,oBAAoB,+BAA+B,CAAA;AAClE;AAEO,MAAM,eAAA,GAAkB,OAAO,MAAA,EAAgB,YAAA,KAAA,CAElD,MAAM,MAAA,CAAO,GAAA,CACV,sBAAA,CAAuB,YAAA,EAAc,EAAE,UAAA,EAAY,WAAA,EAAa,CAAA,CAChE,MAAK,EACR;AAIG,MAAM,yBAAA,GAA4B,OACvC,MAAA,KAEoC;AACpC,EAAA,MAAM,CAAC,SAAS,CAAA,GAAI,MAAM,QAAQ,GAAA,CAAI,CAAC,kBAAA,EAAoB,CAAC,CAAA;AAE5D,EAAA,MAAM,QAAA,GAAW,MAAMC,qCAAA,CAAkC;AAAA,IACvD,SAAA;AAAA,IACA,IAAA,EAAMC,yCAAA;AAAA;AAAA,IAEN,WAAWC,aAAA,CAAU;AAAA;AAAA,GACtB,CAAA;AAED,EAAA,MAAMX,QAAA;AAAA,IACJ,MAAM,wBAAA,CAAyB,MAAA,EAAQ,SAAS,CAAA;AAAA,IAChD,CAAC,EAAA,KAAOY,uCAAA,CAAoC,QAAA,EAAU,EAAE,CAAA;AAAA,IACxD,CAAC,EAAA,KAAO,sBAAA,CAAuB,MAAA,EAAQ,EAAE;AAAA,GAC3C;AAEA,EAAA,OAAO,EAAE,SAAA,EAAW,SAAA,CAAU,OAAA,EAAQ;AACxC;AAEO,MAAM,0BAAA,GAA6B,OACxC,MAAA,EACA,MAAA,EACA,UAAA,KAMI;AACJ,EAAA,MAAM,CAAC,SAAS,CAAA,GAAI,MAAM,QAAQ,GAAA,CAAI,CAAC,kBAAA,EAAoB,CAAC,CAAA;AAG5D,EAAA,MAAM,CAAC,IAAI,CAAA,GAAI,MAAMC,mBAAA,CAAgB;AAAA,IACnC,IAAA,EAAMH;AAAA,GACP,CAAA;AAGD,EAAA,MAAM,MAAA,GAASI,mBAAY,EAAE,CAAA;AAC7B,EAAA,MAAM,SAAA,GAAYA,mBAAY,EAAE,CAAA;AAChC,EAAA,MAAM,aAAa,MAAMC,sBAAA,CAAmB,MAAA,EAAQ,SAAA,EAAW,QAAQ,IAAI,CAAA;AAE3E,EAAA,OAAA,CAAQ,GAAA,CAAI,eAAe,UAAU,CAAA;AAGrC,EAAA,UAAA,CAAW,OAAO,UAAU,CAAA;AAC5B,EAAA,MAAM,OAAA,GAAU,WAAW,IAAA,EAAK;AAChC,EAAA,OAAA,CAAQ,GAAA,CAAI,kCAAkC,OAAO,CAAA;AAGrD,EAAA,MAAM,SAAA,GAAY,MAAMC,8BAAA,CAA2B;AAAA,IACjD,SAAA,EAAW,SAAA;AAAA,IACX,IAAA;AAAA,IACA,MAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAA,EAAMN;AAAA,GACP,CAAA;AAED,EAAA,MAAMV,QAAA;AAAA,IACJ,MAAM,wBAAA,CAAyB,MAAA,EAAQ,SAAS,CAAA;AAAA,IAChD,CAAC,EAAA,KAAOY,uCAAA,CAAoC,SAAA,EAAW,EAAE,CAAA;AAAA,IACzD,CAAC,EAAA,KAAO,sBAAA,CAAuB,MAAA,EAAQ,EAAE;AAAA,GAC3C;AAEA,EAAA,OAAO;AAAA,IACL,WAAW,SAAA,CAAU,OAAA;AAAA,IACrB,UAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GACF;AACF;AAEO,MAAM,oBAAA,GAAuB,OAClC,MAAA,EACA,MAAA,KAUI;AACJ,EAAA,MAAM,CAAC,OAAA,EAAS,SAAS,CAAA,GAAI,MAAM,QAAQ,GAAA,CAAI;AAAA,IAC7C,kBAAA,EAAmB;AAAA,IACnB,mBAAA;AAAoB,GACrB,CAAA;AAGD,EAAA,MAAM,mBAAA,CAAoB,MAAA,EAAQ,OAAA,CAAQ,OAAO,CAAA;AAEjD,EAAA,MAAM;AAAA,IACJ,UAAA;AAAA,IACA,eAAA;AAAA,IACA,aAAA;AAAA;AAAA,IAEA,IAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAA,EAAW,EAAE,MAAA,EAAQ,MAAA,EAAQ,MAAA;AAAO,GACtC,GAAI,MAAA;AAGJ,EAAA,MAAM,CAAC,IAAI,CAAA,GAAI,MAAMC,mBAAA,CAAgB;AAAA,IACnC;AAAA,GACD,CAAA;AAMD,EAAA,MAAM,UAAA,GAAa,MAAMI,+BAAA,CAA4B;AAAA,IACnD,OAAA;AAAA,IACA,IAAA;AAAA,IACA,WAAW,SAAA,CAAU,OAAA;AAAA,IACrB,MAAA;AAAA,IACA,MAAA;AAAA,IACA,MAAA;AAAA;AAAA,IAEA,aAAA;AAAA,IACA,YAAA;AAAA;AAAA,IAEA,MAAA,EAAQ,OAAO,UAAU,CAAA;AAAA;AAAA,IACzB,GAAA,EAAK,OAAO,eAAe,CAAA;AAAA,IAC3B;AAAA,GACD,CAAA;AAED,EAAA,MAAMjB,QAAA;AAAA,IACJ,MAAM,wBAAA,CAAyB,MAAA,EAAQ,OAAO,CAAA;AAAA,IAC9C,CAAC,EAAA,KAAOY,uCAAA,CAAoC,UAAA,EAAY,EAAE,CAAA;AAAA,IAC1D,CAAC,EAAA,KACCM,wCAAA;AAAA,MACE,CAACC,+CAAA,CAAkC,EAAE,KAAA,EAAO,IAAA,EAAW,CAAC,CAAA;AAAA,MACxD;AAAA,KACF;AAAA,IACF,CAAC,EAAA,KAAO,sBAAA,CAAuB,MAAA,EAAQ,EAAE;AAAA,GAC3C;AAIA,EAAA,OAAO,EAAE,OAAA,EAAS,OAAA,CAAQ,OAAA,EAAQ;AACpC","file":"_setup.js","sourcesContent":["import { getSetComputeUnitLimitInstruction } from '@solana-program/compute-budget';\nimport {\n Address,\n airdropFactory,\n appendTransactionMessageInstruction,\n appendTransactionMessageInstructions,\n assertIsSendableTransaction,\n assertIsTransactionWithBlockhashLifetime,\n Commitment,\n createKeyPairSignerFromBytes,\n createSolanaRpc,\n createSolanaRpcSubscriptions,\n createTransactionMessage,\n generateKeyPairSigner,\n getSignatureFromTransaction,\n KeyPairSigner,\n lamports,\n pipe,\n Rpc,\n RpcSubscriptions,\n sendAndConfirmTransactionFactory,\n setTransactionMessageFeePayerSigner,\n setTransactionMessageLifetimeUsingBlockhash,\n signTransactionMessageWithSigners,\n SolanaRpcApi,\n SolanaRpcSubscriptionsApi,\n TransactionMessage,\n TransactionMessageWithFeePayer,\n TransactionSigner,\n} from '@solana/kit';\n\nimport fs from 'fs';\nimport os from 'os';\nimport path from 'path';\n\nimport { randomBytes } from 'crypto';\nimport {\n AssetType,\n findPoolAddress,\n generateCommitment,\n getDepositInstructionAsync,\n getInitializePoolInstructionAsync,\n getTransferInstructionAsync,\n MerkleTree,\n ProofData,\n} from '../src';\nimport { WRAPPED_SOL_MINT_TOKEN_PROGRAM } from './_constants';\n\nexport type Client = {\n rpc: Rpc<SolanaRpcApi>;\n rpcSubscriptions: RpcSubscriptions<SolanaRpcSubscriptionsApi>;\n};\n\nexport const createDefaultSolanaClient = (): Client => {\n const rpc = createSolanaRpc('http://127.0.0.1:8899');\n const rpcSubscriptions = createSolanaRpcSubscriptions('ws://127.0.0.1:8900');\n return { rpc, rpcSubscriptions };\n};\n\nexport const createDevnetClient = (): Client => {\n const rpc = createSolanaRpc('https://api.devnet.solana.com');\n const rpcSubscriptions = createSolanaRpcSubscriptions(\n 'wss://api.devnet.solana.com/'\n );\n\n return { rpc, rpcSubscriptions };\n};\n\nexport const generateKeyPairSignerWithSol = async (\n client: Client,\n putativeLamports: bigint = 1_000_000_000n\n) => {\n const signer = await generateKeyPairSigner();\n await airdropFactory(client)({\n recipientAddress: signer.address,\n lamports: lamports(putativeLamports),\n commitment: 'confirmed',\n });\n return signer;\n};\n\nexport const airdropSolToAddress = async (\n client: Client,\n receiver: Address, // 5 sol\n putativeLamports: bigint = 5_000_000_000n // 5 sol\n) => {\n await airdropFactory(client)({\n recipientAddress: receiver,\n lamports: lamports(putativeLamports),\n commitment: 'confirmed',\n });\n};\n\nexport async function loadKeypairFromFile(\n filePath: string\n): Promise<KeyPairSigner<string>> {\n // This is here so you can also load the default keypair from the file system.\n const resolvedPath = path.resolve(\n filePath.startsWith('~') ? filePath.replace('~', os.homedir()) : filePath\n );\n const loadedKeyBytes = Uint8Array.from(\n JSON.parse(fs.readFileSync(resolvedPath, 'utf8'))\n );\n // Here you can also set the second parameter to true in case you need to extract your private key.\n const keypairSigner = await createKeyPairSignerFromBytes(loadedKeyBytes);\n return keypairSigner;\n}\n\nexport const createDefaultTransaction = async (\n client: Client,\n feePayer: TransactionSigner\n) => {\n const { value: latestBlockhash } = await client.rpc\n .getLatestBlockhash()\n .send();\n return pipe(\n createTransactionMessage({ version: 0 }),\n (tx) => setTransactionMessageFeePayerSigner(feePayer, tx),\n (tx) => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, tx)\n );\n};\n\nexport const signAndSendTransaction = async (\n client: Client,\n transactionMessage: TransactionMessage & TransactionMessageWithFeePayer,\n // & TransactionMessageWithLifetime,\n commitment: Commitment = 'finalized'\n) => {\n const signedTransaction =\n await signTransactionMessageWithSigners(transactionMessage);\n assertIsSendableTransaction(signedTransaction);\n\n const signature = getSignatureFromTransaction(signedTransaction);\n\n assertIsTransactionWithBlockhashLifetime(signedTransaction);\n await sendAndConfirmTransactionFactory(client)(signedTransaction, {\n commitment,\n skipPreflight: true,\n });\n\n console.log('\\n[DEBUG;] le signature ->', signature); // ! debug\n return signature;\n};\n\nexport const getBalance = async (client: Client, address: Address) =>\n (await client.rpc.getBalance(address, { commitment: 'confirmed' }).send())\n .value;\n\nexport async function loadDefaultKeypair(): Promise<KeyPairSigner<string>> {\n return await loadKeypairFromFile('~/.config/solana/id.json');\n}\n\nexport async function loadReceiverKeypair(): Promise<KeyPairSigner<string>> {\n return await loadKeypairFromFile('~/.config/solana/id-new.json');\n}\n\nexport async function loadRelayerKeypair(): Promise<KeyPairSigner<string>> {\n return await loadKeypairFromFile('~/.config/solana/relayer.json');\n}\n\nexport const getTokenBalance = async (client: Client, tokenAccount: Address) =>\n (\n await client.rpc\n .getTokenAccountBalance(tokenAccount, { commitment: 'confirmed' })\n .send()\n ).value;\n\n// -------------------------------------------------- instructions\n\nexport const createSolPoolForAuthority = async (\n client: Client\n // merkleTree?: Address\n): Promise<{ authority: Address }> => {\n const [authority] = await Promise.all([loadDefaultKeypair()]);\n\n const createIx = await getInitializePoolInstructionAsync({\n authority,\n mint: WRAPPED_SOL_MINT_TOKEN_PROGRAM,\n // feeCollector: FEE_COLLECTOR_ADDRESS,\n assetType: AssetType.Sol, //! since we are using wrapped sol mint, can we get rid of this\n });\n\n await pipe(\n await createDefaultTransaction(client, authority),\n (tx) => appendTransactionMessageInstruction(createIx, tx),\n (tx) => signAndSendTransaction(client, tx)\n );\n\n return { authority: authority.address };\n};\n\nexport const depositSolPoolForAuthority = async (\n client: Client,\n amount: bigint,\n merkleTree: MerkleTree\n): Promise<{\n depositor: Address;\n commitment: Uint8Array;\n secret: Uint8Array;\n nullifier: Uint8Array;\n}> => {\n const [authority] = await Promise.all([loadDefaultKeypair()]);\n\n // find pool address\n const [pool] = await findPoolAddress({\n mint: WRAPPED_SOL_MINT_TOKEN_PROGRAM,\n });\n\n // generate commitment\n const secret = randomBytes(32);\n const nullifier = randomBytes(32);\n const commitment = await generateCommitment(secret, nullifier, amount, pool);\n\n console.log('commitment ', commitment); // ! debug\n\n // Insert commitment into merkle tree and compute new root\n merkleTree.insert(commitment);\n const newRoot = merkleTree.root();\n console.log('New merkle root after deposit:', newRoot);\n\n // ! NOTE, DURING INITIALIZATION,\n const depositIx = await getDepositInstructionAsync({\n depositor: authority,\n pool,\n amount,\n commitment,\n newRoot,\n mint: WRAPPED_SOL_MINT_TOKEN_PROGRAM,\n });\n\n await pipe(\n await createDefaultTransaction(client, authority),\n (tx) => appendTransactionMessageInstruction(depositIx, tx),\n (tx) => signAndSendTransaction(client, tx)\n );\n\n return {\n depositor: authority.address,\n commitment,\n secret,\n nullifier,\n };\n};\n\nexport const transferForAuthority = async (\n client: Client,\n ixArgs: {\n relayerFee: number;\n recipientAmount: number;\n nullifierHash: Uint8Array;\n proofData: ProofData;\n publicInputs: Uint8Array[];\n mint: Address;\n }\n): Promise<{\n relayer: Address;\n}> => {\n const [relayer, recipient] = await Promise.all([\n loadRelayerKeypair(),\n loadReceiverKeypair(),\n ]);\n\n // airdrop relayer\n await airdropSolToAddress(client, relayer.address);\n\n const {\n relayerFee,\n recipientAmount,\n nullifierHash,\n // root,\n mint,\n publicInputs,\n proofData: { proofA, proofB, proofC },\n } = ixArgs;\n\n // find pool address\n const [pool] = await findPoolAddress({\n mint,\n });\n\n // TEMPORARY: The autogenerated client hasn't been regenerated yet\n // The Rust program expects: relayer_fee (6th), recipient_amount (7th)\n // But the old client has: amount (6th), fee (7th)\n // So we swap them here until the client is regenerated\n const transferIx = await getTransferInstructionAsync({\n relayer,\n pool,\n recipient: recipient.address,\n proofA,\n proofB,\n proofC,\n // root,\n nullifierHash,\n publicInputs,\n // recipientArg: recipient.address,\n amount: BigInt(relayerFee), // OLD 'amount' param → NEW 'relayer_fee'\n fee: BigInt(recipientAmount),\n mint,\n });\n\n await pipe(\n await createDefaultTransaction(client, relayer),\n (tx) => appendTransactionMessageInstruction(transferIx, tx),\n (tx) =>\n appendTransactionMessageInstructions(\n [getSetComputeUnitLimitInstruction({ units: 1_400_000 })],\n tx\n ),\n (tx) => signAndSendTransaction(client, tx)\n );\n\n // todo: return the address of the pool\n // todo: what to return\n return { relayer: relayer.address };\n};\n"]}
1
+ {"version":3,"sources":["../../test/_setup.ts"],"names":["createSolanaRpc","createSolanaRpcSubscriptions","generateKeyPairSigner","airdropFactory","lamports","path","os","fs","createKeyPairSignerFromBytes","pipe","createTransactionMessage","setTransactionMessageFeePayerSigner","setTransactionMessageLifetimeUsingBlockhash","signTransactionMessageWithSigners","assertIsSendableTransaction","getSignatureFromTransaction","assertIsTransactionWithBlockhashLifetime","sendAndConfirmTransactionFactory","getInitializePoolInstructionAsync","WRAPPED_SOL_MINT_TOKEN_PROGRAM","AssetType","appendTransactionMessageInstruction","findPoolAddress","randomBytes","generateCommitment","getDepositInstructionAsync","getTransferInstructionAsync","appendTransactionMessageInstructions","getSetComputeUnitLimitInstruction"],"mappings":";;;;;;;;;;;;;;;;;AAqDO,MAAM,4BAA4B,MAAc;AACrD,EAAA,MAAM,GAAA,GAAMA,oBAAgB,uBAAuB,CAAA;AACnD,EAAA,MAAM,gBAAA,GAAmBC,iCAA6B,qBAAqB,CAAA;AAC3E,EAAA,OAAO,EAAE,KAAK,gBAAA,EAAiB;AACjC;AAEO,MAAM,qBAAqB,MAAc;AAC9C,EAAA,MAAM,GAAA,GAAMD,oBAAgB,+BAA+B,CAAA;AAC3D,EAAA,MAAM,gBAAA,GAAmBC,gCAAA;AAAA,IACvB;AAAA,GACF;AAEA,EAAA,OAAO,EAAE,KAAK,gBAAA,EAAiB;AACjC;AAEO,MAAM,4BAAA,GAA+B,OAC1C,MAAA,EACA,gBAAA,GAA2B,WAAA,KACxB;AACH,EAAA,MAAM,MAAA,GAAS,MAAMC,yBAAA,EAAsB;AAC3C,EAAA,MAAMC,kBAAA,CAAe,MAAM,CAAA,CAAE;AAAA,IAC3B,kBAAkB,MAAA,CAAO,OAAA;AAAA,IACzB,QAAA,EAAUC,aAAS,gBAAgB,CAAA;AAAA,IACnC,UAAA,EAAY;AAAA,GACb,CAAA;AACD,EAAA,OAAO,MAAA;AACT;AAEO,MAAM,mBAAA,GAAsB,OACjC,MAAA,EACA,QAAA,EACA,mBAA2B,WAAA,KACxB;AACH,EAAA,MAAMD,kBAAA,CAAe,MAAM,CAAA,CAAE;AAAA,IAC3B,gBAAA,EAAkB,QAAA;AAAA,IAClB,QAAA,EAAUC,aAAS,gBAAgB,CAAA;AAAA,IACnC,UAAA,EAAY;AAAA,GACb,CAAA;AACH;AAEA,eAAsB,oBACpB,QAAA,EACgC;AAEhC,EAAA,MAAM,eAAeC,qBAAA,CAAK,OAAA;AAAA,IACxB,QAAA,CAAS,UAAA,CAAW,GAAG,CAAA,GAAI,QAAA,CAAS,QAAQ,GAAA,EAAKC,mBAAA,CAAG,OAAA,EAAS,CAAA,GAAI;AAAA,GACnE;AACA,EAAA,MAAM,iBAAiB,UAAA,CAAW,IAAA;AAAA,IAChC,KAAK,KAAA,CAAMC,mBAAA,CAAG,YAAA,CAAa,YAAA,EAAc,MAAM,CAAC;AAAA,GAClD;AAEA,EAAA,MAAM,aAAA,GAAgB,MAAMC,gCAAA,CAA6B,cAAc,CAAA;AACvE,EAAA,OAAO,aAAA;AACT;AAEO,MAAM,wBAAA,GAA2B,OACtC,MAAA,EACA,QAAA,KACG;AACH,EAAA,MAAM,EAAE,OAAO,eAAA,EAAgB,GAAI,MAAM,MAAA,CAAO,GAAA,CAC7C,kBAAA,EAAmB,CACnB,IAAA,EAAK;AACR,EAAA,OAAOC,QAAA;AAAA,IACLC,4BAAA,CAAyB,EAAE,OAAA,EAAS,CAAA,EAAG,CAAA;AAAA,IACvC,CAAC,EAAA,KAAOC,uCAAA,CAAoC,QAAA,EAAU,EAAE,CAAA;AAAA,IACxD,CAAC,EAAA,KAAOC,+CAAA,CAA4C,eAAA,EAAiB,EAAE;AAAA,GACzE;AACF;AAEO,MAAM,sBAAA,GAAyB,OACpC,MAAA,EACA,kBAAA,EAEA,aAAyB,WAAA,KACtB;AACH,EAAA,MAAM,iBAAA,GACJ,MAAMC,qCAAA,CAAkC,kBAAkB,CAAA;AAC5D,EAAAC,+BAAA,CAA4B,iBAAiB,CAAA;AAE7C,EAAA,MAAM,SAAA,GAAYC,gCAA4B,iBAAiB,CAAA;AAE/D,EAAAC,4CAAA,CAAyC,iBAAiB,CAAA;AAC1D,EAAA,MAAMC,oCAAA,CAAiC,MAAM,CAAA,CAAE,iBAAA,EAAmB;AAAA,IAChE,UAAA;AAAA,IACA,aAAA,EAAe;AAAA,GAChB,CAAA;AAED,EAAA,OAAA,CAAQ,GAAA,CAAI,0BAAA,EAA4B,SAAA,EAAW,IAAI,CAAA;AACvD,EAAA,OAAO,SAAA;AACT;AAEO,MAAM,UAAA,GAAa,OAAO,MAAA,EAAgB,OAAA,KAAA,CAC9C,MAAM,MAAA,CAAO,GAAA,CAAI,UAAA,CAAW,OAAA,EAAS,EAAE,UAAA,EAAY,WAAA,EAAa,CAAA,CAAE,MAAK,EACrE;AAEL,eAAsB,kBAAA,GAAqD;AACzE,EAAA,OAAO,MAAM,oBAAoB,0BAA0B,CAAA;AAC7D;AAEA,eAAsB,mBAAA,GAAsD;AAC1E,EAAA,OAAO,MAAM,oBAAoB,8BAA8B,CAAA;AACjE;AAEA,eAAsB,kBAAA,GAAqD;AACzE,EAAA,OAAO,MAAM,oBAAoB,+BAA+B,CAAA;AAClE;AAEO,MAAM,eAAA,GAAkB,OAAO,MAAA,EAAgB,YAAA,KAAA,CAElD,MAAM,MAAA,CAAO,GAAA,CACV,sBAAA,CAAuB,YAAA,EAAc,EAAE,UAAA,EAAY,WAAA,EAAa,CAAA,CAChE,MAAK,EACR;AAIG,MAAM,yBAAA,GAA4B,OACvC,MAAA,KAEoC;AACpC,EAAA,MAAM,CAAC,SAAS,CAAA,GAAI,MAAM,QAAQ,GAAA,CAAI,CAAC,kBAAA,EAAoB,CAAC,CAAA;AAE5D,EAAA,MAAM,QAAA,GAAW,MAAMC,qCAAA,CAAkC;AAAA,IACvD,SAAA;AAAA,IACA,IAAA,EAAMC,yCAAA;AAAA,IACN,WAAWC,aAAA,CAAU;AAAA,GACtB,CAAA;AAED,EAAA,MAAMX,QAAA;AAAA,IACJ,MAAM,wBAAA,CAAyB,MAAA,EAAQ,SAAS,CAAA;AAAA,IAChD,CAAC,EAAA,KAAOY,uCAAA,CAAoC,QAAA,EAAU,EAAE,CAAA;AAAA,IACxD,CAAC,EAAA,KAAO,sBAAA,CAAuB,MAAA,EAAQ,EAAE;AAAA,GAC3C;AAEA,EAAA,OAAO,EAAE,SAAA,EAAW,SAAA,CAAU,OAAA,EAAQ;AACxC;AAEO,MAAM,0BAAA,GAA6B,OACxC,MAAA,EACA,MAAA,EACA,UAAA,KAMI;AACJ,EAAA,MAAM,CAAC,SAAS,CAAA,GAAI,MAAM,QAAQ,GAAA,CAAI,CAAC,kBAAA,EAAoB,CAAC,CAAA;AAG5D,EAAA,MAAM,CAAC,IAAI,CAAA,GAAI,MAAMC,mBAAA,CAAgB;AAAA,IACnC,IAAA,EAAMH;AAAA,GACP,CAAA;AAGD,EAAA,MAAM,MAAA,GAASI,mBAAY,EAAE,CAAA;AAC7B,EAAA,MAAM,SAAA,GAAYA,mBAAY,EAAE,CAAA;AAChC,EAAA,MAAM,aAAa,MAAMC,sBAAA,CAAmB,MAAA,EAAQ,SAAA,EAAW,QAAQ,IAAI,CAAA;AAG3E,EAAA,UAAA,CAAW,OAAO,UAAU,CAAA;AAC5B,EAAA,MAAM,OAAA,GAAU,WAAW,IAAA,EAAK;AAGhC,EAAA,MAAM,SAAA,GAAY,MAAMC,8BAAA,CAA2B;AAAA,IACjD,SAAA,EAAW,SAAA;AAAA,IACX,IAAA;AAAA,IACA,MAAA;AAAA,IACA,UAAA;AAAA,IACA,OAAA;AAAA,IACA,IAAA,EAAMN;AAAA,GACP,CAAA;AAED,EAAA,MAAMV,QAAA;AAAA,IACJ,MAAM,wBAAA,CAAyB,MAAA,EAAQ,SAAS,CAAA;AAAA,IAChD,CAAC,EAAA,KAAOY,uCAAA,CAAoC,SAAA,EAAW,EAAE,CAAA;AAAA,IACzD,CAAC,EAAA,KAAO,sBAAA,CAAuB,MAAA,EAAQ,EAAE;AAAA,GAC3C;AAEA,EAAA,OAAO;AAAA,IACL,WAAW,SAAA,CAAU,OAAA;AAAA,IACrB,UAAA;AAAA,IACA,MAAA;AAAA,IACA;AAAA,GACF;AACF;AAEO,MAAM,oBAAA,GAAuB,OAClC,MAAA,EACA,MAAA,KAUI;AACJ,EAAA,MAAM,CAAC,OAAA,EAAS,SAAS,CAAA,GAAI,MAAM,QAAQ,GAAA,CAAI;AAAA,IAC7C,kBAAA,EAAmB;AAAA,IACnB,mBAAA;AAAoB,GACrB,CAAA;AAGD,EAAA,MAAM,mBAAA,CAAoB,MAAA,EAAQ,OAAA,CAAQ,OAAO,CAAA;AAEjD,EAAA,MAAM;AAAA,IACJ,UAAA;AAAA,IACA,eAAA;AAAA,IACA,aAAA;AAAA;AAAA,IAEA,IAAA;AAAA,IACA,YAAA;AAAA,IACA,SAAA,EAAW,EAAE,MAAA,EAAQ,MAAA,EAAQ,MAAA;AAAO,GACtC,GAAI,MAAA;AAGJ,EAAA,MAAM,CAAC,IAAI,CAAA,GAAI,MAAMC,mBAAA,CAAgB;AAAA,IACnC;AAAA,GACD,CAAA;AAMD,EAAA,MAAM,UAAA,GAAa,MAAMI,+BAAA,CAA4B;AAAA,IACnD,OAAA;AAAA,IACA,IAAA;AAAA,IACA,WAAW,SAAA,CAAU,OAAA;AAAA,IACrB,MAAA;AAAA,IACA,MAAA;AAAA,IACA,MAAA;AAAA,IACA,aAAA;AAAA,IACA,YAAA;AAAA,IACA,eAAA;AAAA,IACA,UAAA;AAAA,IACA;AAAA,GACD,CAAA;AAED,EAAA,MAAMjB,QAAA;AAAA,IACJ,MAAM,wBAAA,CAAyB,MAAA,EAAQ,OAAO,CAAA;AAAA,IAC9C,CAAC,EAAA,KAAOY,uCAAA,CAAoC,UAAA,EAAY,EAAE,CAAA;AAAA,IAC1D,CAAC,EAAA,KACCM,wCAAA;AAAA,MACE,CAACC,+CAAA,CAAkC,EAAE,KAAA,EAAO,IAAA,EAAW,CAAC,CAAA;AAAA,MACxD;AAAA,KACF;AAAA,IACF,CAAC,EAAA,KAAO,sBAAA,CAAuB,MAAA,EAAQ,EAAE;AAAA,GAC3C;AAIA,EAAA,OAAO,EAAE,OAAA,EAAS,OAAA,CAAQ,OAAA,EAAQ;AACpC","file":"_setup.js","sourcesContent":["import { getSetComputeUnitLimitInstruction } from '@solana-program/compute-budget';\nimport {\n Address,\n airdropFactory,\n appendTransactionMessageInstruction,\n appendTransactionMessageInstructions,\n assertIsSendableTransaction,\n assertIsTransactionWithBlockhashLifetime,\n Commitment,\n createKeyPairSignerFromBytes,\n createSolanaRpc,\n createSolanaRpcSubscriptions,\n createTransactionMessage,\n generateKeyPairSigner,\n getSignatureFromTransaction,\n KeyPairSigner,\n lamports,\n pipe,\n Rpc,\n RpcSubscriptions,\n sendAndConfirmTransactionFactory,\n setTransactionMessageFeePayerSigner,\n setTransactionMessageLifetimeUsingBlockhash,\n signTransactionMessageWithSigners,\n SolanaRpcApi,\n SolanaRpcSubscriptionsApi,\n TransactionMessage,\n TransactionMessageWithFeePayer,\n TransactionSigner,\n} from '@solana/kit';\n\nimport fs from 'fs';\nimport os from 'os';\nimport path from 'path';\n\nimport { randomBytes } from 'crypto';\nimport {\n AssetType,\n findPoolAddress,\n generateCommitment,\n getDepositInstructionAsync,\n getInitializePoolInstructionAsync,\n getTransferInstructionAsync,\n MerkleTree,\n ProofData,\n} from '../src';\nimport { WRAPPED_SOL_MINT_TOKEN_PROGRAM } from './_constants';\n\nexport type Client = {\n rpc: Rpc<SolanaRpcApi>;\n rpcSubscriptions: RpcSubscriptions<SolanaRpcSubscriptionsApi>;\n};\n\nexport const createDefaultSolanaClient = (): Client => {\n const rpc = createSolanaRpc('http://127.0.0.1:8899');\n const rpcSubscriptions = createSolanaRpcSubscriptions('ws://127.0.0.1:8900');\n return { rpc, rpcSubscriptions };\n};\n\nexport const createDevnetClient = (): Client => {\n const rpc = createSolanaRpc('https://api.devnet.solana.com');\n const rpcSubscriptions = createSolanaRpcSubscriptions(\n 'wss://api.devnet.solana.com/'\n );\n\n return { rpc, rpcSubscriptions };\n};\n\nexport const generateKeyPairSignerWithSol = async (\n client: Client,\n putativeLamports: bigint = 1_000_000_000n\n) => {\n const signer = await generateKeyPairSigner();\n await airdropFactory(client)({\n recipientAddress: signer.address,\n lamports: lamports(putativeLamports),\n commitment: 'confirmed',\n });\n return signer;\n};\n\nexport const airdropSolToAddress = async (\n client: Client,\n receiver: Address, // 5 sol\n putativeLamports: bigint = 5_000_000_000n // 5 sol\n) => {\n await airdropFactory(client)({\n recipientAddress: receiver,\n lamports: lamports(putativeLamports),\n commitment: 'confirmed',\n });\n};\n\nexport async function loadKeypairFromFile(\n filePath: string\n): Promise<KeyPairSigner<string>> {\n // This is here so you can also load the default keypair from the file system.\n const resolvedPath = path.resolve(\n filePath.startsWith('~') ? filePath.replace('~', os.homedir()) : filePath\n );\n const loadedKeyBytes = Uint8Array.from(\n JSON.parse(fs.readFileSync(resolvedPath, 'utf8'))\n );\n // Here you can also set the second parameter to true in case you need to extract your private key.\n const keypairSigner = await createKeyPairSignerFromBytes(loadedKeyBytes);\n return keypairSigner;\n}\n\nexport const createDefaultTransaction = async (\n client: Client,\n feePayer: TransactionSigner\n) => {\n const { value: latestBlockhash } = await client.rpc\n .getLatestBlockhash()\n .send();\n return pipe(\n createTransactionMessage({ version: 0 }),\n (tx) => setTransactionMessageFeePayerSigner(feePayer, tx),\n (tx) => setTransactionMessageLifetimeUsingBlockhash(latestBlockhash, tx)\n );\n};\n\nexport const signAndSendTransaction = async (\n client: Client,\n transactionMessage: TransactionMessage & TransactionMessageWithFeePayer,\n // & TransactionMessageWithLifetime,\n commitment: Commitment = 'finalized'\n) => {\n const signedTransaction =\n await signTransactionMessageWithSigners(transactionMessage);\n assertIsSendableTransaction(signedTransaction);\n\n const signature = getSignatureFromTransaction(signedTransaction);\n\n assertIsTransactionWithBlockhashLifetime(signedTransaction);\n await sendAndConfirmTransactionFactory(client)(signedTransaction, {\n commitment,\n skipPreflight: true,\n });\n\n console.log('[DEBUG;] le signature ->', signature, '\\n'); // ! debug\n return signature;\n};\n\nexport const getBalance = async (client: Client, address: Address) =>\n (await client.rpc.getBalance(address, { commitment: 'confirmed' }).send())\n .value;\n\nexport async function loadDefaultKeypair(): Promise<KeyPairSigner<string>> {\n return await loadKeypairFromFile('~/.config/solana/id.json');\n}\n\nexport async function loadReceiverKeypair(): Promise<KeyPairSigner<string>> {\n return await loadKeypairFromFile('~/.config/solana/id-new.json');\n}\n\nexport async function loadRelayerKeypair(): Promise<KeyPairSigner<string>> {\n return await loadKeypairFromFile('~/.config/solana/relayer.json');\n}\n\nexport const getTokenBalance = async (client: Client, tokenAccount: Address) =>\n (\n await client.rpc\n .getTokenAccountBalance(tokenAccount, { commitment: 'confirmed' })\n .send()\n ).value;\n\n// -------------------------------------------------- instructions\n\nexport const createSolPoolForAuthority = async (\n client: Client\n // merkleTree?: Address\n): Promise<{ authority: Address }> => {\n const [authority] = await Promise.all([loadDefaultKeypair()]);\n\n const createIx = await getInitializePoolInstructionAsync({\n authority,\n mint: WRAPPED_SOL_MINT_TOKEN_PROGRAM,\n assetType: AssetType.Sol,\n });\n\n await pipe(\n await createDefaultTransaction(client, authority),\n (tx) => appendTransactionMessageInstruction(createIx, tx),\n (tx) => signAndSendTransaction(client, tx)\n );\n\n return { authority: authority.address };\n};\n\nexport const depositSolPoolForAuthority = async (\n client: Client,\n amount: bigint,\n merkleTree: MerkleTree\n): Promise<{\n depositor: Address;\n commitment: Uint8Array;\n secret: Uint8Array;\n nullifier: Uint8Array;\n}> => {\n const [authority] = await Promise.all([loadDefaultKeypair()]);\n\n // find pool address\n const [pool] = await findPoolAddress({\n mint: WRAPPED_SOL_MINT_TOKEN_PROGRAM,\n });\n\n // generate commitment\n const secret = randomBytes(32);\n const nullifier = randomBytes(32);\n const commitment = await generateCommitment(secret, nullifier, amount, pool);\n\n // Insert commitment into merkle tree and compute new root\n merkleTree.insert(commitment);\n const newRoot = merkleTree.root();\n\n // ! NOTE, DURING INITIALIZATION,\n const depositIx = await getDepositInstructionAsync({\n depositor: authority,\n pool,\n amount,\n commitment,\n newRoot,\n mint: WRAPPED_SOL_MINT_TOKEN_PROGRAM,\n });\n\n await pipe(\n await createDefaultTransaction(client, authority),\n (tx) => appendTransactionMessageInstruction(depositIx, tx),\n (tx) => signAndSendTransaction(client, tx)\n );\n\n return {\n depositor: authority.address,\n commitment,\n secret,\n nullifier,\n };\n};\n\nexport const transferForAuthority = async (\n client: Client,\n ixArgs: {\n relayerFee: number;\n recipientAmount: bigint;\n nullifierHash: Uint8Array;\n proofData: ProofData;\n publicInputs: Uint8Array[];\n mint: Address;\n }\n): Promise<{\n relayer: Address;\n}> => {\n const [relayer, recipient] = await Promise.all([\n loadRelayerKeypair(),\n loadReceiverKeypair(),\n ]);\n\n // airdrop relayer\n await airdropSolToAddress(client, relayer.address);\n\n const {\n relayerFee,\n recipientAmount,\n nullifierHash,\n // root,\n mint,\n publicInputs,\n proofData: { proofA, proofB, proofC },\n } = ixArgs;\n\n // find pool address\n const [pool] = await findPoolAddress({\n mint,\n });\n\n // TEMPORARY: The autogenerated client hasn't been regenerated yet\n // The Rust program expects: relayer_fee (6th), recipient_amount (7th)\n // But the old client has: amount (6th), fee (7th)\n // So we swap them here until the client is regenerated\n const transferIx = await getTransferInstructionAsync({\n relayer,\n pool,\n recipient: recipient.address,\n proofA,\n proofB,\n proofC,\n nullifierHash,\n publicInputs,\n recipientAmount: recipientAmount,\n relayerFee: relayerFee,\n mint,\n });\n\n await pipe(\n await createDefaultTransaction(client, relayer),\n (tx) => appendTransactionMessageInstruction(transferIx, tx),\n (tx) =>\n appendTransactionMessageInstructions(\n [getSetComputeUnitLimitInstruction({ units: 1_400_000 })],\n tx\n ),\n (tx) => signAndSendTransaction(client, tx)\n );\n\n // todo: return the address of the pool\n // todo: what to return\n return { relayer: relayer.address };\n};\n"]}
@@ -24,9 +24,10 @@ var require_transfer_test = __commonJS({
24
24
  const [pool] = await src.findPoolAddress({
25
25
  mint: _constants.WRAPPED_SOL_MINT_TOKEN_PROGRAM
26
26
  });
27
- const { authority } = await _setup.createSolPoolForAuthority(client);
28
- console.log("init authority", authority);
27
+ console.log("calling init pool");
28
+ await _setup.createSolPoolForAuthority(client);
29
29
  const [vault] = await src.findVaultAddress({ pool });
30
+ console.log("calling deposit into pool");
30
31
  const depositAmount = BigInt(10) * _constants.LAMPORTS_PER_SOL;
31
32
  const { secret, nullifier } = await _setup.depositSolPoolForAuthority(
32
33
  client,
@@ -35,22 +36,20 @@ var require_transfer_test = __commonJS({
35
36
  // Pass the merkle tree to handle root computation
36
37
  );
37
38
  const localRoot = merkleTree.root();
38
- console.log("Local merkle tree root:", localRoot);
39
39
  const leafIndex = 0;
40
40
  const { pathElements, pathIndices } = merkleTree.getProof(leafIndex);
41
41
  const root = localRoot;
42
- console.log("Using local root for proof:", root);
43
42
  const nullifierHash = await src.generateNullifier(nullifier, pool);
44
43
  const recipient = await _setup.loadReceiverKeypair();
45
44
  const recipientBytes = kit.getAddressEncoder().encode(recipient.address);
46
45
  const relayerBytes = kit.getAddressEncoder().encode(relayer.address);
47
46
  const relayerFee = 0;
48
- const recipientAmount = Number(depositAmount);
47
+ const recipientAmount = depositAmount;
49
48
  console.log("Generating ZK proof...");
50
49
  const { proofData, publicInputs } = await src.generateProof({
51
50
  secret,
52
51
  nullifier,
53
- amount: Number(depositAmount),
52
+ amount: depositAmount,
54
53
  // Private input - what was deposited
55
54
  pathElements,
56
55
  pathIndices,
@@ -66,6 +65,7 @@ var require_transfer_test = __commonJS({
66
65
  console.log("ZK proof generated successfully");
67
66
  const balanceBefore = await _setup.getBalance(client, vault);
68
67
  console.log("Vault balance before transfer:", balanceBefore);
68
+ console.log("calling transfer tx");
69
69
  await _setup.transferForAuthority(client, {
70
70
  relayerFee,
71
71
  recipientAmount,
@@ -74,7 +74,6 @@ var require_transfer_test = __commonJS({
74
74
  proofData,
75
75
  mint: _constants.WRAPPED_SOL_MINT_TOKEN_PROGRAM
76
76
  });
77
- console.log("Transfer completed successfully");
78
77
  const balanceAfter = await _setup.getBalance(client, vault);
79
78
  console.log("Vault balance after transfer:", balanceAfter);
80
79
  const protocolFee = BigInt(recipientAmount) * 30n / 10000n;
@@ -1 +1 @@
1
- {"version":3,"sources":["../../test/transfer.test.ts"],"names":["test","createDefaultSolanaClient","loadRelayerKeypair","MerkleTree","findPoolAddress","WRAPPED_SOL_MINT_TOKEN_PROGRAM","createSolPoolForAuthority","findVaultAddress","LAMPORTS_PER_SOL","depositSolPoolForAuthority","generateNullifier","loadReceiverKeypair","getAddressEncoder","generateProof","getBalance","transferForAuthority"],"mappings":"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","file":"transfer.test.js","sourcesContent":["import { getAddressEncoder } from '@solana/kit';\nimport test from 'ava';\nimport {\n findPoolAddress,\n findVaultAddress,\n generateNullifier,\n generateProof,\n MerkleTree,\n} from '../src';\nimport { LAMPORTS_PER_SOL, WRAPPED_SOL_MINT_TOKEN_PROGRAM } from './_constants';\nimport {\n createDefaultSolanaClient,\n createSolPoolForAuthority,\n depositSolPoolForAuthority,\n getBalance,\n loadReceiverKeypair,\n loadRelayerKeypair,\n transferForAuthority,\n} from './_setup';\n\ntest('it transfers authority deposited SOL', async (t) => {\n const client = createDefaultSolanaClient();\n const relayer = await loadRelayerKeypair();\n const merkleTree = new MerkleTree(20);\n await merkleTree.initialize();\n\n // find pool address\n const [pool] = await findPoolAddress({\n mint: WRAPPED_SOL_MINT_TOKEN_PROGRAM,\n });\n\n // create pool\n const { authority } = await createSolPoolForAuthority(client);\n console.log('init authority', authority); // ! debug\n\n // find vault address\n const [vault] = await findVaultAddress({ pool });\n\n // deposit\n const depositAmount = BigInt(10) * LAMPORTS_PER_SOL;\n const { secret, nullifier } = await depositSolPoolForAuthority(\n client,\n depositAmount,\n merkleTree // Pass the merkle tree to handle root computation\n );\n\n // Tree already updated inside depositSolPoolForAuthority\n const localRoot = merkleTree.root();\n console.log('Local merkle tree root:', localRoot);\n\n // Get merkle proof for the commitment (leaf index 0 since it's the first deposit)\n const leafIndex = 0;\n const { pathElements, pathIndices } = merkleTree.getProof(leafIndex);\n\n // Use LOCAL root (tree is off-chain now)\n const root = localRoot;\n console.log('Using local root for proof:', root);\n\n // Generate nullifier hash\n const nullifierHash = await generateNullifier(nullifier, pool);\n\n // Get recipient address\n const recipient = await loadReceiverKeypair();\n const recipientBytes = getAddressEncoder().encode(recipient.address);\n\n // For now, use authority as relayer (can be changed later)\n const relayerBytes = getAddressEncoder().encode(relayer.address);\n\n // Generate zero-knowledge proof\n // In the new design:\n // - relayer_fee: what the relayer gets (user chooses)\n // - recipient_amount: what goes to recipient BEFORE protocol fee (proven by circuit)\n // - circuit proves: depositAmount >= relayer_fee + recipient_amount\n const relayerFee = 0; // No relayer fee for this test\n const recipientAmount = Number(depositAmount); // Withdraw full deposit amount\n\n console.log('Generating ZK proof...');\n const { proofData, publicInputs } = await generateProof({\n secret,\n nullifier,\n amount: Number(depositAmount), // Private input - what was deposited\n pathElements,\n pathIndices,\n recipient: Uint8Array.from(recipientBytes),\n relayer: Uint8Array.from(relayerBytes),\n fee: relayerFee, // Public input - must match instruction parameter\n refund: recipientAmount, // Public input - must match instruction parameter\n root: Uint8Array.from(root),\n poolAddress: pool,\n });\n\n console.log('ZK proof generated successfully');\n\n // Check vault balance before transfer\n const balanceBefore = await getBalance(client, vault);\n console.log('Vault balance before transfer:', balanceBefore);\n\n // Perform the transfer (withdrawal)\n await transferForAuthority(client, {\n relayerFee,\n recipientAmount,\n nullifierHash,\n publicInputs,\n proofData,\n mint: WRAPPED_SOL_MINT_TOKEN_PROGRAM,\n });\n\n console.log('Transfer completed successfully');\n\n // Check vault balance after transfer\n const balanceAfter = await getBalance(client, vault);\n console.log('Vault balance after transfer:', balanceAfter);\n\n // Calculate expected amounts\n // Protocol fee is 30bps of recipient_amount\n const protocolFee = (BigInt(recipientAmount) * 30n) / 10000n;\n const finalRecipientAmount = BigInt(recipientAmount) - protocolFee;\n const totalWithdrawn = BigInt(recipientAmount) + BigInt(relayerFee);\n\n console.log('Protocol fee:', protocolFee);\n console.log('Final recipient amount:', finalRecipientAmount);\n console.log('Total withdrawn from vault:', totalWithdrawn);\n\n // Verify vault balance decreased by the total withdrawn amount\n t.truthy(BigInt(balanceBefore) - BigInt(balanceAfter) >= totalWithdrawn);\n\n // Verify recipient received the funds (after protocol fee)\n const recipientBalance = await getBalance(client, recipient.address);\n console.log('Recipient balance:', recipientBalance);\n t.truthy(BigInt(recipientBalance) >= finalRecipientAmount);\n});\n"]}
1
+ {"version":3,"sources":["../../test/transfer.test.ts"],"names":["test","createDefaultSolanaClient","loadRelayerKeypair","MerkleTree","findPoolAddress","WRAPPED_SOL_MINT_TOKEN_PROGRAM","createSolPoolForAuthority","findVaultAddress","LAMPORTS_PER_SOL","depositSolPoolForAuthority","generateNullifier","loadReceiverKeypair","getAddressEncoder","generateProof","getBalance","transferForAuthority"],"mappings":"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","file":"transfer.test.js","sourcesContent":["import { getAddressEncoder } from '@solana/kit';\nimport test from 'ava';\nimport {\n findPoolAddress,\n findVaultAddress,\n generateNullifier,\n generateProof,\n MerkleTree,\n} from '../src';\nimport { LAMPORTS_PER_SOL, WRAPPED_SOL_MINT_TOKEN_PROGRAM } from './_constants';\nimport {\n createDefaultSolanaClient,\n createSolPoolForAuthority,\n depositSolPoolForAuthority,\n getBalance,\n loadReceiverKeypair,\n loadRelayerKeypair,\n transferForAuthority,\n} from './_setup';\n\ntest('it transfers authority deposited SOL', async (t) => {\n const client = createDefaultSolanaClient();\n const relayer = await loadRelayerKeypair();\n const merkleTree = new MerkleTree(20);\n await merkleTree.initialize();\n\n // find pool address\n const [pool] = await findPoolAddress({\n mint: WRAPPED_SOL_MINT_TOKEN_PROGRAM,\n });\n\n // create pool\n console.log('calling init pool');\n await createSolPoolForAuthority(client);\n\n // find vault address\n const [vault] = await findVaultAddress({ pool });\n\n // deposit\n console.log('calling deposit into pool');\n const depositAmount = BigInt(10) * LAMPORTS_PER_SOL;\n const { secret, nullifier } = await depositSolPoolForAuthority(\n client,\n depositAmount,\n merkleTree // Pass the merkle tree to handle root computation\n );\n\n // Tree already updated inside depositSolPoolForAuthority\n const localRoot = merkleTree.root();\n\n // Get merkle proof for the commitment (leaf index 0 since it's the first deposit)\n const leafIndex = 0;\n const { pathElements, pathIndices } = merkleTree.getProof(leafIndex);\n\n // Use LOCAL root (tree is off-chain now)\n const root = localRoot;\n\n // Generate nullifier hash\n const nullifierHash = await generateNullifier(nullifier, pool);\n\n // Get recipient address\n const recipient = await loadReceiverKeypair();\n const recipientBytes = getAddressEncoder().encode(recipient.address);\n\n // For now, use authority as relayer (can be changed later)\n const relayerBytes = getAddressEncoder().encode(relayer.address);\n\n // Generate zero-knowledge proof\n // In the new design:\n // - relayer_fee: what the relayer gets (user chooses)\n // - recipient_amount: what goes to recipient BEFORE protocol fee (proven by circuit)\n // - circuit proves: depositAmount >= relayer_fee + recipient_amount\n const relayerFee = 0; // No relayer fee for this test\n const recipientAmount = depositAmount; // Withdraw full deposit amount\n\n console.log('Generating ZK proof...');\n const { proofData, publicInputs } = await generateProof({\n secret,\n nullifier,\n amount: depositAmount, // Private input - what was deposited\n pathElements,\n pathIndices,\n recipient: Uint8Array.from(recipientBytes),\n relayer: Uint8Array.from(relayerBytes),\n fee: relayerFee, // Public input - must match instruction parameter\n refund: recipientAmount, // Public input - must match instruction parameter\n root: Uint8Array.from(root),\n poolAddress: pool,\n });\n console.log('ZK proof generated successfully');\n\n // Check vault balance before transfer\n const balanceBefore = await getBalance(client, vault);\n console.log('Vault balance before transfer:', balanceBefore);\n\n // Perform the transfer (withdrawal)\n console.log('calling transfer tx');\n await transferForAuthority(client, {\n relayerFee,\n recipientAmount,\n nullifierHash,\n publicInputs,\n proofData,\n mint: WRAPPED_SOL_MINT_TOKEN_PROGRAM,\n });\n\n // Check vault balance after transfer\n const balanceAfter = await getBalance(client, vault);\n console.log('Vault balance after transfer:', balanceAfter);\n\n // Calculate expected amounts\n // Protocol fee is 30bps of recipient_amount\n const protocolFee = (BigInt(recipientAmount) * 30n) / 10000n;\n const finalRecipientAmount = BigInt(recipientAmount) - protocolFee;\n const totalWithdrawn = BigInt(recipientAmount) + BigInt(relayerFee);\n\n console.log('Protocol fee:', protocolFee);\n console.log('Final recipient amount:', finalRecipientAmount);\n console.log('Total withdrawn from vault:', totalWithdrawn);\n\n // Verify vault balance decreased by the total withdrawn amount\n t.truthy(BigInt(balanceBefore) - BigInt(balanceAfter) >= totalWithdrawn);\n\n // Verify recipient received the funds (after protocol fee)\n const recipientBalance = await getBalance(client, recipient.address);\n console.log('Recipient balance:', recipientBalance);\n t.truthy(BigInt(recipientBalance) >= finalRecipientAmount);\n});\n"]}
@@ -32,7 +32,9 @@ export declare const MIXOOR_ERROR__POSEIDON_HASH_ERROR = 6010;
32
32
  export declare const MIXOOR_ERROR__MERKLE_TREE_FULL = 6011;
33
33
  /** InvalidMerkleProof: Invalid merkle proof */
34
34
  export declare const MIXOOR_ERROR__INVALID_MERKLE_PROOF = 6012;
35
- export type MixoorError = typeof MIXOOR_ERROR__INSUFFICIENT_FUNDS | typeof MIXOOR_ERROR__INVALID_AMOUNT | typeof MIXOOR_ERROR__INVALID_ASSET_TYPE | typeof MIXOOR_ERROR__INVALID_MERKLE_PROOF | typeof MIXOOR_ERROR__INVALID_MERKLE_TREE | typeof MIXOOR_ERROR__INVALID_MERKLE_TREE_ADDRESS | typeof MIXOOR_ERROR__INVALID_PROOF | typeof MIXOOR_ERROR__INVALID_PUBLIC_INPUTS | typeof MIXOOR_ERROR__MERKLE_TREE_FULL | typeof MIXOOR_ERROR__MISSING_TOKEN_ACCOUNT | typeof MIXOOR_ERROR__OVERFLOW | typeof MIXOOR_ERROR__POSEIDON_HASH_ERROR | typeof MIXOOR_ERROR__UNKNOWN_ROOT;
35
+ /** PublicInputMismatch: Public input does not match instruction parameter */
36
+ export declare const MIXOOR_ERROR__PUBLIC_INPUT_MISMATCH = 6013;
37
+ export type MixoorError = typeof MIXOOR_ERROR__INSUFFICIENT_FUNDS | typeof MIXOOR_ERROR__INVALID_AMOUNT | typeof MIXOOR_ERROR__INVALID_ASSET_TYPE | typeof MIXOOR_ERROR__INVALID_MERKLE_PROOF | typeof MIXOOR_ERROR__INVALID_MERKLE_TREE | typeof MIXOOR_ERROR__INVALID_MERKLE_TREE_ADDRESS | typeof MIXOOR_ERROR__INVALID_PROOF | typeof MIXOOR_ERROR__INVALID_PUBLIC_INPUTS | typeof MIXOOR_ERROR__MERKLE_TREE_FULL | typeof MIXOOR_ERROR__MISSING_TOKEN_ACCOUNT | typeof MIXOOR_ERROR__OVERFLOW | typeof MIXOOR_ERROR__POSEIDON_HASH_ERROR | typeof MIXOOR_ERROR__PUBLIC_INPUT_MISMATCH | typeof MIXOOR_ERROR__UNKNOWN_ROOT;
36
38
  export declare function getMixoorErrorMessage(code: MixoorError): string;
37
39
  export declare function isMixoorError<TProgramErrorCode extends MixoorError>(error: unknown, transactionMessage: {
38
40
  instructions: Record<number, {
@@ -1 +1 @@
1
- {"version":3,"file":"mixoor.d.ts","sourceRoot":"","sources":["../../../../../src/generated/errors/mixoor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,uCAAuC,EAC5C,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAGrB,kCAAkC;AAClC,eAAO,MAAM,2BAA2B,OAAS,CAAC;AAClD,uCAAuC;AACvC,eAAO,MAAM,0BAA0B,OAAS,CAAC;AACjD,oCAAoC;AACpC,eAAO,MAAM,4BAA4B,OAAS,CAAC;AACnD,4CAA4C;AAC5C,eAAO,MAAM,gCAAgC,OAAS,CAAC;AACvD,iDAAiD;AACjD,eAAO,MAAM,mCAAmC,OAAS,CAAC;AAC1D,yBAAyB;AACzB,eAAO,MAAM,sBAAsB,OAAS,CAAC;AAC7C,2DAA2D;AAC3D,eAAO,MAAM,mCAAmC,OAAS,CAAC;AAC1D,wDAAwD;AACxD,eAAO,MAAM,gCAAgC,OAAS,CAAC;AACvD,4DAA4D;AAC5D,eAAO,MAAM,yCAAyC,OAAS,CAAC;AAChE,+EAA+E;AAC/E,eAAO,MAAM,iCAAiC,OAAS,CAAC;AACxD,6CAA6C;AAC7C,eAAO,MAAM,iCAAiC,OAAS,CAAC;AACxD,0CAA0C;AAC1C,eAAO,MAAM,8BAA8B,OAAS,CAAC;AACrD,+CAA+C;AAC/C,eAAO,MAAM,kCAAkC,OAAS,CAAC;AAEzD,MAAM,MAAM,WAAW,GACnB,OAAO,gCAAgC,GACvC,OAAO,4BAA4B,GACnC,OAAO,gCAAgC,GACvC,OAAO,kCAAkC,GACzC,OAAO,iCAAiC,GACxC,OAAO,yCAAyC,GAChD,OAAO,2BAA2B,GAClC,OAAO,mCAAmC,GAC1C,OAAO,8BAA8B,GACrC,OAAO,mCAAmC,GAC1C,OAAO,sBAAsB,GAC7B,OAAO,iCAAiC,GACxC,OAAO,0BAA0B,CAAC;AAqBtC,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAM/D;AAED,wBAAgB,aAAa,CAAC,iBAAiB,SAAS,WAAW,EACjE,KAAK,EAAE,OAAO,EACd,kBAAkB,EAAE;IAClB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,cAAc,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC3D,EACD,IAAI,CAAC,EAAE,iBAAiB,GACvB,KAAK,IAAI,WAAW,CAAC,OAAO,uCAAuC,CAAC,GACrE,QAAQ,CAAC;IAAE,OAAO,EAAE,QAAQ,CAAC;QAAE,IAAI,EAAE,iBAAiB,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAO7D"}
1
+ {"version":3,"file":"mixoor.d.ts","sourceRoot":"","sources":["../../../../../src/generated/errors/mixoor.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,EAEL,KAAK,OAAO,EACZ,KAAK,uCAAuC,EAC5C,KAAK,WAAW,EACjB,MAAM,aAAa,CAAC;AAGrB,kCAAkC;AAClC,eAAO,MAAM,2BAA2B,OAAS,CAAC;AAClD,uCAAuC;AACvC,eAAO,MAAM,0BAA0B,OAAS,CAAC;AACjD,oCAAoC;AACpC,eAAO,MAAM,4BAA4B,OAAS,CAAC;AACnD,4CAA4C;AAC5C,eAAO,MAAM,gCAAgC,OAAS,CAAC;AACvD,iDAAiD;AACjD,eAAO,MAAM,mCAAmC,OAAS,CAAC;AAC1D,yBAAyB;AACzB,eAAO,MAAM,sBAAsB,OAAS,CAAC;AAC7C,2DAA2D;AAC3D,eAAO,MAAM,mCAAmC,OAAS,CAAC;AAC1D,wDAAwD;AACxD,eAAO,MAAM,gCAAgC,OAAS,CAAC;AACvD,4DAA4D;AAC5D,eAAO,MAAM,yCAAyC,OAAS,CAAC;AAChE,+EAA+E;AAC/E,eAAO,MAAM,iCAAiC,OAAS,CAAC;AACxD,6CAA6C;AAC7C,eAAO,MAAM,iCAAiC,OAAS,CAAC;AACxD,0CAA0C;AAC1C,eAAO,MAAM,8BAA8B,OAAS,CAAC;AACrD,+CAA+C;AAC/C,eAAO,MAAM,kCAAkC,OAAS,CAAC;AACzD,6EAA6E;AAC7E,eAAO,MAAM,mCAAmC,OAAS,CAAC;AAE1D,MAAM,MAAM,WAAW,GACnB,OAAO,gCAAgC,GACvC,OAAO,4BAA4B,GACnC,OAAO,gCAAgC,GACvC,OAAO,kCAAkC,GACzC,OAAO,iCAAiC,GACxC,OAAO,yCAAyC,GAChD,OAAO,2BAA2B,GAClC,OAAO,mCAAmC,GAC1C,OAAO,8BAA8B,GACrC,OAAO,mCAAmC,GAC1C,OAAO,sBAAsB,GAC7B,OAAO,iCAAiC,GACxC,OAAO,mCAAmC,GAC1C,OAAO,0BAA0B,CAAC;AAsBtC,wBAAgB,qBAAqB,CAAC,IAAI,EAAE,WAAW,GAAG,MAAM,CAM/D;AAED,wBAAgB,aAAa,CAAC,iBAAiB,SAAS,WAAW,EACjE,KAAK,EAAE,OAAO,EACd,kBAAkB,EAAE;IAClB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE;QAAE,cAAc,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;CAC3D,EACD,IAAI,CAAC,EAAE,iBAAiB,GACvB,KAAK,IAAI,WAAW,CAAC,OAAO,uCAAuC,CAAC,GACrE,QAAQ,CAAC;IAAE,OAAO,EAAE,QAAQ,CAAC;QAAE,IAAI,EAAE,iBAAiB,CAAA;KAAE,CAAC,CAAA;CAAE,CAAC,CAO7D"}
@@ -32,8 +32,8 @@ export type TransferInstructionData = {
32
32
  proofC: ReadonlyUint8Array;
33
33
  publicInputs: Array<ReadonlyUint8Array>;
34
34
  nullifierHash: ReadonlyUint8Array;
35
- amount: bigint;
36
- fee: bigint;
35
+ relayerFee: bigint;
36
+ recipientAmount: bigint;
37
37
  };
38
38
  export type TransferInstructionDataArgs = {
39
39
  proofA: ReadonlyUint8Array;
@@ -41,8 +41,8 @@ export type TransferInstructionDataArgs = {
41
41
  proofC: ReadonlyUint8Array;
42
42
  publicInputs: Array<ReadonlyUint8Array>;
43
43
  nullifierHash: ReadonlyUint8Array;
44
- amount: number | bigint;
45
- fee: number | bigint;
44
+ relayerFee: number | bigint;
45
+ recipientAmount: number | bigint;
46
46
  };
47
47
  export declare function getTransferInstructionDataEncoder(): FixedSizeEncoder<TransferInstructionDataArgs>;
48
48
  export declare function getTransferInstructionDataDecoder(): FixedSizeDecoder<TransferInstructionData>;
@@ -66,8 +66,8 @@ export type TransferAsyncInput<TAccountRelayer extends string = string, TAccount
66
66
  proofC: TransferInstructionDataArgs['proofC'];
67
67
  publicInputs: TransferInstructionDataArgs['publicInputs'];
68
68
  nullifierHash: TransferInstructionDataArgs['nullifierHash'];
69
- amount: TransferInstructionDataArgs['amount'];
70
- fee: TransferInstructionDataArgs['fee'];
69
+ relayerFee: TransferInstructionDataArgs['relayerFee'];
70
+ recipientAmount: TransferInstructionDataArgs['recipientAmount'];
71
71
  };
72
72
  export declare function getTransferInstructionAsync<TAccountRelayer extends string, TAccountPool extends string, TAccountMint extends string, TAccountVault extends string, TAccountNullifier extends string, TAccountRecipient extends string, TAccountVaultTokenAccount extends string, TAccountRecipientTokenAccount extends string, TAccountFeeCollector extends string, TAccountFeeCollectorTokenAccount extends string, TAccountSystemProgram extends string, TAccountTokenProgram extends string, TAccountAssociatedTokenProgram extends string, TProgramAddress extends Address = typeof MIXOOR_PROGRAM_ADDRESS>(input: TransferAsyncInput<TAccountRelayer, TAccountPool, TAccountMint, TAccountVault, TAccountNullifier, TAccountRecipient, TAccountVaultTokenAccount, TAccountRecipientTokenAccount, TAccountFeeCollector, TAccountFeeCollectorTokenAccount, TAccountSystemProgram, TAccountTokenProgram, TAccountAssociatedTokenProgram>, config?: {
73
73
  programAddress?: TProgramAddress;
@@ -91,8 +91,8 @@ export type TransferInput<TAccountRelayer extends string = string, TAccountPool
91
91
  proofC: TransferInstructionDataArgs['proofC'];
92
92
  publicInputs: TransferInstructionDataArgs['publicInputs'];
93
93
  nullifierHash: TransferInstructionDataArgs['nullifierHash'];
94
- amount: TransferInstructionDataArgs['amount'];
95
- fee: TransferInstructionDataArgs['fee'];
94
+ relayerFee: TransferInstructionDataArgs['relayerFee'];
95
+ recipientAmount: TransferInstructionDataArgs['recipientAmount'];
96
96
  };
97
97
  export declare function getTransferInstruction<TAccountRelayer extends string, TAccountPool extends string, TAccountMint extends string, TAccountVault extends string, TAccountNullifier extends string, TAccountRecipient extends string, TAccountVaultTokenAccount extends string, TAccountRecipientTokenAccount extends string, TAccountFeeCollector extends string, TAccountFeeCollectorTokenAccount extends string, TAccountSystemProgram extends string, TAccountTokenProgram extends string, TAccountAssociatedTokenProgram extends string, TProgramAddress extends Address = typeof MIXOOR_PROGRAM_ADDRESS>(input: TransferInput<TAccountRelayer, TAccountPool, TAccountMint, TAccountVault, TAccountNullifier, TAccountRecipient, TAccountVaultTokenAccount, TAccountRecipientTokenAccount, TAccountFeeCollector, TAccountFeeCollectorTokenAccount, TAccountSystemProgram, TAccountTokenProgram, TAccountAssociatedTokenProgram>, config?: {
98
98
  programAddress?: TProgramAddress;
@@ -1 +1 @@
1
- {"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../../../../src/generated/instructions/transfer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"transfer.d.ts","sourceRoot":"","sources":["../../../../../src/generated/instructions/transfer.ts"],"names":[],"mappings":"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"}
@@ -5,13 +5,13 @@ export declare function generateNullifier(nullifier: Uint8Array, poolId: Address
5
5
  export interface ProofInput {
6
6
  secret: Uint8Array;
7
7
  nullifier: Uint8Array;
8
- amount: number;
8
+ amount: bigint;
9
9
  pathElements: Uint8Array[];
10
10
  pathIndices: number[];
11
11
  recipient: Uint8Array;
12
12
  relayer: Uint8Array;
13
13
  fee: number;
14
- refund: number;
14
+ refund: bigint;
15
15
  root: Uint8Array;
16
16
  poolAddress: Address;
17
17
  }
@@ -1 +1 @@
1
- {"version":3,"file":"circuit.d.ts","sourceRoot":"","sources":["../../../../src/utils/circuit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAqB,MAAM,aAAa,CAAC;AAgCzD,wBAAsB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAgB5E;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,UAAU,EACrB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,UAAU,CAAC,CAiCrB;AAED,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,UAAU,EACrB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,UAAU,CAAC,CAGrB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,UAAU,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,UAAU,CAAC;IACtB,OAAO,EAAE,UAAU,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC;CACrB;AAuDD,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,wBAAsB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC;IAC9D,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,UAAU,EAAE,CAAC;CAC5B,CAAC,CA6FD"}
1
+ {"version":3,"file":"circuit.d.ts","sourceRoot":"","sources":["../../../../src/utils/circuit.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAqB,MAAM,aAAa,CAAC;AAgCzD,wBAAsB,YAAY,CAAC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC,CAgB5E;AAED,wBAAsB,kBAAkB,CACtC,MAAM,EAAE,UAAU,EAClB,SAAS,EAAE,UAAU,EACrB,MAAM,EAAE,MAAM,EACd,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,UAAU,CAAC,CA2BrB;AAED,wBAAsB,iBAAiB,CACrC,SAAS,EAAE,UAAU,EACrB,MAAM,EAAE,OAAO,GACd,OAAO,CAAC,UAAU,CAAC,CAGrB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,UAAU,CAAC;IACtB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,SAAS,EAAE,UAAU,CAAC;IACtB,OAAO,EAAE,UAAU,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC;IACpB,OAAO,EAAE,UAAU,CAAC;CACrB;AAuDD,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;IACnB,MAAM,EAAE,UAAU,CAAC;CACpB,CAAC;AAEF,wBAAsB,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC;IAC9D,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,UAAU,EAAE,CAAC;CAC5B,CAAC,CAgFD"}
@@ -29,6 +29,8 @@ export declare function findVaultAddress(seeds: MerkleTreeSeeds, config?: {
29
29
  export type NullifierSeeds = {
30
30
  /** The prefix string SEED. */
31
31
  seed?: string;
32
+ /** The pool address */
33
+ pool: Address;
32
34
  /** The nullifier hash */
33
35
  nullifierHash: Uint8Array;
34
36
  };
@@ -1 +1 @@
1
- {"version":3,"file":"pda.d.ts","sourceRoot":"","sources":["../../../../src/utils/pda.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAGP,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAGrB,MAAM,MAAM,SAAS,GAAG;IACtB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,wBAAsB,eAAe,CACnC,KAAK,EAAE,SAAS,EAChB,MAAM,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAO,GACpD,OAAO,CAAC,qBAAqB,CAAC,CAOhC;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,eAAe,EACtB,MAAM,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAO,GACpD,OAAO,CAAC,qBAAqB,CAAC,CAOhC;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,eAAe,EACtB,MAAM,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAO,GACpD,OAAO,CAAC,qBAAqB,CAAC,CAOhC;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,yBAAyB;IACzB,aAAa,EAAE,UAAU,CAAC;CAC3B,CAAC;AAEF,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,cAAc,EACrB,MAAM,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAO,GACpD,OAAO,CAAC,qBAAqB,CAAC,CAOhC"}
1
+ {"version":3,"file":"pda.d.ts","sourceRoot":"","sources":["../../../../src/utils/pda.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,OAAO,EAGP,qBAAqB,EACtB,MAAM,aAAa,CAAC;AAGrB,MAAM,MAAM,SAAS,GAAG;IACtB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,wBAAsB,eAAe,CACnC,KAAK,EAAE,SAAS,EAChB,MAAM,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAO,GACpD,OAAO,CAAC,qBAAqB,CAAC,CAOhC;AAED,MAAM,MAAM,eAAe,GAAG;IAC5B,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,wBAAsB,qBAAqB,CACzC,KAAK,EAAE,eAAe,EACtB,MAAM,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAO,GACpD,OAAO,CAAC,qBAAqB,CAAC,CAOhC;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,IAAI,EAAE,OAAO,CAAC;CACf,CAAC;AAEF,wBAAsB,gBAAgB,CACpC,KAAK,EAAE,eAAe,EACtB,MAAM,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAO,GACpD,OAAO,CAAC,qBAAqB,CAAC,CAOhC;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,8BAA8B;IAC9B,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uBAAuB;IACvB,IAAI,EAAE,OAAO,CAAC;IACd,yBAAyB;IACzB,aAAa,EAAE,UAAU,CAAC;CAC3B,CAAC;AAEF,wBAAsB,oBAAoB,CACxC,KAAK,EAAE,cAAc,EACrB,MAAM,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAAO,GACpD,OAAO,CAAC,qBAAqB,CAAC,CAWhC"}
@@ -38,7 +38,7 @@ export declare const depositSolPoolForAuthority: (client: Client, amount: bigint
38
38
  }>;
39
39
  export declare const transferForAuthority: (client: Client, ixArgs: {
40
40
  relayerFee: number;
41
- recipientAmount: number;
41
+ recipientAmount: bigint;
42
42
  nullifierHash: Uint8Array;
43
43
  proofData: ProofData;
44
44
  publicInputs: Uint8Array[];
@@ -1 +1 @@
1
- {"version":3,"file":"_setup.d.ts","sourceRoot":"","sources":["../../../test/_setup.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EAMP,UAAU,EAOV,aAAa,EAGb,GAAG,EACH,gBAAgB,EAKhB,YAAY,EACZ,yBAAyB,EACzB,kBAAkB,EAClB,8BAA8B,EAC9B,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAOrB,OAAO,EAOL,UAAU,EACV,SAAS,EACV,MAAM,QAAQ,CAAC;AAGhB,MAAM,MAAM,MAAM,GAAG;IACnB,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IACvB,gBAAgB,EAAE,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;CAC/D,CAAC;AAEF,eAAO,MAAM,yBAAyB,QAAO,MAI5C,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAO,MAOrC,CAAC;AAEF,eAAO,MAAM,4BAA4B,GACvC,QAAQ,MAAM,EACd,mBAAkB,MAAuB,mCAS1C,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,MAAM,EACd,UAAU,OAAO,EAAE,QAAQ;AAC3B,mBAAkB,MAAuB,kBAO1C,CAAC;AAEF,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAWhC;AAED,eAAO,MAAM,wBAAwB,GACnC,QAAQ,MAAM,EACd,UAAU,iBAAiB;;;;;gLAU5B,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,QAAQ,MAAM,EACd,oBAAoB,kBAAkB,GAAG,8BAA8B,EAEvE,aAAY,UAAwB,6CAgBrC,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,QAAQ,MAAM,EAAE,SAAS,OAAO,4CAEvD,CAAC;AAEX,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAEzE;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAE1E;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAEzE;AAED,eAAO,MAAM,eAAe,GAAU,QAAQ,MAAM,EAAE,cAAc,OAAO;;;;;GAKlE,CAAC;AAIV,eAAO,MAAM,yBAAyB,GACpC,QAAQ,MAAM,KAEb,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAA;CAAE,CAiBhC,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,QAAQ,MAAM,EACd,QAAQ,MAAM,EACd,YAAY,UAAU,KACrB,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,UAAU,CAAC;CACvB,CA0CA,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,MAAM,EACd,QAAQ;IACN,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,UAAU,CAAC;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,IAAI,EAAE,OAAO,CAAC;CACf,KACA,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAC;CAClB,CA0DA,CAAC"}
1
+ {"version":3,"file":"_setup.d.ts","sourceRoot":"","sources":["../../../test/_setup.ts"],"names":[],"mappings":"AACA,OAAO,EACL,OAAO,EAMP,UAAU,EAOV,aAAa,EAGb,GAAG,EACH,gBAAgB,EAKhB,YAAY,EACZ,yBAAyB,EACzB,kBAAkB,EAClB,8BAA8B,EAC9B,iBAAiB,EAClB,MAAM,aAAa,CAAC;AAOrB,OAAO,EAOL,UAAU,EACV,SAAS,EACV,MAAM,QAAQ,CAAC;AAGhB,MAAM,MAAM,MAAM,GAAG;IACnB,GAAG,EAAE,GAAG,CAAC,YAAY,CAAC,CAAC;IACvB,gBAAgB,EAAE,gBAAgB,CAAC,yBAAyB,CAAC,CAAC;CAC/D,CAAC;AAEF,eAAO,MAAM,yBAAyB,QAAO,MAI5C,CAAC;AAEF,eAAO,MAAM,kBAAkB,QAAO,MAOrC,CAAC;AAEF,eAAO,MAAM,4BAA4B,GACvC,QAAQ,MAAM,EACd,mBAAkB,MAAuB,mCAS1C,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,QAAQ,MAAM,EACd,UAAU,OAAO,EAAE,QAAQ;AAC3B,mBAAkB,MAAuB,kBAO1C,CAAC;AAEF,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAWhC;AAED,eAAO,MAAM,wBAAwB,GACnC,QAAQ,MAAM,EACd,UAAU,iBAAiB;;;;;gLAU5B,CAAC;AAEF,eAAO,MAAM,sBAAsB,GACjC,QAAQ,MAAM,EACd,oBAAoB,kBAAkB,GAAG,8BAA8B,EAEvE,aAAY,UAAwB,6CAgBrC,CAAC;AAEF,eAAO,MAAM,UAAU,GAAU,QAAQ,MAAM,EAAE,SAAS,OAAO,4CAEvD,CAAC;AAEX,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAEzE;AAED,wBAAsB,mBAAmB,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAE1E;AAED,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,CAEzE;AAED,eAAO,MAAM,eAAe,GAAU,QAAQ,MAAM,EAAE,cAAc,OAAO;;;;;GAKlE,CAAC;AAIV,eAAO,MAAM,yBAAyB,GACpC,QAAQ,MAAM,KAEb,OAAO,CAAC;IAAE,SAAS,EAAE,OAAO,CAAA;CAAE,CAgBhC,CAAC;AAEF,eAAO,MAAM,0BAA0B,GACrC,QAAQ,MAAM,EACd,QAAQ,MAAM,EACd,YAAY,UAAU,KACrB,OAAO,CAAC;IACT,SAAS,EAAE,OAAO,CAAC;IACnB,UAAU,EAAE,UAAU,CAAC;IACvB,MAAM,EAAE,UAAU,CAAC;IACnB,SAAS,EAAE,UAAU,CAAC;CACvB,CAuCA,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAC/B,QAAQ,MAAM,EACd,QAAQ;IACN,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,CAAC;IACxB,aAAa,EAAE,UAAU,CAAC;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB,YAAY,EAAE,UAAU,EAAE,CAAC;IAC3B,IAAI,EAAE,OAAO,CAAC;CACf,KACA,OAAO,CAAC;IACT,OAAO,EAAE,OAAO,CAAC;CAClB,CAwDA,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@smithii_io/mixoor",
3
- "version": "0.0.9",
3
+ "version": "0.0.10",
4
4
  "description": "JavaScript client for the Mixoor program",
5
5
  "sideEffects": false,
6
6
  "module": "./dist/src/index.mjs",