@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.
- package/dist/cjs/browser/index.cjs +50 -26
- package/dist/cjs/browser/index.cjs.map +1 -1
- package/dist/cjs/node/index.cjs +50 -26
- package/dist/cjs/node/index.cjs.map +1 -1
- package/dist/es/browser/index.js +47 -23
- package/dist/es/browser/index.js.map +1 -1
- package/dist/types/index.d.ts +39 -33
- package/package.json +3 -3
package/dist/cjs/node/index.cjs
CHANGED
|
@@ -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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
15583
|
-
|
|
15584
|
-
|
|
15585
|
-
acc.parsed.
|
|
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
|
|
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
|
|
15811
|
-
|
|
15812
|
-
|
|
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
|