Skip to content

Commit 6a1bdf0

Browse files
patch to compile
wip add borsh_compat compressed_proof add new_address_owner to instructiondata trait add derive_compressed_address remaining new_address_owner impl add csdk-anchor-test program lint add address_owner trait impl add sdk libs - wip add transfer_interface, transfer_ctoken, transfer_spl_to_ctoken, transfer_ctoken_to_spl, signed, instructions rename consistently transfer_x rename file transfer_decompressed to transfer_ctoken add todos add create_ctoken_account_signed, rename create_compressible_token_account to create_compressible_token_account_instruction add create_associated_ctoken_account add inline comment to copyLocalProgramBinaries.sh remove new_address_owner add pack and unpack for tokendata first pass, compressible helpers for light-sdk wip compiles lint compressAccountsIdempotent csdk works, adjust test asserts to account is_none ctoken add signer flags for decompress_full_ctoken_accounts_with_indices wip stash: removing ctoken from compression all tests working add auto-comp, clean up tests rm dependency on patch fmt lint lint refactor rm wip clean fmt clean clean clean rm macro clean clean dedupe derivation methods clean fmt revert copyLocalProgramBinaries.sh diff add csdk_anchor_test binary to ci fix indexer fix doctest fix cli ci build target fix cli build clean address nits fix cli cache fix cache clean fix csdk anchor test program build add pkg.json csdk rebuild fix syntax fix nx rm panics fix ci fix build sdk-anchor-test try fix bmt keccak spawn_prover fix fix lint fix clock sysvar add test feature to account-compression revert profiler refactor csdk-anchor-test program lib.rs split tests fmt revert cli script reset close_for_compress_and_close to main fmt try revert build account-compression with test flag fmt fix workflow to ensure we build account-compression with test feature fix sdk test nav try sdk-tests.yml with hyphen rm idl build csdk anchor test artifact wip reuse ctoken_types move ctoken to light-compressed-token-sdk clean move pack to compressed-token-sdk clean clean clean clean clean clean wip - add macro lint clean clean fmt clean, rename to sdk-compressible-test cargo lock default auto compress false wip patch to compile wip add borsh_compat compressed_proof add new_address_owner to instructiondata trait add derive_compressed_address remaining new_address_owner impl add csdk-anchor-test program lint add address_owner trait impl add sdk libs - wip add transfer_interface, transfer_ctoken, transfer_spl_to_ctoken, transfer_ctoken_to_spl, signed, instructions rename consistently transfer_x rename file transfer_decompressed to transfer_ctoken add todos add create_ctoken_account_signed, rename create_compressible_token_account to create_compressible_token_account_instruction add create_associated_ctoken_account add inline comment to copyLocalProgramBinaries.sh remove new_address_owner add pack and unpack for tokendata first pass, compressible helpers for light-sdk wip compiles lint compressAccountsIdempotent csdk works, adjust test asserts to account is_none ctoken add signer flags for decompress_full_ctoken_accounts_with_indices wip stash: removing ctoken from compression all tests working add auto-comp, clean up tests rm dependency on patch fmt lint lint refactor rm wip clean fmt clean clean clean rm macro clean clean dedupe derivation methods clean fmt revert copyLocalProgramBinaries.sh diff add csdk_anchor_test binary to ci fix indexer fix doctest fix cli ci build target fix cli build clean address nits fix cli cache fix cache clean fix csdk anchor test program build add pkg.json csdk rebuild fix syntax fix nx rm panics fix ci fix build sdk-anchor-test try fix bmt keccak spawn_prover fix fix lint fix clock sysvar add test feature to account-compression revert profiler refactor csdk-anchor-test program lib.rs split tests fmt revert cli script reset close_for_compress_and_close to main fmt try revert build account-compression with test flag fmt fix workflow to ensure we build account-compression with test feature fix sdk test nav try sdk-tests.yml with hyphen rm idl build csdk anchor test artifact wip reuse ctoken_types move ctoken to light-compressed-token-sdk clean move pack to compressed-token-sdk clean clean clean clean clean clean wip - add macro push macros refactor compressible_instructions macro split into compressible_instructions_decompress modularized decompressaccountsidempotent add decompresscontext derive macro clean macros done compress runtime and clean fmt use small derive macros wip csdk anchor derived test using derive macros lint wip clean rm dead code clean lint fmt clean fmt dry clean lint clean rent cpi wip fmt and lint clean avoid reallocs in decompress_accounts_idempotent ixn builder remove rent sponsor and compression authority optional ctoken keys for decompress_accounts_idempotent wip auto compress pda auto compress test derive_rent_sponsor macro add disable cold state mining flag wip add complex seed test wip clean clean ignore doctest wip revert to devnenv for lightprogramtest until we can remove it clean wip address comments fixes apply suggestion in decompress_runtime.rs lint wip fix lint fix macros lint fix macro lint add standard derive_rent_sponsor helper remove unused ctoken-types dep from sdk patch rm unwrap from nested field access address final comments move decompress_runtime.rs rm derive_light_cpi_signer impl additional suggestions fix forester deps add c-token/compressible TS rename to grpc-url make grpc url opt fix tests, mint bump photon all js tests working, update ci clean up getAccountInfoInterface add v2 bound for getAccountInfoInterface wip wip add mintinstructiondata type, add serde tests. use borsh serde with overrides replace with borsh clean clean clean remove uploaders, add schema converters add unit tests for metadata json conv include unit tests in js ci cov wip fix token delegate coption parser clean fmt and lint fix v2 stateless.js ci try fix forester test with wait_for_queue_space revert stateless js skip createAccount if v2 update photon commit to parse-token + rebased to sergey/get_queue_elements_v2_rpc add load, decompress2, transferInterface, and various other helpers ts wip fmt lint, skipIf v2 for create-account js tests bump photon commit bump photon skip in rpc-multi-trees rm logs renamings fix buffer-layout and bosh upd Ata -> ATA
1 parent 82470c4 commit 6a1bdf0

