@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
|
@@ -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(
|
|
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(
|
|
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(
|
|
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(
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
18716
|
-
|
|
18717
|
-
|
|
18718
|
-
acc.parsed.
|
|
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
|
|
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
|
|
18944
|
-
|
|
18945
|
-
|
|
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
|