@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.
@@ -5443,7 +5443,7 @@ async function createAccount(rpc, payer, seed, programId, addressTree, addressQu
5443
5443
  async function createAccountWithLamports(rpc, payer, seed, lamports, programId, addressTree, addressQueue, outputStateTree, confirmOptions) {
5444
5444
  lamports = bn(lamports);
5445
5445
  const compressedAccounts = await rpc.getCompressedAccountsByOwner(payer.publicKey);
5446
- const [inputAccounts] = selectMinCompressedSolAccountsForTransfer(compressedAccounts, lamports);
5446
+ const [inputAccounts] = selectMinCompressedSolAccountsForTransfer(compressedAccounts.items, lamports);
5447
5447
  const { blockhash } = await rpc.getLatestBlockhash();
5448
5448
  addressTree = addressTree !== null && addressTree !== void 0 ? addressTree : defaultTestStateTreeAccounts().addressTree;
5449
5449
  addressQueue = addressQueue !== null && addressQueue !== void 0 ? addressQueue : defaultTestStateTreeAccounts().addressQueue;
@@ -5490,7 +5490,7 @@ async function createAccountWithLamports(rpc, payer, seed, lamports, programId,
5490
5490
  /// TODO: add support for payer != owner
5491
5491
  async function decompress(rpc, payer, lamports, recipient, outputStateTree, confirmOptions) {
5492
5492
  /// TODO: use dynamic state tree and nullifier queue
5493
- const userCompressedAccountsWithMerkleContext = await rpc.getCompressedAccountsByOwner(payer.publicKey);
5493
+ const userCompressedAccountsWithMerkleContext = (await rpc.getCompressedAccountsByOwner(payer.publicKey)).items;
5494
5494
  lamports = bn(lamports);
5495
5495
  const inputLamports = sumUpLamports(userCompressedAccountsWithMerkleContext);
5496
5496
  if (lamports.gt(inputLamports)) {
@@ -5540,7 +5540,7 @@ async function transfer(rpc, payer, lamports, owner, toAddress,
5540
5540
  merkleTree, confirmOptions) {
5541
5541
  lamports = bn(lamports);
5542
5542
  const compressedAccounts = await rpc.getCompressedAccountsByOwner(owner.publicKey);
5543
- const [inputAccounts] = selectMinCompressedSolAccountsForTransfer(compressedAccounts, lamports);
5543
+ const [inputAccounts] = selectMinCompressedSolAccountsForTransfer(compressedAccounts.items, lamports);
5544
5544
  const proof = await rpc.getValidityProof(inputAccounts.map(account => bn(account.hash)));
5545
5545
  const ix = await LightSystemProgram.transfer({
5546
5546
  payer: payer.publicKey,
@@ -10375,14 +10375,14 @@ const MultipleCompressedAccountsResult = type({
10375
10375
  */
10376
10376
  const CompressedAccountsByOwnerResult = type({
10377
10377
  items: array(CompressedAccountResult),
10378
- cursor: nullable(PublicKeyFromString),
10378
+ cursor: nullable(string()),
10379
10379
  });
10380
10380
  /**
10381
10381
  * @internal
10382
10382
  */
10383
10383
  const CompressedTokenAccountsByOwnerOrDelegateResult = type({
10384
10384
  items: array(CompressedTokenAccountResult),
10385
- cursor: nullable(PublicKeyFromString),
10385
+ cursor: nullable(string()),
10386
10386
  });
10387
10387
  /**
10388
10388
  * @internal
@@ -10477,7 +10477,7 @@ const TokenBalanceResult = type({
10477
10477
  });
10478
10478
  const TokenBalanceListResult = type({
10479
10479
  tokenBalances: array(TokenBalanceResult),
10480
- cursor: nullable(PublicKeyFromString),
10480
+ cursor: nullable(string()),
10481
10481
  });
10482
10482
  const AccountProofResult = type({
10483
10483
  hash: array(number()),
@@ -10500,7 +10500,7 @@ const SignatureListWithCursorResult = type({
10500
10500
  signature: string(),
10501
10501
  slot: number(),
10502
10502
  })),
10503
- cursor: nullable(PublicKeyFromString),
10503
+ cursor: nullable(string()),
10504
10504
  });
10505
10505
  const CompressedTransactionResult = type({
10506
10506
  compressionInfo: type({
@@ -10569,7 +10569,10 @@ async function getCompressedTokenAccountsByOwnerOrDelegate(rpc, ownerOrDelegate,
10569
10569
  });
10570
10570
  });
10571
10571
  /// TODO: consider custom or different sort. Most recent here.
10572
- return accounts.sort((a, b) => b.compressedAccount.leafIndex - a.compressedAccount.leafIndex);
10572
+ return {
10573
+ items: accounts.sort((a, b) => b.compressedAccount.leafIndex - a.compressedAccount.leafIndex),
10574
+ cursor: res.result.value.cursor,
10575
+ };
10573
10576
  }
10574
10577
  /** @internal */
10575
10578
  function buildCompressedAccountWithMaybeTokenData(accountStructWithOptionalTokenData) {
@@ -10859,14 +10862,20 @@ class Rpc extends web3_js.Connection {
10859
10862
  throw new web3_js.SolanaJSONRPCError(res.error, `failed to get info for compressed accounts owned by ${owner.toBase58()}`);
10860
10863
  }
10861
10864
  if (res.result.value === null) {
10862
- return [];
10865
+ return {
10866
+ items: [],
10867
+ cursor: null,
10868
+ };
10863
10869
  }
10864
10870
  const accounts = [];
10865
10871
  res.result.value.items.map(item => {
10866
10872
  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);
10867
10873
  accounts.push(account);
10868
10874
  });
10869
- return accounts.sort((a, b) => b.leafIndex - a.leafIndex);
10875
+ return {
10876
+ items: accounts.sort((a, b) => b.leafIndex - a.leafIndex),
10877
+ cursor: res.result.value.cursor,
10878
+ };
10870
10879
  }
10871
10880
  /**
10872
10881
  * Fetch all the compressed token accounts owned by the specified public
@@ -10923,7 +10932,10 @@ class Rpc extends web3_js.Connection {
10923
10932
  const maybeFiltered = options.mint
10924
10933
  ? res.result.value.tokenBalances.filter(tokenBalance => tokenBalance.mint.toBase58() === options.mint.toBase58())
10925
10934
  : res.result.value.tokenBalances;
10926
- return maybeFiltered;
10935
+ return {
10936
+ items: maybeFiltered,
10937
+ cursor: res.result.value.cursor,
10938
+ };
10927
10939
  }
10928
10940
  /**
10929
10941
  * Returns confirmed compression signatures for transactions involving the specified
@@ -11003,7 +11015,7 @@ class Rpc extends web3_js.Connection {
11003
11015
  if (res.result.value === null) {
11004
11016
  throw new Error(`failed to get signatures for address ${address.toBase58()}`);
11005
11017
  }
11006
- return res.result.value.items;
11018
+ return res.result.value;
11007
11019
  }
11008
11020
  /**
11009
11021
  * Returns confirmed signatures for compression transactions involving the
@@ -11021,7 +11033,7 @@ class Rpc extends web3_js.Connection {
11021
11033
  if (res.result.value === null) {
11022
11034
  throw new Error(`failed to get signatures for owner ${owner.toBase58()}`);
11023
11035
  }
11024
- return res.result.value.items;
11036
+ return res.result.value;
11025
11037
  }
11026
11038
  /// TODO(photon): needs mint
11027
11039
  /**
@@ -11038,7 +11050,7 @@ class Rpc extends web3_js.Connection {
11038
11050
  if (res.result.value === null) {
11039
11051
  throw new Error(`failed to get signatures for owner ${owner.toBase58()}`);
11040
11052
  }
11041
- return res.result.value.items;
11053
+ return res.result.value;
11042
11054
  }
11043
11055
  /**
11044
11056
  * Fetch the current indexer health status
@@ -15574,16 +15586,22 @@ async function getCompressedTokenAccountsByOwnerTest(rpc, owner, mint) {
15574
15586
  const events = await getParsedEvents(rpc);
15575
15587
  const compressedTokenAccounts = await getCompressedTokenAccounts(events);
15576
15588
  const accounts = compressedTokenAccounts.filter(acc => acc.parsed.owner.equals(owner) && acc.parsed.mint.equals(mint));
15577
- return accounts.sort((a, b) => b.compressedAccount.leafIndex - a.compressedAccount.leafIndex);
15589
+ return {
15590
+ items: accounts.sort((a, b) => b.compressedAccount.leafIndex - a.compressedAccount.leafIndex),
15591
+ cursor: null,
15592
+ };
15578
15593
  }
15579
15594
  async function getCompressedTokenAccountsByDelegateTest(rpc, delegate, mint) {
15580
15595
  const events = await getParsedEvents(rpc);
15581
15596
  const compressedTokenAccounts = await getCompressedTokenAccounts(events);
15582
- return compressedTokenAccounts.filter(acc => {
15583
- var _a;
15584
- return ((_a = acc.parsed.delegate) === null || _a === void 0 ? void 0 : _a.equals(delegate)) &&
15585
- acc.parsed.mint.equals(mint);
15586
- });
15597
+ return {
15598
+ items: compressedTokenAccounts.filter(acc => {
15599
+ var _a;
15600
+ return ((_a = acc.parsed.delegate) === null || _a === void 0 ? void 0 : _a.equals(delegate)) &&
15601
+ acc.parsed.mint.equals(mint);
15602
+ }),
15603
+ cursor: null,
15604
+ };
15587
15605
  }
15588
15606
  async function getCompressedTokenAccountByHashTest(rpc, hash) {
15589
15607
  const events = await getParsedEvents(rpc);
@@ -15690,7 +15708,7 @@ class TestRpc extends web3_js.Connection {
15690
15708
  */
15691
15709
  async getCompressedBalanceByOwner(owner) {
15692
15710
  const accounts = await this.getCompressedAccountsByOwner(owner);
15693
- return accounts.reduce((acc, account) => acc.add(account.lamports), bn(0));
15711
+ return accounts.items.reduce((acc, account) => acc.add(account.lamports), bn(0));
15694
15712
  }
15695
15713
  /**
15696
15714
  * Fetch the latest merkle proof for the specified account hash from the
@@ -15765,7 +15783,10 @@ class TestRpc extends web3_js.Connection {
15765
15783
  */
15766
15784
  async getCompressedAccountsByOwner(owner) {
15767
15785
  const accounts = await getCompressedAccountsByOwnerTest(this, owner);
15768
- return accounts;
15786
+ return {
15787
+ items: accounts,
15788
+ cursor: null,
15789
+ };
15769
15790
  }
15770
15791
  /**
15771
15792
  * Fetch the latest compression signatures on the cluster. Results are
@@ -15807,10 +15828,13 @@ class TestRpc extends web3_js.Connection {
15807
15828
  */
15808
15829
  async getCompressedTokenBalancesByOwner(publicKey, options) {
15809
15830
  const accounts = await getCompressedTokenAccountsByOwnerTest(this, publicKey, options.mint);
15810
- return accounts.map(account => ({
15811
- balance: bn(account.parsed.amount),
15812
- mint: account.parsed.mint,
15813
- }));
15831
+ return {
15832
+ items: accounts.items.map(account => ({
15833
+ balance: bn(account.parsed.amount),
15834
+ mint: account.parsed.mint,
15835
+ })),
15836
+ cursor: null,
15837
+ };
15814
15838
  }
15815
15839
  /**
15816
15840
  * Returns confirmed signatures for transactions involving the specified