100 files changed

Lines changed: 16272 additions & 571 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/js-v2.yml

Lines changed: 19 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -79,9 +79,9 @@ jobs:
7979
done
8080
echo "Tests passed on attempt $attempt"
8181
82-
- name: Run compressed-token tests with V2
82+
- name: Run compressed-token legacy tests with V2
8383
run: |
84-
echo "Running compressed-token tests with retry logic (max 2 attempts)..."
84+
echo "Running compressed-token legacy tests with retry logic (max 2 attempts)..."
8585
attempt=1
8686
max_attempts=2
8787
until npx nx test @lightprotocol/compressed-token; do
@@ -95,6 +95,23 @@ jobs:
9595
done
9696
echo "Tests passed on attempt $attempt"
9797
98+
- name: Run compressed-token ctoken tests with V2
99+
run: |
100+
echo "Running compressed-token ctoken tests with retry logic (max 2 attempts)..."
101+
attempt=1
102+
max_attempts=2
103+
cd js/compressed-token
104+
until LIGHT_PROTOCOL_VERSION=V2 pnpm test:e2e:ctoken:all; do
105+
attempt=$((attempt + 1))
106+
if [ $attempt -gt $max_attempts ]; then
107+
echo "Tests failed after $max_attempts attempts"
108+
exit 1
109+
fi
110+
echo "Attempt $attempt/$max_attempts failed, retrying..."
111+
sleep 5
112+
done
113+
echo "Tests passed on attempt $attempt"
114+
98115
- name: Run sdk-anchor-test TypeScript tests with V2
99116
run: |
100117
npx nx build @lightprotocol/sdk-anchor-test

cli/src/commands/create-mint/index.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,7 @@ class CreateMintCommand extends Command {
4949
rpc(),
5050
payer,
5151
mintAuthority,
52+
null,
5253
mintDecimals,
5354
mintKeypair,
5455
);

cli/src/utils/constants.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,12 +19,12 @@ export const SOLANA_VALIDATOR_PROCESS_NAME = "solana-test-validator";
1919
export const LIGHT_PROVER_PROCESS_NAME = "light-prover";
2020
export const INDEXER_PROCESS_NAME = "photon";
2121

22-
export const PHOTON_VERSION = "0.51.0";
22+
export const PHOTON_VERSION = "0.51.1";
2323

2424
// Set these to override Photon requirements with a specific git commit:
2525
export const USE_PHOTON_FROM_GIT = true; // If true, will show git install command instead of crates.io.
2626
export const PHOTON_GIT_REPO = "https://github.com/lightprotocol/photon.git";
27-
export const PHOTON_GIT_COMMIT = "1a785036de52896b68d06413e3b0231122d6aa4a"; // If empty, will use main branch.
27+
export const PHOTON_GIT_COMMIT = "df1087d55a8ff237ff69495a48542461a972f4fe"; // If empty, will use main branch.
2828

