@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/es/browser/index.js
CHANGED
|
@@ -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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
18777
|
-
acc.parsed.
|
|
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
|
|
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
|
|
19010
|
-
|
|
19011
|
-
|
|
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
|