@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.
@@ -7508,7 +7508,7 @@ async function createAccount(rpc, payer, seed, programId, addressTree, addressQu
7508
7508
  async function createAccountWithLamports(rpc, payer, seed, lamports, programId, addressTree, addressQueue, outputStateTree, confirmOptions) {
7509
7509
  lamports = bn(lamports);
7510
7510
  const compressedAccounts = await rpc.getCompressedAccountsByOwner(payer.publicKey);
7511
- const [inputAccounts] = selectMinCompressedSolAccountsForTransfer(compressedAccounts, lamports);
7511
+ const [inputAccounts] = selectMinCompressedSolAccountsForTransfer(compressedAccounts.items, lamports);
7512
7512
  const { blockhash } = await rpc.getLatestBlockhash();
7513
7513
  addressTree = addressTree ?? defaultTestStateTreeAccounts().addressTree;
7514
7514
  addressQueue = addressQueue ?? defaultTestStateTreeAccounts().addressQueue;
@@ -7555,7 +7555,7 @@ async function createAccountWithLamports(rpc, payer, seed, lamports, programId,
7555
7555
  /// TODO: add support for payer != owner
7556
7556
  async function decompress(rpc, payer, lamports, recipient, outputStateTree, confirmOptions) {
7557
7557
  /// TODO: use dynamic state tree and nullifier queue
7558
- const userCompressedAccountsWithMerkleContext = await rpc.getCompressedAccountsByOwner(payer.publicKey);
7558
+ const userCompressedAccountsWithMerkleContext = (await rpc.getCompressedAccountsByOwner(payer.publicKey)).items;
7559
7559
  lamports = bn(lamports);
7560
7560
  const inputLamports = sumUpLamports(userCompressedAccountsWithMerkleContext);
7561
7561
  if (lamports.gt(inputLamports)) {
@@ -7605,7 +7605,7 @@ async function transfer(rpc, payer, lamports, owner, toAddress,
7605
7605
  merkleTree, confirmOptions) {
7606
7606
  lamports = bn(lamports);
7607
7607
  const compressedAccounts = await rpc.getCompressedAccountsByOwner(owner.publicKey);
7608
- const [inputAccounts] = selectMinCompressedSolAccountsForTransfer(compressedAccounts, lamports);
7608
+ const [inputAccounts] = selectMinCompressedSolAccountsForTransfer(compressedAccounts.items, lamports);
7609
7609
  const proof = await rpc.getValidityProof(inputAccounts.map(account => bn(account.hash)));
7610
7610
  const ix = await LightSystemProgram.transfer({
7611
7611
  payer: payer.publicKey,
@@ -12446,14 +12446,14 @@ const MultipleCompressedAccountsResult = type({
12446
12446
  */
12447
12447
  const CompressedAccountsByOwnerResult = type({
12448
12448
  items: array(CompressedAccountResult),
12449
- cursor: nullable(PublicKeyFromString),
12449
+ cursor: nullable(string()),
12450
12450
  });
12451
12451
  /**
12452
12452
  * @internal
12453
12453
  */
12454
12454
  const CompressedTokenAccountsByOwnerOrDelegateResult = type({
12455
12455
  items: array(CompressedTokenAccountResult),
12456
- cursor: nullable(PublicKeyFromString),
12456
+ cursor: nullable(string()),
12457
12457
  });
12458
12458
  /**
12459
12459
  * @internal
@@ -12548,7 +12548,7 @@ const TokenBalanceResult = type({
12548
12548
  });
12549
12549
  const TokenBalanceListResult = type({
12550
12550
  tokenBalances: array(TokenBalanceResult),
12551
- cursor: nullable(PublicKeyFromString),
12551
+ cursor: nullable(string()),
12552
12552
  });
12553
12553
  const AccountProofResult = type({
12554
12554
  hash: array(number()),
@@ -12571,7 +12571,7 @@ const SignatureListWithCursorResult = type({
12571
12571
  signature: string(),
12572
12572
  slot: number(),
12573
12573
  })),
12574
- cursor: nullable(PublicKeyFromString),
12574
+ cursor: nullable(string()),
12575
12575
  });
12576
12576
  const CompressedTransactionResult = type({
12577
12577
  compressionInfo: type({
@@ -12638,7 +12638,10 @@ async function getCompressedTokenAccountsByOwnerOrDelegate(rpc, ownerOrDelegate,
12638
12638
  });
12639
12639
  });
12640
12640
  /// TODO: consider custom or different sort. Most recent here.
12641
- return accounts.sort((a, b) => b.compressedAccount.leafIndex - a.compressedAccount.leafIndex);
12641
+ return {
12642
+ items: accounts.sort((a, b) => b.compressedAccount.leafIndex - a.compressedAccount.leafIndex),
12643
+ cursor: res.result.value.cursor,
12644
+ };
12642
12645
  }
12643
12646
  /** @internal */
12644
12647
  function buildCompressedAccountWithMaybeTokenData(accountStructWithOptionalTokenData) {
@@ -12930,14 +12933,20 @@ class Rpc extends Connection {
12930
12933
  throw new SolanaJSONRPCError(res.error, `failed to get info for compressed accounts owned by ${owner.toBase58()}`);
12931
12934
  }
12932
12935
  if (res.result.value === null) {
12933
- return [];
12936
+ return {
12937
+ items: [],
12938
+ cursor: null,
12939
+ };
12934
12940
  }
12935
12941
  const accounts = [];
12936
12942
  res.result.value.items.map(item => {
12937
12943
  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);
12938
12944
  accounts.push(account);
12939
12945
  });
12940
- return accounts.sort((a, b) => b.leafIndex - a.leafIndex);
12946
+ return {
12947
+ items: accounts.sort((a, b) => b.leafIndex - a.leafIndex),
12948
+ cursor: res.result.value.cursor,
12949
+ };
12941
12950
  }
12942
12951
  /**
12943
12952
  * Fetch all the compressed token accounts owned by the specified public
@@ -12993,7 +13002,10 @@ class Rpc extends Connection {
12993
13002
  const maybeFiltered = options.mint
12994
13003
  ? res.result.value.tokenBalances.filter(tokenBalance => tokenBalance.mint.toBase58() === options.mint.toBase58())
12995
13004
  : res.result.value.tokenBalances;
12996
- return maybeFiltered;
13005
+ return {
13006
+ items: maybeFiltered,
13007
+ cursor: res.result.value.cursor,
13008
+ };
12997
13009
  }
12998
13010
  /**
12999
13011
  * Returns confirmed compression signatures for transactions involving the specified
@@ -13073,7 +13085,7 @@ class Rpc extends Connection {
13073
13085
  if (res.result.value === null) {
13074
13086
  throw new Error(`failed to get signatures for address ${address.toBase58()}`);
13075
13087
  }
13076
- return res.result.value.items;
13088
+ return res.result.value;
13077
13089
  }
13078
13090
  /**
13079
13091
  * Returns confirmed signatures for compression transactions involving the
@@ -13091,7 +13103,7 @@ class Rpc extends Connection {
13091
13103
  if (res.result.value === null) {
13092
13104
  throw new Error(`failed to get signatures for owner ${owner.toBase58()}`);
13093
13105
  }
13094
- return res.result.value.items;
13106
+ return res.result.value;
13095
13107
  }
13096
13108
  /// TODO(photon): needs mint
13097
13109
  /**
@@ -13108,7 +13120,7 @@ class Rpc extends Connection {
13108
13120
  if (res.result.value === null) {
13109
13121
  throw new Error(`failed to get signatures for owner ${owner.toBase58()}`);
13110
13122
  }
13111
- return res.result.value.items;
13123
+ return res.result.value;
13112
13124
  }
13113
13125
  /**
13114
13126
  * Fetch the current indexer health status
@@ -18768,13 +18780,19 @@ async function getCompressedTokenAccountsByOwnerTest(rpc, owner, mint) {
18768
18780
  const events = await getParsedEvents(rpc);
18769
18781
  const compressedTokenAccounts = await getCompressedTokenAccounts(events);
18770
18782
  const accounts = compressedTokenAccounts.filter(acc => acc.parsed.owner.equals(owner) && acc.parsed.mint.equals(mint));
18771
- return accounts.sort((a, b) => b.compressedAccount.leafIndex - a.compressedAccount.leafIndex);
18783
+ return {
18784
+ items: accounts.sort((a, b) => b.compressedAccount.leafIndex - a.compressedAccount.leafIndex),
18785
+ cursor: null,
18786
+ };
18772
18787
  }
18773
18788
  async function getCompressedTokenAccountsByDelegateTest(rpc, delegate, mint) {
18774
18789
  const events = await getParsedEvents(rpc);
18775
18790
  const compressedTokenAccounts = await getCompressedTokenAccounts(events);
18776
- return compressedTokenAccounts.filter(acc => acc.parsed.delegate?.equals(delegate) &&
18777
- acc.parsed.mint.equals(mint));
18791
+ return {
18792
+ items: compressedTokenAccounts.filter(acc => acc.parsed.delegate?.equals(delegate) &&
18793
+ acc.parsed.mint.equals(mint)),
18794
+ cursor: null,
18795
+ };
18778
18796
  }
18779
18797
  async function getCompressedTokenAccountByHashTest(rpc, hash) {
18780
18798
  const events = await getParsedEvents(rpc);
@@ -18889,7 +18907,7 @@ class TestRpc extends Connection {
18889
18907
  */
18890
18908
  async getCompressedBalanceByOwner(owner) {
18891
18909
  const accounts = await this.getCompressedAccountsByOwner(owner);
18892
- return accounts.reduce((acc, account) => acc.add(account.lamports), bn(0));
18910
+ return accounts.items.reduce((acc, account) => acc.add(account.lamports), bn(0));
18893
18911
  }
18894
18912
  /**
18895
18913
  * Fetch the latest merkle proof for the specified account hash from the
@@ -18964,7 +18982,10 @@ class TestRpc extends Connection {
18964
18982
  */
18965
18983
  async getCompressedAccountsByOwner(owner) {
18966
18984
  const accounts = await getCompressedAccountsByOwnerTest(this, owner);
18967
- return accounts;
18985
+ return {
18986
+ items: accounts,
18987
+ cursor: null,
18988
+ };
18968
18989
  }
18969
18990
  /**
18970
18991
  * Fetch the latest compression signatures on the cluster. Results are
@@ -19006,10 +19027,13 @@ class TestRpc extends Connection {
19006
19027
  */
19007
19028
  async getCompressedTokenBalancesByOwner(publicKey, options) {
19008
19029
  const accounts = await getCompressedTokenAccountsByOwnerTest(this, publicKey, options.mint);
19009
- return accounts.map(account => ({
19010
- balance: bn(account.parsed.amount),
19011
- mint: account.parsed.mint,
19012
- }));
19030
+ return {
19031
+ items: accounts.items.map(account => ({
19032
+ balance: bn(account.parsed.amount),
19033
+ mint: account.parsed.mint,
19034
+ })),
19035
+ cursor: null,
19036
+ };
19013
19037
  }
19014
19038
  /**
19015
19039
  * Returns confirmed signatures for transactions involving the specified