mirror of
https://github.com/d0zingcat/ore.git
synced 2026-05-13 23:16:52 +00:00
Add Codama IDL to program binary (#105)
* Add Codama IDL * Add IDL to program binary * Update dependency * Use published crate --------- Co-authored-by: Hardhat Chad <155858888+HardhatChad@users.noreply.github.com>
This commit is contained in:
@@ -9,6 +9,7 @@ documentation.workspace = true
|
||||
repository.workspace = true
|
||||
readme.workspace = true
|
||||
keywords.workspace = true
|
||||
build = "build.rs"
|
||||
|
||||
[lib]
|
||||
crate-type = ["cdylib", "lib"]
|
||||
@@ -19,6 +20,7 @@ default = []
|
||||
|
||||
[dependencies]
|
||||
drillx.workspace = true
|
||||
solana-include-idl = "0.1"
|
||||
mpl-token-metadata.workspace = true
|
||||
ore-api.workspace = true
|
||||
ore-boost-api.workspace = true
|
||||
@@ -29,3 +31,6 @@ steel.workspace = true
|
||||
|
||||
[dev-dependencies]
|
||||
rand = "0.8.5"
|
||||
|
||||
[build-dependencies]
|
||||
solana-include-idl = { version = "0.1", features = ["shrink"] }
|
||||
|
||||
18
program/build.rs
Normal file
18
program/build.rs
Normal file
@@ -0,0 +1,18 @@
|
||||
use std::env;
|
||||
use std::path::PathBuf;
|
||||
|
||||
use solana_include_idl::compress_idl;
|
||||
|
||||
/// Build script to compress the IDL file to a zip file when building the program.
|
||||
///
|
||||
/// The compressed IDL is then included in a separate ELF section on the program binary
|
||||
/// when the program is built.
|
||||
fn main() {
|
||||
// Get the IDL path.
|
||||
let idl_path = PathBuf::from("../api").join("idl.json");
|
||||
// Compress the IDL file to a zip file.
|
||||
let out_dir = env::var("OUT_DIR").unwrap();
|
||||
let dest_path = PathBuf::from(out_dir).join("codama.idl.zip");
|
||||
|
||||
compress_idl(&idl_path, &dest_path);
|
||||
}
|
||||
@@ -19,8 +19,11 @@ use update::*;
|
||||
use upgrade::*;
|
||||
|
||||
use ore_api::instruction::*;
|
||||
use solana_include_idl::{include_idl, parse::IdlType};
|
||||
use steel::*;
|
||||
|
||||
// Include the compressed IDL in an ELF section on the program binary.
|
||||
include_idl!(IdlType::Codama, concat!(env!("OUT_DIR"), "/codama.idl.zip"));
|
||||
#[allow(deprecated)]
|
||||
pub fn process_instruction(
|
||||
program_id: &Pubkey,
|
||||
|
||||
Reference in New Issue
Block a user