Skip to content

Commit b1ef53b

Browse files
feat Simplify config options accepted for parser generation
1 parent ecaf12a commit b1ef53b

File tree

13 files changed

+98
-231
lines changed

13 files changed

+98
-231
lines changed

packages/renderers-vixen-parser/e2e/orca-whirlpool-parser/Cargo.toml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ tracing = { version = "0.1.40", optional = true }
1919
strum = { version = "0.24", optional = true }
2020
strum_macros = { version = "0.24", optional = true }
2121

22-
2322
[features]
2423
anchor = []
2524
anchor-idl-build = []
@@ -28,7 +27,6 @@ test-sbf = []
2827
fetch = []
2928
tracing = ["dep:tracing", "dep:strum", "dep:strum_macros"]
3029

31-
3230
[build-dependencies]
3331
prost-build = "0.13.1"
3432

packages/renderers-vixen-parser/e2e/orca-whirlpool-parser/codama.cjs

Lines changed: 11 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -3,65 +3,24 @@ const process = require('node:process');
33
const { rootNodeFromAnchor } = require('@codama/nodes-from-anchor');
44
const { readJson } = require('@codama/renderers-core');
55
const { visit } = require('@codama/visitors-core');
6-
const { renderVisitor: renderVixenVisitor } = require('../../dist/index.node.cjs');
7-
const { renderVisitor: renderRustVisitor } = require('@codama/renderers-rust');
8-
9-
function generateProject(project, node, generateProto) {
10-
const crateFolder = __dirname;
11-
12-
// #Renderers-rust
13-
visit(
14-
node,
15-
renderRustVisitor(path.join(crateFolder, 'src', 'generated_sdk'), {
16-
crateFolder,
17-
formatCode: true,
18-
}),
19-
);
20-
21-
// #Render Vixen Parser
22-
visit(
23-
node,
24-
renderVixenVisitor(crateFolder, {
25-
sdkName: 'crate',
26-
crateFolder,
27-
formatCode: true,
28-
generateProto,
29-
project,
30-
generatedFolderName: 'generated_parser',
31-
deleteFolderBeforeRendering: false,
32-
cargoAdditionalDependencies: [
33-
'yellowstone-vixen-core = { git = "https://github.com/rpcpool/yellowstone-vixen", branch = "main",features = ["proto"] }',
34-
// 'yellowstone-vixen-core = { workspace = true, features = ["proto"] }',
35-
'num-derive = "0.4"',
36-
'thiserror = "1.0.64"',
37-
'num-traits = "^0.2"',
38-
'tracing = { version = "0.1.40", optional = true }',
39-
'strum = { version = "0.24", optional = true }',
40-
'strum_macros = { version = "0.24", optional = true }',
41-
'\n',
42-
'[features]',
43-
'anchor = []',
44-
'anchor-idl-build = []',
45-
'serde = []',
46-
'test-sbf = []',
47-
'fetch = []',
48-
'tracing = ["dep:tracing", "dep:strum", "dep:strum_macros"]',
49-
],
50-
}),
51-
);
52-
}
6+
const { renderVisitor } = require('../../dist/index.node.cjs');
537

