Open olasunkanmi-SE opened 2 weeks ago
{
"address": "79zUy3DKMd4xfFpjnzBVyxaaEzD6vV6aAVzHS8U7JS1Y",
"metadata": {
"name": "solana_academy",
"version": "0.1.0",
"spec": "0.1.0",
"description": "Created with Anchor"
},
"instructions": [
{
"name": "create_course",
"discriminator": [
120,
121,
154,
164,
107,
180,
167,
241
],
"accounts": [
{
"name": "academy",
"writable": true
},
{
"name": "course",
"writable": true,
"signer": true
},
{
"name": "admin",
"writable": true,
"signer": true,
"relations": [
"academy"
]
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
}
],
"args": [
{
"name": "course_data",
"type": {
"defined": {
"name": "CourseData"
}
}
}
]
},
{
"name": "enroll_in_course",
"discriminator": [
148,
151,
118,
109,
223,
161,
90,
172
],
"accounts": [
{
"name": "academy",
"writable": true
},
{
"name": "course",
"writable": true
},
{
"name": "enrollment",
"writable": true,
"pda": {
"seeds": [
{
"kind": "const",
"value": [
101,
110,
114,
111,
108,
108,
109,
101,
110,
116
]
},
{
"kind": "account",
"path": "course"
},
{
"kind": "account",
"path": "student"
}
]
}
},
{
"name": "student",
"writable": true,
"signer": true
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
}
],
"args": [
{
"name": "course_id",
"type": "u64"
}
]
},
{
"name": "initialize_academy",
"discriminator": [
255,
97,
73,
10,
91,
205,
27,
133
],
"accounts": [
{
"name": "academy",
"writable": true,
"signer": true
},
{
"name": "admin",
"writable": true,
"signer": true
},
{
"name": "system_program",
"address": "11111111111111111111111111111111"
}
],
"args": [
{
"name": "name",
"type": "string"
}
]
}
],
"accounts": [
{
"name": "Academy",
"discriminator": [
110,
0,
104,
223,
115,
197,
131,
156
]
},
{
"name": "Course",
"discriminator": [
206,
6,
78,
228,
163,
138,
241,
106
]
},
{
"name": "Enrollment",
"discriminator": [
249,
210,
64,
145,
197,
241,
57,
51
]
}
],
"errors": [
{
"code": 6000,
"name": "InvalidCourseId",
"msg": "The provided course ID is invalid"
},
{
"code": 6001,
"name": "CourseIsFull",
"msg": "The course is already full"
},
{
"code": 6002,
"name": "AlreadyEnrolled",
"msg": "The student is already enrolled in this course"
},
{
"code": 6003,
"name": "InsufficientBalance",
"msg": "Insufficient balance to pay tuition fee"
}
],
"types": [
{
"name": "Academy",
"type": {
"kind": "struct",
"fields": [
{
"name": "name",
"type": "string"
},
{
"name": "admin",
"type": "pubkey"
},
{
"name": "course_count",
"type": "u64"
}
]
}
},
{
"name": "Course",
"type": {
"kind": "struct",
"fields": [
{
"name": "id",
"type": "u64"
},
{
"name": "name",
"type": "string"
},
{
"name": "description",
"type": "string"
},
{
"name": "start_date",
"type": "i64"
},
{
"name": "end_date",
"type": "i64"
},
{
"name": "tuition_fee",
"type": "u64"
},
{
"name": "enrollment_count",
"type": "u64"
}
]
}
},
{
"name": "CourseData",
"type": {
"kind": "struct",
"fields": [
{
"name": "name",
"type": "string"
},
{
"name": "description",
"type": "string"
},
{
"name": "start_date",
"type": "i64"
},
{
"name": "end_date",
"type": "i64"
},
{
"name": "tuition_fee",
"type": "u64"
}
]
}
},
{
"name": "Enrollment",
"type": {
"kind": "struct",
"fields": [
{
"name": "student",
"type": "pubkey"
},
{
"name": "course",
"type": "pubkey"
},
{
"name": "enrolled_at",
"type": "i64"
},
{
"name": "completed",
"type": "bool"
}
]
}
}
]
}
What's your anchor version? Mine is 0.30.1
. If you have a version earlier than 0.30
you'll be generating a legacy IDL type which is notably less verbose, like the one you shared. See Convert Legacy IDLs
here
When I ran anchor build on my local. This is how the generated IDL looks like.
This is more like I was expecting the IDL to look like. Can you give this command a try on your local and see if we generate the same JSON file. @maplerichie @somthn0somthn