2929
export const LIGHT_PROTOCOL_PROGRAMS_DIR_ENV = "LIGHT_PROTOCOL_PROGRAMS_DIR";
3030
export const BASE_PATH = "../../bin/";

cli/src/utils/processPhotonIndexer.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,7 @@ export async function startIndexer(
6161
if (photonDatabaseUrl) {
6262
args.push("--db-url", photonDatabaseUrl);
6363
}
64+
6465
spawnBinary(INDEXER_PROCESS_NAME, args);
6566
await waitForServers([{ port: indexerPort, path: "/getIndexerHealth" }]);
6667
console.log("Indexer started successfully!");

cli/test/helpers/helpers.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,7 @@ export async function createTestMint(mintKeypair: Keypair) {
3838
rpc,
3939
await getPayer(),
4040
(await getPayer()).publicKey,
41+
null,
4142
9,
4243
mintKeypair,
4344
);
Lines changed: 241 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,241 @@
1+
# SPL Token to CToken Payment Migration
2+
3+
Mirrors SPL Token's API. Same pattern, same flow.
4+
5+
## TL;DR
6+
7+
```typescript
8+
// SPL Token
9+
import { transfer, getOrCreateAssociatedTokenAccount } from '@solana/spl-token';
10+
11+
// CToken
12+
import {
13+
transferInterface,
14+
getOrCreateAtaInterface,
15+
} from '@lightprotocol/compressed-token';
16+
```
17+
18+
## Action Level
19+
20+
### SPL Token
21+
22+
```typescript
23+
const recipientAta = await getOrCreateAssociatedTokenAccount(
24+
connection,
25+
payer,
26+
mint,
27+
recipient,
28+
);
29+
await transfer(
30+
connection,
31+
payer,
32+
sourceAta,
33+
recipientAta.address,
34+
owner,
35+
amount,
36+
);
37+
```
38+
39+
### CToken
40+
41+
```typescript
42+
const recipientAta = await getOrCreateAtaInterface(rpc, payer, mint, recipient);
43+
await transferInterface(
44+
rpc,
45+
payer,
46+
sourceAta,
47+
recipientAta.address,
48+
owner,
49+
mint,
50+
amount,
51+
);
52+
```
53+
54+
Same two-step pattern. `transferInterface` auto-loads sender's unified balance (cold + SPL + T22).
55+
56+
---
57+
58+
## Instruction Level
59+
60+
### SPL Token
61+
62+
```typescript
63+
import {
64+
createAssociatedTokenAccountIdempotentInstruction,
65+
createTransferInstruction,
66+
getAssociatedTokenAddressSync,
67+
} from '@solana/spl-token';
68+
69+
const sourceAta = getAssociatedTokenAddressSync(mint, sender);
70+
const recipientAta = getAssociatedTokenAddressSync(mint, recipient);
71+
72+
const tx = new Transaction().add(
73+
createAssociatedTokenAccountIdempotentInstruction(
74+
payer,
75+
recipientAta,
76+
recipient,
77+
mint,
78+
),
79+
createTransferInstruction(sourceAta, recipientAta, sender, amount),
80+
);
81+
```
82+
83+
### CToken (sender already hot)
84+
85+
```typescript
86+
import {
87+
getAtaAddressInterface,
88+
createAtaInterfaceIdempotentInstruction,
89+
createTransferInterfaceInstruction,
90+
CTOKEN_PROGRAM_ID,
91+
} from '@lightprotocol/compressed-token';
92+
93+
const sourceAta = getAtaAddressInterface(mint, sender);
94+
const recipientAta = getAtaAddressInterface(mint, recipient);
95+
96+
const tx = new Transaction().add(
97+
createAtaInterfaceIdempotentInstruction(
98+
payer,
99+
recipientAta,
100+
recipient,
101+
mint,
102+
CTOKEN_PROGRAM_ID,
103+
),
104+
createTransferInterfaceInstruction(sourceAta, recipientAta, sender, amount),
105+
);
106+
```
107+
108+
### CToken (sender may be cold - needs loading)
109+
110+
```typescript
111+
import {
112+
createLoadAtaInstructions,
113+
getAtaAddressInterface,
114+
createAtaInterfaceIdempotentInstruction,
115+
createTransferInterfaceInstruction,
116+
CTOKEN_PROGRAM_ID,
117+
} from '@lightprotocol/compressed-token';
118+
119+
// 1. Derive addresses
120+
const sourceAta = getAtaAddressInterface(mint, sender);
121+
const recipientAta = getAtaAddressInterface(mint, recipient);
122+
123+
// 2. Build load instructions (empty if already hot)
124+
const loadIxs = await createLoadAtaInstructions(
125+
rpc,
126+
payer,
127+
sourceAta,
128+
sender,
129+
mint,
130+
);
131+
132+
// 3. Build transaction
133+
const tx = new Transaction().add(
134+
...loadIxs, // Load sender if cold (wrap SPL/T22, decompress)
135+
createAtaInterfaceIdempotentInstruction(
136+
payer,
137+
recipientAta,
138+
recipient,
139+
mint,
140+
CTOKEN_PROGRAM_ID,
141+
),
142+
createTransferInterfaceInstruction(sourceAta, recipientAta, sender, amount),
143+
);
144+
```
145+
146+
### CToken (sender pre-fetched)
147+
148+
```typescript
149+
import {
150+
getAtaInterface,
151+
createLoadAtaInstructionsFromInterface,
152+
getAtaAddressInterface,
153+
createAtaInterfaceIdempotentInstruction,
154+
createTransferInterfaceInstruction,
155+
CTOKEN_PROGRAM_ID,
156+
} from '@lightprotocol/compressed-token';
157+
158+
// 1. Pre-fetch sender's unified balance
159+
const senderAtaInfo = await getAtaInterface(rpc, sender, mint);
160+
161+
// 2. Build load instructions from interface (empty if already hot)
162+
const loadIxs = await createLoadAtaInstructionsFromInterface(
163+
rpc,
164+
payer,
165+
senderAtaInfo,
166+
);
167+
168+
// 3. Derive addresses
169+
const sourceAta = getAtaAddressInterface(mint, sender);
170+
const recipientAta = getAtaAddressInterface(mint, recipient);
171+
172+
// 4. Build transaction
173+
const tx = new Transaction().add(
174+
...loadIxs,
175+
createAtaInterfaceIdempotentInstruction(
176+
payer,
177+
recipientAta,
178+
recipient,
179+
mint,
180+
CTOKEN_PROGRAM_ID,
181+
),
182+
createTransferInterfaceInstruction(sourceAta, recipientAta, sender, amount),
183+
);
184+
```
185+
186+
---
187+
188+
## Instruction Mapping
189+
190+
| SPL Token | CToken |
191+
| --------------------------------------------------- | ----------------------------------------------------------------- |
192+
| `getAssociatedTokenAddressSync` | `getAtaAddressInterface` |
193+
| `createAssociatedTokenAccountIdempotentInstruction` | `createAtaInterfaceIdempotentInstruction` |
194+
| `createTransferInstruction` | `createTransferInterfaceInstruction` |
195+
| N/A | `createLoadAtaInstructions` (fetch + build) |
196+
| N/A | `createLoadAtaInstructionsFromInterface` (build from pre-fetched) |
197+
198+
---
199+
200+
## Key Differences
201+
202+
| | SPL Token | CToken |
203+
| ------------------- | ---------------------- | --------------------------------------------- |
204+
| Recipient ATA | Create before transfer | Create before transfer |
205+
| Sender balance | Single ATA | Unified (cold + SPL + T22 + hot) |
206+
| Loading | N/A | `createLoadAtaInstructions` or auto in action |
207+
| `destination` param | ATA address | ATA address |
208+
209+
---
210+
211+
## Common Patterns
212+
213+
### Check if loading needed
214+
215+
```typescript
216+
const ata = await getAtaInterface(rpc, owner, mint);
217+
if (ata.isCold) {
218+
// Need to include load instructions
219+
}
220+
```
221+
222+
### Get unified balance
223+
224+
```typescript
225+
const ata = await getAtaInterface(rpc, owner, mint);
226+
const totalBalance = ata.parsed.amount; // All sources combined
227+
```
228+
229+
### Idempotent recipient ATA
230+
231+
Always safe to include - no-op if exists:
232+
233+
```typescript
234+
createAtaInterfaceIdempotentInstruction(
235+
payer,
236+
recipientAta,
237+
recipient,
238+
mint,
239+
CTOKEN_PROGRAM_ID,
240+
);
241+
```

js/compressed-token/package.json

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -29,12 +29,14 @@
2929
],
3030
"license": "Apache-2.0",
3131
"peerDependencies": {
32+
"@coral-xyz/borsh": "^0.29.0",
3233
"@lightprotocol/stateless.js": "workspace:*",
3334
"@solana/spl-token": ">=0.3.9",
3435
"@solana/web3.js": ">=1.73.5"
3536
},
3637
"dependencies": {
37-
"@coral-xyz/borsh": "^0.29.0",
38+
"@solana/buffer-layout": "^4.0.1",
39+
"@solana/buffer-layout-utils": "^0.2.0",
3840
"bn.js": "^5.2.1",
3941
"buffer": "6.0.3"
4042
},
@@ -77,9 +79,11 @@
7779
"vitest": "^2.1.1"
7880
},
7981
"scripts": {
80-
"test": "pnpm test:e2e:all",
81-
"test:v1": "LIGHT_PROTOCOL_VERSION=V1 pnpm test",
82-
"test:v2": "LIGHT_PROTOCOL_VERSION=V2 pnpm test",
82+
"test": "pnpm test:e2e:legacy:all",
83+
"test-ci": "pnpm test:v1 && pnpm test:v2 && LIGHT_PROTOCOL_VERSION=V2 pnpm test:e2e:ctoken:all",
84+
"test:v1": "pnpm build:v1 && LIGHT_PROTOCOL_VERSION=V1 vitest run tests/unit && LIGHT_PROTOCOL_VERSION=V1 pnpm test:e2e:legacy:all",
85+
"test:v2": "pnpm build:v2 && LIGHT_PROTOCOL_VERSION=V2 vitest run tests/unit && LIGHT_PROTOCOL_VERSION=V2 pnpm test:e2e:legacy:all",
86+
"test:v2:ctoken": "pnpm build:v2 && LIGHT_PROTOCOL_VERSION=V2 pnpm test:e2e:ctoken:all",
8387
"test-all": "vitest run",
8488
"test:unit:all": "EXCLUDE_E2E=true vitest run",
8589
"test:unit:all:v1": "LIGHT_PROTOCOL_VERSION=V1 vitest run tests/unit --reporter=verbose",
@@ -88,6 +92,14 @@
8892
"test-validator": "./../../cli/test_bin/run test-validator",
8993
"test-validator-skip-prover": "./../../cli/test_bin/run test-validator --skip-prover",
9094
"test:e2e:create-mint": "pnpm test-validator && NODE_OPTIONS='--trace-deprecation' vitest run tests/e2e/create-mint.test.ts --reporter=verbose",
95+
"test:e2e:create-compressed-mint": "pnpm test-validator && vitest run tests/e2e/create-compressed-mint.test.ts --reporter=verbose",
96+
"test:e2e:create-associated-ctoken": "pnpm test-validator && vitest run tests/e2e/create-associated-ctoken.test.ts --reporter=verbose",
97+
"test:e2e:mint-to-ctoken": "pnpm test-validator && vitest run tests/e2e/mint-to-ctoken.test.ts --reporter=verbose",
98+
"test:e2e:mint-to-compressed": "pnpm test-validator && vitest run tests/e2e/mint-to-compressed.test.ts --reporter=verbose",
99+
"test:e2e:mint-to-interface": "pnpm test-validator && vitest run tests/e2e/mint-to-interface.test.ts --reporter=verbose",
100+
"test:e2e:mint-workflow": "pnpm test-validator && vitest run tests/e2e/mint-workflow.test.ts --reporter=verbose",
101+
"test:e2e:update-mint": "pnpm test-validator && vitest run tests/e2e/update-mint.test.ts --reporter=verbose",
102+
"test:e2e:update-metadata": "pnpm test-validator && vitest run tests/e2e/update-metadata.test.ts --reporter=verbose",
91103
"test:e2e:layout": "vitest run tests/e2e/layout.test.ts --reporter=verbose --bail=1",
92104
"test:e2e:select-accounts": "vitest run tests/e2e/select-accounts.test.ts --reporter=verbose",
93105
"test:e2e:create-token-pool": "pnpm test-validator && vitest run tests/e2e/create-token-pool.test.ts",
@@ -104,7 +116,9 @@
104116
"test:e2e:rpc-token-interop": "pnpm test-validator && vitest run tests/e2e/rpc-token-interop.test.ts --reporter=verbose",
105117
"test:e2e:rpc-multi-trees": "pnpm test-validator && vitest run tests/e2e/rpc-multi-trees.test.ts --reporter=verbose",
106118
"test:e2e:multi-pool": "pnpm test-validator && vitest run tests/e2e/multi-pool.test.ts --reporter=verbose",
107-
"test:e2e:all": "pnpm test-validator && vitest run tests/e2e/create-mint.test.ts && vitest run tests/e2e/mint-to.test.ts && vitest run tests/e2e/transfer.test.ts && vitest run tests/e2e/delegate.test.ts && vitest run tests/e2e/transfer-delegated.test.ts && vitest run tests/e2e/multi-pool.test.ts && vitest run tests/e2e/decompress-delegated.test.ts && pnpm test-validator-skip-prover && vitest run tests/e2e/compress.test.ts && vitest run tests/e2e/compress-spl-token-account.test.ts && vitest run tests/e2e/decompress.test.ts && vitest run tests/e2e/create-token-pool.test.ts && vitest run tests/e2e/approve-and-mint-to.test.ts && vitest run tests/e2e/rpc-token-interop.test.ts && vitest run tests/e2e/rpc-multi-trees.test.ts && vitest run tests/e2e/layout.test.ts && vitest run tests/e2e/select-accounts.test.ts",
119+
"test:e2e:legacy:all": "pnpm test-validator && vitest run tests/e2e/create-mint.test.ts && vitest run tests/e2e/mint-to.test.ts && vitest run tests/e2e/transfer.test.ts && vitest run tests/e2e/delegate.test.ts && vitest run tests/e2e/transfer-delegated.test.ts && vitest run tests/e2e/multi-pool.test.ts && vitest run tests/e2e/decompress-delegated.test.ts && pnpm test-validator-skip-prover && vitest run tests/e2e/compress.test.ts && vitest run tests/e2e/compress-spl-token-account.test.ts && vitest run tests/e2e/decompress.test.ts && vitest run tests/e2e/create-token-pool.test.ts && vitest run tests/e2e/approve-and-mint-to.test.ts && vitest run tests/e2e/rpc-token-interop.test.ts && vitest run tests/e2e/rpc-multi-trees.test.ts && vitest run tests/e2e/layout.test.ts && vitest run tests/e2e/select-accounts.test.ts",
120+
"test:e2e:wrap": "pnpm test-validator && vitest run tests/e2e/wrap.test.ts --reporter=verbose",
121+
"test:e2e:ctoken:all": "pnpm test-validator && vitest run tests/e2e/create-compressed-mint.test.ts --bail=1 && vitest run tests/e2e/create-associated-ctoken.test.ts --bail=1 && vitest run tests/e2e/mint-to-ctoken.test.ts --bail=1 && vitest run tests/e2e/mint-to-compressed.test.ts --bail=1 && vitest run tests/e2e/mint-to-interface.test.ts --bail=1 && vitest run tests/e2e/mint-workflow.test.ts --bail=1 && vitest run tests/e2e/update-mint.test.ts --bail=1 && vitest run tests/e2e/update-metadata.test.ts --bail=1 && vitest run tests/e2e/compressible-load.test.ts --bail=1 && vitest run tests/e2e/wrap.test.ts --bail=1",
108122
"pull-idl": "../../scripts/push-compressed-token-idl.sh",
109123
"build": "if [ \"$LIGHT_PROTOCOL_VERSION\" = \"V2\" ]; then LIGHT_PROTOCOL_VERSION=V2 pnpm build:bundle; else LIGHT_PROTOCOL_VERSION=V1 pnpm build:bundle; fi",
110124
"build:bundle": "rimraf dist && rollup -c",
@@ -113,7 +127,6 @@
113127
"build:stateless:v1": "cd ../stateless.js && pnpm build:v1",
114128
"build:stateless:v2": "cd ../stateless.js && pnpm build:v2",
115129
"build-ci": "if [ \"$LIGHT_PROTOCOL_VERSION\" = \"V2\" ]; then LIGHT_PROTOCOL_VERSION=V2 pnpm build:bundle; else LIGHT_PROTOCOL_VERSION=V1 pnpm build:bundle; fi",
116-
"test-ci": "pnpm test",
117130
"format": "prettier --write .",
118131
"lint": "eslint ."
119132
},

0 commit comments

Comments
 (0)