548
function main() {
55-
const project = process.argv.slice(2)[0] ?? undefined;
56-
const generateProto = process.argv.slice(3)[0] === 'true' ? true : false;
57-
58-
if (project === undefined) {
9+
const projectName = process.argv.slice(2)[0] ?? undefined;
10+
if (projectName === undefined) {
5911
throw new Error('Project name is required.');
6012
}
6113

6214
const idl = readJson(path.join(__dirname, 'idl.json'));
6315
const node = rootNodeFromAnchor(idl);
64-
generateProject(project, node, generateProto);
16+
17+
visit(
18+
node,
19+
renderVisitor({
20+
projectFolder: __dirname,
21+
projectName,
22+
}),
23+
);
6524
}
6625

6726
main();

packages/renderers-vixen-parser/e2e/orca-whirlpool-parser/src/generated_parser/proto_helpers.rs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,9 @@
99
pub mod proto_types_parsers {
1010
use yellowstone_vixen_core::proto_helper_traits;
1111
proto_helper_traits!();
12-
use crate as sdk;
1312
use crate::proto_def;
1413

15-
use sdk::types::PositionRewardInfo;
14+
use crate::types::PositionRewardInfo;
1615
impl IntoProto<proto_def::PositionRewardInfo> for PositionRewardInfo {
1716
fn into_proto(self) -> proto_def::PositionRewardInfo {
1817
proto_def::PositionRewardInfo {
@@ -21,7 +20,7 @@ pub mod proto_types_parsers {
2120
}
2221
}
2322
}
24-
use sdk::types::Tick;
23+
use crate::types::Tick;
2524
impl IntoProto<proto_def::Tick> for Tick {
2625
fn into_proto(self) -> proto_def::Tick {
2726
proto_def::Tick {
@@ -38,7 +37,7 @@ pub mod proto_types_parsers {
3837
}
3938
}
4039
}
41-
use sdk::types::WhirlpoolRewardInfo;
40+
use crate::types::WhirlpoolRewardInfo;
4241
impl IntoProto<proto_def::WhirlpoolRewardInfo> for WhirlpoolRewardInfo {
4342
fn into_proto(self) -> proto_def::WhirlpoolRewardInfo {
4443
proto_def::WhirlpoolRewardInfo {
@@ -50,15 +49,15 @@ pub mod proto_types_parsers {
5049
}
5150
}
5251
}
53-
use sdk::types::RemainingAccountsInfo;
52+
use crate::types::RemainingAccountsInfo;
5453
impl IntoProto<proto_def::RemainingAccountsInfo> for RemainingAccountsInfo {
5554
fn into_proto(self) -> proto_def::RemainingAccountsInfo {
5655
proto_def::RemainingAccountsInfo {
5756
slices: self.slices.into_iter().map(|x| x.into_proto()).collect(),
5857
}
5958
}
6059
}
61-
use sdk::types::RemainingAccountsSlice;
60+
use crate::types::RemainingAccountsSlice;
6261
impl IntoProto<proto_def::RemainingAccountsSlice> for RemainingAccountsSlice {
6362
fn into_proto(self) -> proto_def::RemainingAccountsSlice {
6463
proto_def::RemainingAccountsSlice {

packages/renderers-vixen-parser/e2e/raydium-amm-v4-parser/Cargo.toml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ tracing = { version = "0.1.40", optional = true }
1919
strum = { version = "0.24", optional = true }
2020
strum_macros = { version = "0.24", optional = true }
2121

22-
2322
[features]
2423
anchor = []
2524
anchor-idl-build = []
@@ -28,7 +27,6 @@ test-sbf = []
2827
fetch = []
2928
tracing = ["dep:tracing", "dep:strum", "dep:strum_macros"]
3029

31-
3230
[build-dependencies]
3331
prost-build = "0.13.1"
3432

packages/renderers-vixen-parser/e2e/raydium-amm-v4-parser/codama.cjs

Lines changed: 6 additions & 44 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,10 @@
11
const path = require('node:path');
2-
32
const { rootNodeFromAnchor } = require('@codama/nodes-from-anchor');
43
const { readJson } = require('@codama/renderers-core');
54
const { visit } = require('@codama/visitors-core');
5+
const { renderVisitor } = require('../../dist/index.node.cjs');
66

7-
const { renderVisitor: renderVixenVisitor } = require('../../dist/index.node.cjs');
8-
const { renderVisitor: renderRustVisitor } = require('@codama/renderers-rust');
9-
10-
function generateProject(project, node, generateProto) {
11-
const crateFolder = __dirname;
12-
7+
function generateProject(project, node) {
138
const definedTypes = node.program.definedTypes;
149
// Push `fees` defined type (not included in idl)
1510
// // https://github.com/raydium-io/raydium-amm/blob/master/program/src/state.rs#L475-L496
@@ -98,51 +93,18 @@ function generateProject(project, node, generateProto) {
9893

9994
const updatedNode = { ...node, program: { ...node.program, definedTypes, accounts } };
10095

101-
// #Renderers-rust
10296
visit(
10397
updatedNode,
104-
renderRustVisitor(path.join(crateFolder, 'src', 'generated_sdk'), {
105-
crateFolder,
106-
formatCode: true,
98+
renderVisitor({
99+
projectFolder: __dirname,
100+
projectName: project,
107101
}),
108102
);
109103

110-
// #Render Vixen Parser
111-
visit(
112-
updatedNode,
113-
renderVixenVisitor(crateFolder, {
114-
sdkName: 'crate',
115-
crateFolder,
116-
formatCode: true,
117-
generateProto,
118-
project,
119-
generatedFolderName: 'generated_parser',
120-
deleteFolderBeforeRendering: false,
121-
cargoAdditionalDependencies: [
122-
'yellowstone-vixen-core = { git = "https://github.com/rpcpool/yellowstone-vixen", branch = "main",features = ["proto"] }',
123-
'num-derive = "0.4"',
124-
'thiserror = "1.0.64"',
125-
'num-traits = "^0.2"',
126-
'tracing = { version = "0.1.40", optional = true }',
127-
'strum = { version = "0.24", optional = true }',
128-
'strum_macros = { version = "0.24", optional = true }',
129-
'\n',
130-
'[features]',
131-
'anchor = []',
132-
'anchor-idl-build = []',
133-
'serde = []',
134-
'test-sbf = []',
135-
'fetch = []',
136-
'tracing = ["dep:tracing", "dep:strum", "dep:strum_macros"]',
137-
],
138-
}),
139-
);
140104
}
141105

142106
function main() {
143107
const project = process.argv.slice(2)[0] ?? undefined;
144-
const generateProto = process.argv.slice(3)[0] === 'true' ? true : false;
145-
146108
if (project === undefined) {
147109
throw new Error('Project name is required.');
148110
}
@@ -153,7 +115,7 @@ function main() {
153115

154116
node.program.publicKey = '675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8';
155117

156-
generateProject(project, node, generateProto);
118+
generateProject(project, node);
157119
}
158120

159121
main();

packages/renderers-vixen-parser/e2e/raydium-amm-v4-parser/src/generated_parser/proto_helpers.rs

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,9 @@
99
pub mod proto_types_parsers {
1010
use yellowstone_vixen_core::proto_helper_traits;
1111
proto_helper_traits!();
12-
use crate as sdk;
1312
use crate::proto_def;
1413

15-
use sdk::types::WithdrawDestToken;
14+
use crate::types::WithdrawDestToken;
1615
impl IntoProto<proto_def::WithdrawDestToken> for WithdrawDestToken {
1716
fn into_proto(self) -> proto_def::WithdrawDestToken {
1817
proto_def::WithdrawDestToken {
@@ -24,7 +23,7 @@ pub mod proto_types_parsers {
2423
}
2524
}
2625
}
27-
use sdk::types::WithdrawQueue;
26+
use crate::types::WithdrawQueue;
2827
impl IntoProto<proto_def::WithdrawQueue> for WithdrawQueue {
2928
fn into_proto(self) -> proto_def::WithdrawQueue {
3029
proto_def::WithdrawQueue {
@@ -35,7 +34,7 @@ pub mod proto_types_parsers {
3534
}
3635
}
3736
}
38-
use sdk::types::TargetOrder;
37+
use crate::types::TargetOrder;
3938
impl IntoProto<proto_def::TargetOrder> for TargetOrder {
4039
fn into_proto(self) -> proto_def::TargetOrder {
4140
proto_def::TargetOrder {
@@ -44,7 +43,7 @@ pub mod proto_types_parsers {
4443
}
4544
}
4645
}
47-
use sdk::types::OutPutData;
46+
use crate::types::OutPutData;
4847
impl IntoProto<proto_def::OutPutData> for OutPutData {
4948
fn into_proto(self) -> proto_def::OutPutData {
5049
proto_def::OutPutData {
@@ -65,7 +64,7 @@ pub mod proto_types_parsers {
6564
}
6665
}
6766
}
68-
use sdk::types::LastOrderDistance;
67+
use crate::types::LastOrderDistance;
6968
impl IntoProto<proto_def::LastOrderDistance> for LastOrderDistance {
7069
fn into_proto(self) -> proto_def::LastOrderDistance {
7170
proto_def::LastOrderDistance {
@@ -74,7 +73,7 @@ pub mod proto_types_parsers {
7473
}
7574
}
7675
}
77-
use sdk::types::NeedTake;
76+
use crate::types::NeedTake;
7877
impl IntoProto<proto_def::NeedTake> for NeedTake {
7978
fn into_proto(self) -> proto_def::NeedTake {
8079
proto_def::NeedTake {
@@ -83,7 +82,7 @@ pub mod proto_types_parsers {
8382
}
8483
}
8584
}
86-
use sdk::types::SwapInstructionBaseIn;
85+
use crate::types::SwapInstructionBaseIn;
8786
impl IntoProto<proto_def::SwapInstructionBaseIn> for SwapInstructionBaseIn {
8887
fn into_proto(self) -> proto_def::SwapInstructionBaseIn {
8988
proto_def::SwapInstructionBaseIn {
@@ -92,7 +91,7 @@ pub mod proto_types_parsers {
9291
}
9392
}
9493
}
95-
use sdk::types::SwapInstructionBaseOut;
94+
use crate::types::SwapInstructionBaseOut;
9695
impl IntoProto<proto_def::SwapInstructionBaseOut> for SwapInstructionBaseOut {
9796
fn into_proto(self) -> proto_def::SwapInstructionBaseOut {
9897
proto_def::SwapInstructionBaseOut {
@@ -101,7 +100,7 @@ pub mod proto_types_parsers {
101100
}
102101
}
103102
}
104-
use sdk::types::Fees;
103+
use crate::types::Fees;
105104
impl IntoProto<proto_def::Fees> for Fees {
106105
fn into_proto(self) -> proto_def::Fees {
107106
proto_def::Fees {

packages/renderers-vixen-parser/e2e/system-parser/Cargo.toml

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@ tracing = { version = "0.1.40", optional = true }
1919
strum = { version = "0.24", optional = true }
2020
strum_macros = { version = "0.24", optional = true }
2121

22-
2322
[features]
2423
anchor = []
2524
anchor-idl-build = []
@@ -28,7 +27,6 @@ test-sbf = []
2827
fetch = []
2928
tracing = ["dep:tracing", "dep:strum", "dep:strum_macros"]
3029

31-
3230
[build-dependencies]
3331
prost-build = "0.13.1"
3432

0 commit comments

Comments
 (0)