@lightprotocol/stateless.js 0.8.0 → 0.9.0

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.
@@ -7473,7 +7473,7 @@ async function createAccount(rpc, payer, seed, programId, addressTree, addressQu
7473
7473
  async function createAccountWithLamports(rpc, payer, seed, lamports, programId, addressTree, addressQueue, outputStateTree, confirmOptions) {
7474
7474
  lamports = bn(lamports);
7475
7475
  const compressedAccounts = await rpc.getCompressedAccountsByOwner(payer.publicKey);
7476
- const [inputAccounts] = selectMinCompressedSolAccountsForTransfer(compressedAccounts, lamports);
7476
+ const [inputAccounts] = selectMinCompressedSolAccountsForTransfer(compressedAccounts.items, lamports);
7477
7477
  const { blockhash } = await rpc.getLatestBlockhash();
7478
7478
  addressTree = addressTree !== null && addressTree !== void 0 ? addressTree : defaultTestStateTreeAccounts().addressTree;
7479
7479
  addressQueue = addressQueue !== null && addressQueue !== void 0 ? addressQueue : defaultTestStateTreeAccounts().addressQueue;
@@ -7520,7 +7520,7 @@ async function createAccountWithLamports(rpc, payer, seed, lamports, programId,
7520
7520
  /// TODO: add support for payer != owner
7521
7521
  async function decompress(rpc, payer, lamports, recipient, outputStateTree, confirmOptions) {
7522
7522
  /// TODO: use dynamic state tree and nullifier queue
7523
- const userCompressedAccountsWithMerkleContext = await rpc.getCompressedAccountsByOwner(payer.publicKey);
7523
+ const userCompressedAccountsWithMerkleContext = (await rpc.getCompressedAccountsByOwner(payer.publicKey)).items;
7524
7524
  lamports = bn(lamports);
7525
7525
  const inputLamports = sumUpLamports(userCompressedAccountsWithMerkleContext);
7526
7526
  if (lamports.gt(inputLamports)) {
@@ -7570,7 +7570,7 @@ async function transfer(rpc, payer, lamports, owner, toAddress,
7570
7570
  merkleTree, confirmOptions) {
7571
7571
  lamports = bn(lamports);
7572
7572
  const compressedAccounts = await rpc.getCompressedAccountsByOwner(owner.publicKey);
7573
- const [inputAccounts] = selectMinCompressedSolAccountsForTransfer(compressedAccounts, lamports);
7573
+ const [inputAccounts] = selectMinCompressedSolAccountsForTransfer(compressedAccounts.items, lamports);
7574
7574
  const proof = await rpc.getValidityProof(inputAccounts.map(account => bn(account.hash)));
7575
7575
  const ix = await LightSystemProgram.transfer({
7576
7576
  payer: payer.publicKey,
@@ -12405,14 +12405,14 @@ const MultipleCompressedAccountsResult = type({
12405
12405
  */
12406
12406
  const CompressedAccountsByOwnerResult = type({
12407
12407
  items: array(CompressedAccountResult),
12408
- cursor: nullable(PublicKeyFromString),
12408
+ cursor: nullable(string()),
12409
12409
  });
12410
12410
  /**
12411
12411
  * @internal
12412
12412
  */
12413
12413
  const CompressedTokenAccountsByOwnerOrDelegateResult = type({
12414
12414
  items: array(CompressedTokenAccountResult),
12415
- cursor: nullable(PublicKeyFromString),
12415
+ cursor: nullable(string()),
12416
12416
  });
12417
12417
  /**
12418
12418
  * @internal
@@ -12507,7 +12507,7 @@ const TokenBalanceResult = type({
12507
12507
  });
12508
12508
  const TokenBalanceListResult = type({
12509
12509
  tokenBalances: array(TokenBalanceResult),
12510
- cursor: nullable(PublicKeyFromString),
12510
+ cursor: nullable(string()),
12511
12511
  });
12512
12512
  const AccountProofResult = type({
12513
12513
  hash: array(number()),
@@ -12530,7 +12530,7 @@ const SignatureListWithCursorResult = type({
12530
12530
  signature: string(),
12531
12531
  slot: number(),
12532
12532
  })),
12533
- cursor: nullable(PublicKeyFromString),
12533
+ cursor: nullable(string()),
12534
12534
  });
12535
12535
  const CompressedTransactionResult = type({
12536
12536
  compressionInfo: type({
@@ -12599,7 +12599,10 @@ async function getCompressedTokenAccountsByOwnerOrDelegate(rpc, ownerOrDelegate,
12599
12599
  });
12600
12600
  });
12601
12601
  /// TODO: consider custom or different sort. Most recent here.
12602
- return accounts.sort((a, b) => b.compressedAccount.leafIndex - a.compressedAccount.leafIndex);
12602
+ return {
12603
+ items: accounts.sort((a, b) => b.compressedAccount.leafIndex - a.compressedAccount.leafIndex),
12604
+ cursor: res.result.value.cursor,
12605
+ };
12603
12606
  }
12604
12607
  /** @internal */
12605
12608
  function buildCompressedAccountWithMaybeTokenData(accountStructWithOptionalTokenData) {
@@ -12889,14 +12892,20 @@ class Rpc extends web3_js.Connection {
12889
12892
  throw new web3_js.SolanaJSONRPCError(res.error, `failed to get info for compressed accounts owned by ${owner.toBase58()}`);
12890
12893
  }
12891
12894
  if (res.result.value === null) {
12892
- return [];
12895
+ return {
12896
+ items: [],
12897
+ cursor: null,
12898
+ };
12893
12899
  }
12894
12900
  const accounts = [];
12895
12901
  res.result.value.items.map(item => {
12896
12902
  const account = createCompressedAccountWithMerkleContext(createMerkleContext(item.tree, mockNullifierQueue, item.hash.toArray('be', 32), item.leafIndex), item.owner, bn(item.lamports), item.data ? parseAccountData(item.data) : undefined, item.address || undefined);
12897
12903
  accounts.push(account);
12898
12904
  });
12899
- return accounts.sort((a, b) => b.leafIndex - a.leafIndex);
12905
+ return {
12906
+ items: accounts.sort((a, b) => b.leafIndex - a.leafIndex),
12907
+ cursor: res.result.value.cursor,
12908
+ };
12900
12909
  }
12901
12910
  /**
12902
12911
  * Fetch all the compressed token accounts owned by the specified public
@@ -12953,7 +12962,10 @@ class Rpc extends web3_js.Connection {
12953
12962
  const maybeFiltered = options.mint
12954
12963
  ? res.result.value.tokenBalances.filter(tokenBalance => tokenBalance.mint.toBase58() === options.mint.toBase58())
12955
12964
  : res.result.value.tokenBalances;
12956
- return maybeFiltered;
12965
+ return {
12966
+ items: maybeFiltered,
12967
+ cursor: res.result.value.cursor,
12968
+ };
12957
12969
  }
12958
12970
  /**
12959
12971
  * Returns confirmed compression signatures for transactions involving the specified
@@ -13033,7 +13045,7 @@ class Rpc extends web3_js.Connection {
13033
13045
  if (res.result.value === null) {
13034
13046
  throw new Error(`failed to get signatures for address ${address.toBase58()}`);
13035
13047
  }
13036
- return res.result.value.items;
13048
+ return res.result.value;
13037
13049
  }
13038
13050
  /**
13039
13051
  * Returns confirmed signatures for compression transactions involving the
@@ -13051,7 +13063,7 @@ class Rpc extends web3_js.Connection {
13051
13063
  if (res.result.value === null) {
13052
13064
  throw new Error(`failed to get signatures for owner ${owner.toBase58()}`);
13053
13065
  }
13054
- return res.result.value.items;
13066
+ return res.result.value;
13055
13067
  }
13056
13068
  /// TODO(photon): needs mint
13057
13069
  /**
@@ -13068,7 +13080,7 @@ class Rpc extends web3_js.Connection {
13068
13080
  if (res.result.value === null) {
13069
13081
  throw new Error(`failed to get signatures for owner ${owner.toBase58()}`);
13070
13082
  }
13071
- return res.result.value.items;
13083
+ return res.result.value;
13072
13084
  }
13073
13085
  /**
13074
13086
  * Fetch the current indexer health status
@@ -18707,16 +18719,22 @@ async function getCompressedTokenAccountsByOwnerTest(rpc, owner, mint) {
18707
18719
  const events = await getParsedEvents(rpc);
18708
18720
  const compressedTokenAccounts = await getCompressedTokenAccounts(events);
18709
18721
  const accounts = compressedTokenAccounts.filter(acc => acc.parsed.owner.equals(owner) && acc.parsed.mint.equals(mint));
18710
- return accounts.sort((a, b) => b.compressedAccount.leafIndex - a.compressedAccount.leafIndex);
18722
+ return {
18723
+ items: accounts.sort((a, b) => b.compressedAccount.leafIndex - a.compressedAccount.leafIndex),
18724
+ cursor: null,
18725
+ };
18711
18726
  }
18712
18727
  async function getCompressedTokenAccountsByDelegateTest(rpc, delegate, mint) {
18713
18728
  const events = await getParsedEvents(rpc);
18714
18729
  const compressedTokenAccounts = await getCompressedTokenAccounts(events);
18715
- return compressedTokenAccounts.filter(acc => {
18716
- var _a;
18717
- return ((_a = acc.parsed.delegate) === null || _a === void 0 ? void 0 : _a.equals(delegate)) &&
18718
- acc.parsed.mint.equals(mint);
18719
- });
18730
+ return {
18731
+ items: compressedTokenAccounts.filter(acc => {
18732
+ var _a;
18733
+ return ((_a = acc.parsed.delegate) === null || _a === void 0 ? void 0 : _a.equals(delegate)) &&
18734
+ acc.parsed.mint.equals(mint);
18735
+ }),
18736
+ cursor: null,
18737
+ };
18720
18738
  }
18721
18739
  async function getCompressedTokenAccountByHashTest(rpc, hash) {
18722
18740
  const events = await getParsedEvents(rpc);
@@ -18823,7 +18841,7 @@ class TestRpc extends web3_js.Connection {
18823
18841
  */
18824
18842
  async getCompressedBalanceByOwner(owner) {
18825
18843
  const accounts = await this.getCompressedAccountsByOwner(owner);
18826
- return accounts.reduce((acc, account) => acc.add(account.lamports), bn(0));
18844
+ return accounts.items.reduce((acc, account) => acc.add(account.lamports), bn(0));
18827
18845
  }
18828
18846
  /**
18829
18847
  * Fetch the latest merkle proof for the specified account hash from the
@@ -18898,7 +18916,10 @@ class TestRpc extends web3_js.Connection {
18898
18916
  */
18899
18917
  async getCompressedAccountsByOwner(owner) {
18900
18918
  const accounts = await getCompressedAccountsByOwnerTest(this, owner);
18901
- return accounts;
18919
+ return {
18920
+ items: accounts,
18921
+ cursor: null,
18922
+ };
18902
18923
  }
18903
18924
  /**
18904
18925
  * Fetch the latest compression signatures on the cluster. Results are
@@ -18940,10 +18961,13 @@ class TestRpc extends web3_js.Connection {
18940
18961
  */
18941
18962
  async getCompressedTokenBalancesByOwner(publicKey, options) {
18942
18963
  const accounts = await getCompressedTokenAccountsByOwnerTest(this, publicKey, options.mint);
18943
- return accounts.map(account => ({
18944
- balance: bn(account.parsed.amount),
18945
- mint: account.parsed.mint,
18946
- }));
18964
+ return {
18965
+ items: accounts.items.map(account => ({
18966
+ balance: bn(account.parsed.amount),
18967
+ mint: account.parsed.mint,
18968
+ })),
18969
+ cursor: null,
18970
+ };
18947
18971
  }
18948
18972
  /**
18949
18973
  * Returns confirmed signatures for transactions involving the specified