From 5b56721087035e5e4bb6d893d78366d83f638d3f Mon Sep 17 00:00:00 2001 From: Ian Macalinao Date: Fri, 9 May 2025 15:37:43 +0800 Subject: [PATCH 1/6] wip: update to Anchor 0.31 --- Cargo.lock | 1735 ++++++++++++----- Cargo.toml | 1 + crates/anchor-generate-cpi-crate/Cargo.toml | 2 +- crates/anchor-generate-cpi-crate/src/lib.rs | 1 - .../anchor-generate-cpi-interface/Cargo.toml | 2 +- crates/anchor-idl/Cargo.toml | 4 +- crates/anchor-idl/src/account.rs | 12 +- crates/anchor-idl/src/fields.rs | 39 + crates/anchor-idl/src/instruction.rs | 6 +- crates/anchor-idl/src/lib.rs | 20 +- crates/anchor-idl/src/program.rs | 14 +- crates/anchor-idl/src/state.rs | 49 +- crates/anchor-idl/src/typedef.rs | 94 +- examples/govern-cpi/idl.json | 918 ++++----- examples/govern-cpi/src/lib.rs | 2 - examples/marinade-cpi/idl.json | 1721 ++++++++-------- examples/marinade-cpi/src/lib.rs | 2 - examples/whirlpools/Cargo.toml | 1 + examples/whirlpools/idl.json | 1694 ++++++++-------- examples/whirlpools/src/lib.rs | 2 - flake.lock | 30 +- flake.nix | 34 +- 22 files changed, 3517 insertions(+), 2866 deletions(-) create mode 100644 crates/anchor-idl/src/fields.rs diff --git a/Cargo.lock b/Cargo.lock index 1f5f748..4368026 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -1,140 +1,125 @@ # This file is automatically @generated by Cargo. # It is not intended for manual editing. -version = 3 +version = 4 [[package]] name = "ahash" -version = "0.7.6" +version = "0.8.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fcb51a0695d8f838b1ee009b3fbf66bda078cd64590202a864a8f3e8c4315c47" +checksum = "5a15f179cd60c4584b8a8c596927aadc462e27f2ca70c04e0071964a73ba7a75" dependencies = [ - "getrandom 0.2.7", + "cfg-if", "once_cell", "version_check", -] - -[[package]] -name = "aho-corasick" -version = "0.7.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b4f55bd91a0978cbfd91c457a164bab8b4001c833b7f323132c0a4e1922dd44e" -dependencies = [ - "memchr", + "zerocopy", ] [[package]] name = "anchor-attribute-access-control" -version = "0.24.2" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a9b75d05b6b4ac9d95bb6e3b786b27d3a708c4c5a87c92ffaa25bbe9ae4c5d91" +checksum = "3f70fd141a4d18adf11253026b32504f885447048c7494faf5fa83b01af9c0cf" dependencies = [ "anchor-syn", - "anyhow", "proc-macro2", "quote", - "regex", "syn 1.0.109", ] [[package]] name = "anchor-attribute-account" -version = "0.24.2" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "485351a6d8157750d10d88c8e256f1bf8339262b2220ae9125aed3471309b5de" +checksum = "715a261c57c7679581e06f07a74fa2af874ac30f86bd8ea07cca4a7e5388a064" dependencies = [ "anchor-syn", - "anyhow", - "bs58 0.4.0", + "bs58", "proc-macro2", "quote", - "rustversion", "syn 1.0.109", ] [[package]] name = "anchor-attribute-constant" -version = "0.24.2" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dc632c540913dd051a78b00587cc47f57013d303163ddfaf4fa18717f7ccc1e0" +checksum = "730d6df8ae120321c5c25e0779e61789e4b70dc8297102248902022f286102e4" dependencies = [ "anchor-syn", - "proc-macro2", + "quote", "syn 1.0.109", ] [[package]] name = "anchor-attribute-error" -version = "0.24.2" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3b5bd1dcfa7f3bc22dacef233d70a9e0bee269c4ac484510662f257cba2353a1" +checksum = "27e6e449cc3a37b2880b74dcafb8e5a17b954c0e58e376432d7adc646fb333ef" dependencies = [ "anchor-syn", - "proc-macro2", "quote", "syn 1.0.109", ] [[package]] name = "anchor-attribute-event" -version = "0.24.2" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c6f9e6ce551ac9a177a45c99a65699a860c9e95fac68675138af1246e2591b0" +checksum = "d7710e4c54adf485affcd9be9adec5ef8846d9c71d7f31e16ba86ff9fc1dd49f" dependencies = [ "anchor-syn", - "anyhow", "proc-macro2", "quote", "syn 1.0.109", ] [[package]] -name = "anchor-attribute-interface" -version = "0.24.2" +name = "anchor-attribute-program" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d104aa17418cb329ed7418b227e083d5f326a27f26ce98f5d92e33da62a5f459" +checksum = "05ecfd49b2aeadeb32f35262230db402abed76ce87e27562b34f61318b2ec83c" dependencies = [ + "anchor-lang-idl", "anchor-syn", "anyhow", + "bs58", "heck 0.3.3", "proc-macro2", "quote", + "serde_json", "syn 1.0.109", ] [[package]] -name = "anchor-attribute-program" -version = "0.24.2" +name = "anchor-derive-accounts" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b6831b920b173c004ddf7ae1167d1d25e9f002ffcb1773bbc5c7ce532a4441e1" +checksum = "be89d160793a88495af462a7010b3978e48e30a630c91de47ce2c1d3cb7a6149" dependencies = [ "anchor-syn", - "anyhow", - "proc-macro2", "quote", "syn 1.0.109", ] [[package]] -name = "anchor-attribute-state" -version = "0.24.2" +name = "anchor-derive-serde" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cde147b10c71d95dc679785db0b5f3abac0091f789167aa62ac0135e2f54e8b9" +checksum = "abc6ee78acb7bfe0c2dd2abc677aaa4789c0281a0c0ef01dbf6fe85e0fd9e6e4" dependencies = [ "anchor-syn", - "anyhow", + "borsh-derive-internal", "proc-macro2", "quote", "syn 1.0.109", ] [[package]] -name = "anchor-derive-accounts" -version = "0.24.2" +name = "anchor-derive-space" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9cde98a0e1a56046b040ff591dfda391f88917af2b6487d02b45093c05be3514" +checksum = "134a01c0703f6fd355a0e472c033f6f3e41fac1ef6e370b20c50f4c8d022cea7" dependencies = [ - "anchor-syn", - "anyhow", "proc-macro2", "quote", "syn 1.0.109", @@ -172,7 +157,7 @@ name = "anchor-idl" version = "0.3.1" dependencies = [ "anchor-lang", - "anchor-syn", + "anchor-lang-idl-spec", "darling", "heck 0.4.1", "proc-macro2", @@ -183,81 +168,92 @@ dependencies = [ [[package]] name = "anchor-lang" -version = "0.24.2" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a85dd2c5e29e20c7f4701a43724d6cd5406d0ee5694705522e43da0f26542a84" +checksum = "e6bab117055905e930f762c196e08f861f8dfe7241b92cee46677a3b15561a0a" dependencies = [ "anchor-attribute-access-control", "anchor-attribute-account", "anchor-attribute-constant", "anchor-attribute-error", "anchor-attribute-event", - "anchor-attribute-interface", "anchor-attribute-program", - "anchor-attribute-state", "anchor-derive-accounts", - "arrayref", - "base64 0.13.0", + "anchor-derive-serde", + "anchor-derive-space", + "base64 0.21.7", "bincode", - "borsh", + "borsh 0.10.4", "bytemuck", "solana-program", - "thiserror", + "thiserror 1.0.69", +] + +[[package]] +name = "anchor-lang-idl" +version = "0.1.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "32e8599d21995f68e296265aa5ab0c3cef582fd58afec014d01bd0bce18a4418" +dependencies = [ + "anchor-lang-idl-spec", + "anyhow", + "heck 0.3.3", + "serde", + "serde_json", + "sha2 0.10.9", +] + +[[package]] +name = "anchor-lang-idl-spec" +version = "0.1.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "2bdf143115440fe621bdac3a29a1f7472e09f6cd82b2aa569429a0c13f103838" +dependencies = [ + "anyhow", + "serde", ] [[package]] name = "anchor-syn" -version = "0.24.2" +version = "0.31.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "03549dc2eae0b20beba6333b14520e511822a6321cdb1760f841064a69347316" +checksum = "5dc7a6d90cc643df0ed2744862cdf180587d1e5d28936538c18fc8908489ed67" dependencies = [ "anyhow", - "bs58 0.3.1", + "bs58", "heck 0.3.3", "proc-macro2", - "proc-macro2-diagnostics", "quote", "serde", "serde_json", - "sha2", + "sha2 0.10.9", "syn 1.0.109", - "thiserror", + "thiserror 1.0.69", ] [[package]] name = "anyhow" -version = "1.0.65" +version = "1.0.98" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "98161a4e3e2184da77bb14f02184cdd111e83bbbcc9979dfee3c44b9a85f5602" +checksum = "e16d2d3311acee920a9eb8d33b8cbc1787ce4a264e85f964c2404b969bdcd487" [[package]] name = "arrayref" -version = "0.3.6" +version = "0.3.9" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a4c527152e37cf757a3f78aae5a06fbeefdb07ccc535c980a3208ee3060dd544" +checksum = "76a2e8124351fda1ef8aaaa3bbd7ebbcb486bbcd4225aca0aa0d84bb2db8fecb" [[package]] name = "arrayvec" -version = "0.7.2" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8da52d66c7071e2e3fa2a1e5c6d088fec47b593032b254f5e980de8ea54454d6" - -[[package]] -name = "atty" -version = "0.2.14" +version = "0.7.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d9b39be18770d11421cdb1b9947a45dd3f37e93092cbf377614828a319d5fee8" -dependencies = [ - "hermit-abi", - "libc", - "winapi", -] +checksum = "7c02d123df017efcdfbd739ef81735b36c5ba83ec3c59c80a9d7ecc718f92e50" [[package]] name = "autocfg" -version = "1.1.0" +version = "1.4.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d468802bab17cbc0cc575e9b053f41e72aa36bfa6b7f55e3529ffa43161b97fa" +checksum = "ace50bade8e6234aa140d9a2f552bbee1db4d353f69b8217bc503490fc1a9f26" [[package]] name = "base64" @@ -267,9 +263,15 @@ checksum = "3441f0f7b02788e948e47f457ca01f1d7e6d92c693bc132c22b087d3141c03ff" [[package]] name = "base64" -version = "0.13.0" +version = "0.21.7" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9d297deb1925b89f2ccc13d7635fa0714f12c87adce1c75356b39ca9b7178567" + +[[package]] +name = "base64" +version = "0.22.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "904dfeac50f3cdaba28fc6f57fdcddb75f49ed61346676a78c4ffe55877802fd" +checksum = "72b3254f16251a8381aa12e40e3c4d2f0199f8c6508fbecb9d91f575e0fbb8c6" [[package]] name = "bincode" @@ -282,22 +284,22 @@ dependencies = [ [[package]] name = "bitflags" -version = "1.3.2" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bef38d45163c2f1dde094a7dfd33ccf595c92905c8f8f4fdc18d06fb1037718a" +checksum = "5c8214115b7bf84099f1309324e63141d4c5d7cc26862f97a0a857dbefe165bd" [[package]] name = "blake3" -version = "1.3.1" +version = "1.8.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a08e53fc5a564bb15bfe6fae56bd71522205f1f91893f9c0116edad6496c183f" +checksum = "3888aaa89e4b2a40fca9848e400f6a658a5a3978de7be858e209cafa8be9a4a0" dependencies = [ "arrayref", "arrayvec", "cc", "cfg-if", "constant_time_eq", - "digest 0.10.5", + "digest 0.10.7", ] [[package]] @@ -306,64 +308,69 @@ version = "0.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "4152116fd6e9dadb291ae18fc1ec3575ed6d84c29642d97890f4b4a3417297e4" dependencies = [ - "block-padding", "generic-array", ] [[package]] name = "block-buffer" -version = "0.10.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "69cce20737498f97b993470a6e536b8523f0af7892a4f928cceb1ac5e52ebe7e" +checksum = "3078c7629b62d3f0439517fa394996acacc5cbc91c5a20d8c658e77abd503a71" dependencies = [ "generic-array", ] [[package]] -name = "block-padding" -version = "0.2.1" +name = "borsh" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d696c370c750c948ada61c69a0ee2cbbb9c50b1019ddb86d9317157a99c2cae" +checksum = "115e54d64eb62cdebad391c19efc9dce4981c690c85a33a12199d99bb9546fee" +dependencies = [ + "borsh-derive 0.10.4", + "hashbrown 0.13.2", +] [[package]] name = "borsh" -version = "0.9.3" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "15bf3650200d8bffa99015595e10f1fbd17de07abbc25bb067da79e769939bfa" +checksum = "ad8646f98db542e39fc66e68a20b2144f6a732636df7c2354e74645faaa433ce" dependencies = [ - "borsh-derive", - "hashbrown", + "borsh-derive 1.5.7", + "cfg_aliases", ] [[package]] name = "borsh-derive" -version = "0.9.3" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6441c552f230375d18e3cc377677914d2ca2b0d36e52129fe15450a2dce46775" +checksum = "831213f80d9423998dd696e2c5345aba6be7a0bd8cd19e31c5243e13df1cef89" dependencies = [ "borsh-derive-internal", "borsh-schema-derive-internal", - "proc-macro-crate", + "proc-macro-crate 0.1.5", "proc-macro2", "syn 1.0.109", ] [[package]] -name = "borsh-derive-internal" -version = "0.9.3" +name = "borsh-derive" +version = "1.5.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5449c28a7b352f2d1e592a8a28bf139bc71afb0764a14f3c02500935d8c44065" +checksum = "fdd1d3c0c2f5833f22386f252fe8ed005c7f59fdcddeef025c01b4c3b9fd9ac3" dependencies = [ + "once_cell", + "proc-macro-crate 3.3.0", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.101", ] [[package]] -name = "borsh-schema-derive-internal" -version = "0.9.3" +name = "borsh-derive-internal" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cdbd5696d8bfa21d53d9fe39a714a18538bad11492a42d066dbbc395fb1951c0" +checksum = "65d6ba50644c98714aa2a70d13d7df3cd75cd2b523a2b452bf010443800976b3" dependencies = [ "proc-macro2", "quote", @@ -371,22 +378,30 @@ dependencies = [ ] [[package]] -name = "bs58" -version = "0.3.1" +name = "borsh-schema-derive-internal" +version = "0.10.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "476e9cd489f9e121e02ffa6014a8ef220ecb15c05ed23fc34cca13925dc283fb" +checksum = "276691d96f063427be83e6692b86148e488ebba9f48f77788724ca027ba3b6d4" +dependencies = [ + "proc-macro2", + "quote", + "syn 1.0.109", +] [[package]] name = "bs58" -version = "0.4.0" +version = "0.5.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "771fe0050b883fcc3ea2359b1a96bcfbc090b7116eae7c3c512c7a083fdf23d3" +checksum = "bf88ba1141d185c399bee5288d850d63b8369520c1eafc32a0430b5b6c287bf4" +dependencies = [ + "tinyvec", +] [[package]] name = "bumpalo" -version = "3.12.0" +version = "3.17.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0d261e256854913907f67ed06efbc3338dfe6179796deefc1ff763fc1aee5535" +checksum = "1628fb46dfa0b37568d12e5edd512553eccf6a22a78e8bde00bb4aed84d5bdbf" [[package]] name = "bv" @@ -400,35 +415,32 @@ dependencies = [ [[package]] name = "bytemuck" -version = "1.12.1" +version = "1.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2f5715e491b5a1598fc2bef5a606847b5dc1d48ea625bd3c02c00de8285591da" +checksum = "9134a6ef01ce4b366b50689c94f82c14bc72bc5d0386829828a2e2752ef7958c" dependencies = [ "bytemuck_derive", ] [[package]] name = "bytemuck_derive" -version = "1.2.1" +version = "1.9.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1b9e1f5fa78f69496407a27ae9ed989e3c3b072310286f5ef385525e4cbc24a9" +checksum = "7ecc273b49b3205b83d648f0690daa588925572cc5063745bfe547fe7ec8e1a1" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.101", ] -[[package]] -name = "byteorder" -version = "1.4.3" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "14c189c53d098945499cdfa7ecc63567cf3886b3332b312a5b4585d8d3a6a610" - [[package]] name = "cc" -version = "1.0.73" +version = "1.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fff2a6927b3bb87f9595d67196a70493f627687a71d87a0d692242c33f58c11" +checksum = "8691782945451c1c383942c4874dbe63814f61cb57ef773cda2972682b7bb3c0" +dependencies = [ + "shlex", +] [[package]] name = "cfg-if" @@ -436,6 +448,12 @@ version = "1.0.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "baf1de4339761588bc0619e3cbc0120ee582ebb74b53b4efbf79117bd2da40fd" +[[package]] +name = "cfg_aliases" +version = "0.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "613afe47fcd5fac7ccf1db93babcb082c5994d996f20b8b159f2ad1658eb5724" + [[package]] name = "console_error_panic_hook" version = "0.1.7" @@ -448,9 +466,9 @@ dependencies = [ [[package]] name = "console_log" -version = "0.2.0" +version = "0.2.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "501a375961cef1a0d44767200e66e4a559283097e91d0730b1d75dfb2f8a1494" +checksum = "e89f72f65e8501878b8a004d5a1afb780987e2ce2b4532c562e367a72c57499f" dependencies = [ "log", "web-sys", @@ -458,24 +476,24 @@ dependencies = [ [[package]] name = "constant_time_eq" -version = "0.1.5" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "245097e9a4535ee1e3e3931fcfcd55a796a44c643e8596ff6566d68f09b87bbc" +checksum = "7c74b8349d32d297c9134b8c88677813a227df8f779daa29bfc29c183fe3dca6" [[package]] name = "cpufeatures" -version = "0.2.5" +version = "0.2.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "28d997bd5e24a5928dd43e46dc529867e207907fe0b239c3477d924f7f2ca320" +checksum = "59ed5838eebb26a2bb2e58f6d5b5316989ae9d08bab10e0e6d103e656d1b0280" dependencies = [ "libc", ] [[package]] name = "crunchy" -version = "0.2.2" +version = "0.2.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a81dae078cea95a014a339291cec439d2f232ebe854a9d672b796c6afafa9b7" +checksum = "43da5946c66ffcc7745f48db692ffbb10a83bfe0afd96235c5c2a4fb23994929" [[package]] name = "crypto-common" @@ -488,33 +506,38 @@ dependencies = [ ] [[package]] -name = "crypto-mac" -version = "0.8.0" +name = "curve25519-dalek" +version = "4.1.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b584a330336237c1eecd3e94266efb216c56ed91225d634cb2991c5f3fd1aeab" +checksum = "97fb8b7c4503de7d6ae7b42ab72a5a59857b4c937ec27a3d4539dba95b5ab2be" dependencies = [ - "generic-array", + "cfg-if", + "cpufeatures", + "curve25519-dalek-derive", + "digest 0.10.7", + "fiat-crypto", + "rand_core 0.6.4", + "rustc_version", "subtle", + "zeroize", ] [[package]] -name = "curve25519-dalek" -version = "3.2.1" +name = "curve25519-dalek-derive" +version = "0.1.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90f9d052967f590a76e62eb387bd0bbb1b000182c3cefe5364db6b7211651bc0" +checksum = "f46882e17999c6cc590af592290432be3bce0428cb0d5f8b6715e4dc7b383eb3" dependencies = [ - "byteorder", - "digest 0.9.0", - "rand_core", - "subtle", - "zeroize", + "proc-macro2", + "quote", + "syn 2.0.101", ] [[package]] name = "darling" -version = "0.14.1" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4529658bdda7fd6769b8614be250cdcfc3aeb0ee72fe66f9e41e5e5eb73eac02" +checksum = "7b750cb3417fd1b327431a470f388520309479ab0bf5e323505daf0290cd3850" dependencies = [ "darling_core", "darling_macro", @@ -522,9 +545,9 @@ dependencies = [ [[package]] name = "darling_core" -version = "0.14.1" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "649c91bc01e8b1eac09fb91e8dbc7d517684ca6be8ebc75bb9cafc894f9fdb6f" +checksum = "109c1ca6e6b7f82cc233a97004ea8ed7ca123a9af07a8230878fcfda9b158bf0" dependencies = [ "fnv", "ident_case", @@ -536,9 +559,9 @@ dependencies = [ [[package]] name = "darling_macro" -version = "0.14.1" +version = "0.14.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ddfc69c5bfcbd2fc09a0f38451d2daf0e372e367986a83906d1b0dbc88134fb5" +checksum = "a4aab4dbc9f7611d8b55048a3a16d2d010c2c8334e46304b40ac1cc14bf3b48e" dependencies = [ "darling_core", "quote", @@ -556,39 +579,47 @@ dependencies = [ [[package]] name = "digest" -version = "0.10.5" +version = "0.10.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "adfbc57365a37acbd2ebf2b64d7e69bb766e2fea813521ed536f5d0520dcf86c" +checksum = "9ed9a281f7bc9b7576e61468ba615a66a5c8cfdff42420a70aa82701a3b1e292" dependencies = [ - "block-buffer 0.10.3", + "block-buffer 0.10.4", "crypto-common", "subtle", ] [[package]] -name = "either" -version = "1.8.0" +name = "equivalent" +version = "1.0.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "90e5c1c8368803113bf0c9584fc495a58b86dc8a29edbf8fe877d21d9507e797" +checksum = "877a4ace8713b0bcf2a4e7eec82529c029f1d0619886d18145fea96c3ffe5c0f" [[package]] -name = "env_logger" -version = "0.9.1" +name = "feature-probe" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" + +[[package]] +name = "fiat-crypto" +version = "0.2.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "28dea519a9695b9977216879a3ebfddf92f1c08c05d984f8996aecd6ecdc811d" + +[[package]] +name = "five8_const" +version = "0.1.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c90bf5f19754d10198ccb95b70664fc925bd1fc090a0fd9a6ebc54acc8cd6272" +checksum = "26dec3da8bc3ef08f2c04f61eab298c3ab334523e55f076354d6d6f613799a7b" dependencies = [ - "atty", - "humantime", - "log", - "regex", - "termcolor", + "five8_core", ] [[package]] -name = "feature-probe" -version = "0.1.1" +name = "five8_core" +version = "0.1.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "835a3dc7d1ec9e75e2b5fb4ba75396837112d2060b03f7d43bc1897c7f7211da" +checksum = "2551bf44bc5f776c15044b9b94153a00198be06743e262afaaa61f11ac7523a5" [[package]] name = "fnv" @@ -598,11 +629,10 @@ checksum = "3f9eec918d3f24069decb9af1554cad7c880e2da24a9afd88aca000531ab82c1" [[package]] name = "generic-array" -version = "0.14.6" +version = "0.14.7" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bff49e947297f3312447abdca79f45f4738097cc82b06e72054d2223f601f1b9" +checksum = "85649ca51fd72272d7821adaf274ad91c288277713d9c18820d8499a7ff69e9a" dependencies = [ - "serde", "typenum", "version_check", ] @@ -614,21 +644,21 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "8fc3cb4d91f53b50155bdcfd23f6a4c39ae1969c2ae85982b135750cccaf5fce" dependencies = [ "cfg-if", - "js-sys", "libc", "wasi 0.9.0+wasi-snapshot-preview1", - "wasm-bindgen", ] [[package]] name = "getrandom" -version = "0.2.7" +version = "0.2.16" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4eb1a864a501629691edf6c15a593b7a51eebaa1e8468e9ddc623de7c9b58ec6" +checksum = "335ff9f135e4384c8150d6f27c6daed433577f86b4750418338c01a1a2528592" dependencies = [ "cfg-if", + "js-sys", "libc", "wasi 0.11.0+wasi-snapshot-preview1", + "wasm-bindgen", ] [[package]] @@ -641,13 +671,19 @@ dependencies = [ [[package]] name = "hashbrown" -version = "0.11.2" +version = "0.13.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ab5ef0d4909ef3724cc8cce6ccc8572c5c817592e9285f5464f8e86f8bd3726e" +checksum = "43a3c133739dddd0d2990f9a4bdf8eb4b21ef50e4851ca85ab661199821d510e" dependencies = [ "ahash", ] +[[package]] +name = "hashbrown" +version = "0.15.3" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84b26c544d002229e640969970a2e74021aadf6e2f96372b9c58eff97de08eb3" + [[package]] name = "heck" version = "0.3.3" @@ -663,42 +699,6 @@ version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "95505c38b4572b2d910cecb0281560f54b440a19336cbbcb27bf6ce6adc6f5a8" -[[package]] -name = "hermit-abi" -version = "0.1.19" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "62b467343b94ba476dcb2500d242dadbb39557df889310ac77c5d99100aaac33" -dependencies = [ - "libc", -] - -[[package]] -name = "hmac" -version = "0.8.1" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "126888268dcc288495a26bf004b38c5fdbb31682f992c84ceb046a1f0fe38840" -dependencies = [ - "crypto-mac", - "digest 0.9.0", -] - -[[package]] -name = "hmac-drbg" -version = "0.3.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "17ea0a1394df5b6574da6e0c1ade9e78868c9fb0a4e5ef4428e32da4676b85b1" -dependencies = [ - "digest 0.9.0", - "generic-array", - "hmac", -] - -[[package]] -name = "humantime" -version = "2.1.0" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9a3a5bfb195931eeb336b2a7b4d761daec841b97f947d34394601737a7bba5e4" - [[package]] name = "ident_case" version = "1.0.1" @@ -706,55 +706,51 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "b9e0384b61958566e926dc50660321d12159025e767c18e043daf26b70104c39" [[package]] -name = "instant" -version = "0.1.12" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7a5bbe824c507c5da5956355e86a746d82e0e1464f65d862cc5e71da70e94b2c" -dependencies = [ - "cfg-if", -] - -[[package]] -name = "itertools" -version = "0.10.5" +name = "indexmap" +version = "2.9.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "b0fd2260e829bddf4cb6ea802289de2f86d6a7a690192fbe91b3f46e0f2c8473" +checksum = "cea70ddb795996207ad57735b50c5982d8844f38ba9ee5f1aedcfb708a2aa11e" dependencies = [ - "either", + "equivalent", + "hashbrown 0.15.3", ] [[package]] name = "itoa" -version = "1.0.3" +version = "1.0.15" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6c8af84674fe1f223a982c933a0ee1086ac4d4052aa0fb8060c12c6ad838e754" +checksum = "4a5f13b858c8d314ee3e8f639011f7ccefe71f97f96e50151fb991f267928e2c" [[package]] name = "js-sys" -version = "0.3.60" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49409df3e3bf0856b916e2ceaca09ee28e6871cf7d9ce97a692cacfdb2a25a47" +checksum = "1cfaf33c695fc6e08064efbc1f72ec937429614f25eef83af942d0e227c3a28f" dependencies = [ + "once_cell", "wasm-bindgen", ] [[package]] name = "keccak" -version = "0.1.2" +version = "0.1.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f9b7d56ba4a8344d6be9729995e6b06f928af29998cdf79fe390cbf6b1fee838" +checksum = "ecc2af9a1119c51f12a14607e783cb977bde58bc069ff0c3da1095e635d70654" +dependencies = [ + "cpufeatures", +] [[package]] name = "lazy_static" -version = "1.4.0" +version = "1.5.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2abad23fbc42b3700f2f279844dc832adb2b2eb069b2df918f455c4e18cc646" +checksum = "bbd2bcb4c963f2ddae06a2efc7e9f3591312473c50c6685e1f298068316e66fe" [[package]] name = "libc" -version = "0.2.133" +version = "0.2.172" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c0f80d65747a3e43d1596c7c5492d95d5edddaabd45a7fcdb02b95f644164966" +checksum = "d750af042f7ef4f724306de029d18836c26c1765a54a6a3f094cbd23a7267ffa" [[package]] name = "libsecp256k1" @@ -765,14 +761,12 @@ dependencies = [ "arrayref", "base64 0.12.3", "digest 0.9.0", - "hmac-drbg", "libsecp256k1-core", "libsecp256k1-gen-ecmult", "libsecp256k1-gen-genmult", - "rand", + "rand 0.7.3", "serde", - "sha2", - "typenum", + "sha2 0.9.9", ] [[package]] @@ -806,9 +800,9 @@ dependencies = [ [[package]] name = "lock_api" -version = "0.4.9" +version = "0.4.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "435011366fe56583b16cf956f9df0095b405b82d76425bc8981c0e22e60ec4df" +checksum = "07af8b9cdd281b7915f413fa73f29ebd5d55d0d3f0155584dade1ff18cea1b17" dependencies = [ "autocfg", "scopeguard", @@ -816,12 +810,9 @@ dependencies = [ [[package]] name = "log" -version = "0.4.17" +version = "0.4.27" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "abb12e687cfb44aa40f41fc3978ef76448f9b6038cad6aef4259d3c095a2382e" -dependencies = [ - "cfg-if", -] +checksum = "13dc2df351e3202783a1fe0d44375f7295ffb4049267b0f3018346dc122a1d94" [[package]] name = "marinade-cpi" @@ -833,81 +824,101 @@ dependencies = [ [[package]] name = "memchr" -version = "2.5.0" +version = "2.7.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2dffe52ecf27772e601905b7522cb4ef790d2cc203488bbd0e2fe85fcb74566d" +checksum = "78ca9ab1a0babb1e7d5695e3530886289c18cf2f87ec19a575a0abdce112e3a3" [[package]] -name = "memmap2" -version = "0.5.7" +name = "memoffset" +version = "0.9.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "95af15f345b17af2efc8ead6080fb8bc376f8cec1b35277b935637595fe77498" +checksum = "488016bfae457b036d996092f6cb448677611ce4449e970ceaf42695203f218a" dependencies = [ - "libc", + "autocfg", +] + +[[package]] +name = "num-bigint" +version = "0.4.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a5e44f723f1133c9deac646763579fdb3ac745e418f2a7af9cd0c431da1f20b9" +dependencies = [ + "num-integer", + "num-traits", ] [[package]] name = "num-derive" -version = "0.3.3" +version = "0.4.2" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "876a53fff98e03a936a674b29568b0e605f06b29372c2489ff4de23f1949743d" +checksum = "ed3955f1a9c7c0c15e092f9c887db08b1fc683305fdf6eb6684f22555355e202" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.101", +] + +[[package]] +name = "num-integer" +version = "0.1.46" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7969661fd2958a5cb096e56c8e1ad0444ac2bbcd0061bd28660485a44879858f" +dependencies = [ + "num-traits", ] [[package]] name = "num-traits" -version = "0.2.15" +version = "0.2.19" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "578ede34cf02f8924ab9447f50c28075b4d3e5b269972345e7e0372b38c6cdcd" +checksum = "071dfc062690e90b734c0b2273ce72ad0ffa95f0c74596bc250dcfd960262841" dependencies = [ "autocfg", ] [[package]] name = "once_cell" -version = "1.15.0" +version = "1.21.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e82dad04139b71a90c080c8463fe0dc7902db5192d939bd0950f074d014339e1" +checksum = "42f5e15c9953c5e4ccceeb2e7382a716482c34515315f7b03532b8b4e8393d2d" [[package]] name = "opaque-debug" -version = "0.3.0" +version = "0.3.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "624a8340c38c1b80fd549087862da4ba43e08858af025b236e509b6649fc13d5" +checksum = "c08d65885ee38876c4f86fa503fb49d7b507c2b62552df7c70b2fce627e06381" [[package]] name = "parking_lot" -version = "0.11.2" +version = "0.12.3" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "7d17b78036a60663b797adeaee46f5c9dfebb86948d1255007a1d6be0271ff99" +checksum = "f1bf18183cf54e8d6059647fc3063646a1801cf30896933ec2311622cc4b9a27" dependencies = [ - "instant", "lock_api", "parking_lot_core", ] [[package]] name = "parking_lot_core" -version = "0.8.5" +version = "0.9.10" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d76e8e1493bcac0d2766c42737f34458f1c8c50c0d23bcb24ea953affb273216" +checksum = "1e401f977ab385c9e4e3ab30627d6f26d00e2c73eef317493c4ec6d468726cf8" dependencies = [ "cfg-if", - "instant", "libc", "redox_syscall", "smallvec", - "winapi", + "windows-targets", ] [[package]] name = "ppv-lite86" -version = "0.2.16" +version = "0.2.21" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eb9f9e6e233e5c4a35559a617bf40a4ec447db2e84c20b55a6f83167b7e57872" +checksum = "85eae3c4ed2f50dcfe72643da4befc30deadb458a9b590d720cde2f2b1e97da9" +dependencies = [ + "zerocopy", +] [[package]] name = "proc-macro-crate" @@ -919,32 +930,28 @@ dependencies = [ ] [[package]] -name = "proc-macro2" -version = "1.0.78" +name = "proc-macro-crate" +version = "3.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e2422ad645d89c99f8f3e6b88a9fdeca7fabeac836b1002371c4367c8f984aae" +checksum = "edce586971a4dfaa28950c6f18ed55e0406c1ab88bbce2c6f6293a7aaba73d35" dependencies = [ - "unicode-ident", + "toml_edit", ] [[package]] -name = "proc-macro2-diagnostics" -version = "0.9.1" +name = "proc-macro2" +version = "1.0.95" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4bf29726d67464d49fa6224a1d07936a8c08bb3fba727c7493f6cf1616fdaada" +checksum = "02b3e5e68a3a1a02aad3ec490a98007cbc13c37cbe84a3cd7b8e406d76e7f778" dependencies = [ - "proc-macro2", - "quote", - "syn 1.0.109", - "version_check", - "yansi", + "unicode-ident", ] [[package]] name = "quote" -version = "1.0.33" +version = "1.0.40" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5267fca4496028628a95160fc423a33e8b2e6af8a5302579e322e4b520293cae" +checksum = "1885c039570dc00dcb4ff087a89e185fd56bae234ddc7f056a945bf36467248d" dependencies = [ "proc-macro2", ] @@ -957,11 +964,22 @@ checksum = "6a6b1679d49b24bbfe0c803429aa1874472f50d9b363131f0e89fc356b544d03" dependencies = [ "getrandom 0.1.16", "libc", - "rand_chacha", - "rand_core", + "rand_chacha 0.2.2", + "rand_core 0.5.1", "rand_hc", ] +[[package]] +name = "rand" +version = "0.8.5" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "34af8d1a0e25924bc5b7c43c079c942339d8f0a8b57c39049bef581b46327404" +dependencies = [ + "libc", + "rand_chacha 0.3.1", + "rand_core 0.6.4", +] + [[package]] name = "rand_chacha" version = "0.2.2" @@ -969,7 +987,17 @@ source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "f4c8ed856279c9737206bf725bf36935d8666ead7aa69b52be55af369d193402" dependencies = [ "ppv-lite86", - "rand_core", + "rand_core 0.5.1", +] + +[[package]] +name = "rand_chacha" +version = "0.3.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e6c10a63a0fa32252be49d21e7709d4d4baf8d231c2dbce1eaa8141b9b127d88" +dependencies = [ + "ppv-lite86", + "rand_core 0.6.4", ] [[package]] @@ -982,109 +1010,102 @@ dependencies = [ ] [[package]] -name = "rand_hc" -version = "0.2.0" +name = "rand_core" +version = "0.6.4" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" +checksum = "ec0be4795e2f6a28069bec0b5ff3e2ac9bafc99e6a9a7dc3547996c5c816922c" dependencies = [ - "rand_core", + "getrandom 0.2.16", ] [[package]] -name = "redox_syscall" -version = "0.2.16" +name = "rand_hc" +version = "0.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "fb5a58c1855b4b6819d59012155603f0b22ad30cad752600aadfcb695265519a" +checksum = "ca3129af7b92a17112d59ad498c6f81eaf463253766b90396d39ea7a39d6613c" dependencies = [ - "bitflags", + "rand_core 0.5.1", ] [[package]] -name = "regex" -version = "1.6.0" +name = "redox_syscall" +version = "0.5.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c4eb3267174b8c6c2f654116623910a0fef09c4753f8dd83db29c48a0df988b" +checksum = "928fca9cf2aa042393a8325b9ead81d2f0df4cb12e1e24cef072922ccd99c5af" dependencies = [ - "aho-corasick", - "memchr", - "regex-syntax", + "bitflags", ] -[[package]] -name = "regex-syntax" -version = "0.6.27" -source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "a3f87b73ce11b1619a3c6332f45341e0047173771e8b8b73f87bfeefb7b56244" - [[package]] name = "rustc_version" -version = "0.4.0" +version = "0.4.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bfa0f585226d2e68097d4f95d113b15b83a82e819ab25717ec0590d9584ef366" +checksum = "cfcb3a22ef46e85b45de6ee7e79d063319ebb6594faafcf1c225ea92ab6e9b92" dependencies = [ "semver", ] [[package]] name = "rustversion" -version = "1.0.9" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "97477e48b4cf8603ad5f7aaf897467cf42ab4218a38ef76fb14c2d6773a6d6a8" +checksum = "eded382c5f5f786b989652c49544c4877d9f015cc22e145a5ea8ea66c2921cd2" [[package]] name = "ryu" -version = "1.0.11" +version = "1.0.20" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4501abdff3ae82a1c1b477a17252eb69cee9e66eb915c1abaa4f44d873df9f09" +checksum = "28d3b2b1366ec20994f1fd18c3c594f05c5dd4bc44d8bb0c1c632c8d6829481f" [[package]] name = "scopeguard" -version = "1.1.0" +version = "1.2.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d29ab0c6d3fc0ee92fe66e2d99f700eab17a8d57d1c1d3b748380fb20baa78cd" +checksum = "94143f37725109f92c262ed2cf5e59bce7498c01bcc1502d7b9afe439a4e9f49" [[package]] name = "semver" -version = "1.0.14" +version = "1.0.26" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "e25dfac463d778e353db5be2449d1cce89bd6fd23c9f1ea21310ce6e5a1b29c4" +checksum = "56e6fa9c48d24d85fb3de5ad847117517440f6beceb7798af16b4a87d616b8d0" [[package]] name = "serde" -version = "1.0.183" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "32ac8da02677876d532745a130fc9d8e6edfa81a269b107c5b00829b91d8eb3c" +checksum = "5f0e2c6ed6606019b4e29e69dbaba95b11854410e5347d525002456dbbb786b6" dependencies = [ "serde_derive", ] [[package]] name = "serde_bytes" -version = "0.11.7" +version = "0.11.17" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "cfc50e8183eeeb6178dcb167ae34a8051d63535023ae38b5d8d12beae193d37b" +checksum = "8437fd221bde2d4ca316d61b90e337e9e702b3820b87d63caa9ba6c02bd06d96" dependencies = [ "serde", ] [[package]] name = "serde_derive" -version = "1.0.183" +version = "1.0.219" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "aafe972d60b0b9bee71a91b92fee2d4fb3c9d7e8f6b179aa99f27203d99a4816" +checksum = "5b0276cf7f2c73365f7157c8123c21cd9a50fbbd844757af28ca1f5925fc2a00" dependencies = [ "proc-macro2", "quote", - "syn 2.0.29", + "syn 2.0.101", ] [[package]] name = "serde_json" -version = "1.0.108" +version = "1.0.140" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3d1c7e3eac408d115102c4c24ad393e0821bb3a5df4d506a80f85f7a742a526b" +checksum = "20068b6e96dc6c9bd23e01df8827e6c7e1f2fddd43c21810382803c136b99373" dependencies = [ "itoa", + "memchr", "ryu", "serde", ] @@ -1102,121 +1123,831 @@ dependencies = [ "opaque-debug", ] +[[package]] +name = "sha2" +version = "0.10.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a7507d819769d01a365ab707794a4084392c824f54a7a6a7862f8c3d0892b283" +dependencies = [ + "cfg-if", + "cpufeatures", + "digest 0.10.7", +] + [[package]] name = "sha3" -version = "0.9.1" +version = "0.10.8" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f81199417d4e5de3f04b1e871023acea7389672c4135918f05aa9cbf2f2fa809" +checksum = "75872d278a8f37ef87fa0ddbda7802605cb18344497949862c0d4dcb291eba60" dependencies = [ - "block-buffer 0.9.0", - "digest 0.9.0", + "digest 0.10.7", "keccak", - "opaque-debug", ] [[package]] -name = "smallvec" -version = "1.9.0" +name = "shlex" +version = "1.3.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2fd0db749597d91ff862fd1d55ea87f7855a744a8425a64695b6fca237d1dad1" +checksum = "0fda2ff0d084019ba4d7c6f371c95d8fd75ce3524c3cb8fb653a3023f6323e64" [[package]] -name = "solana-frozen-abi" -version = "1.9.29" +name = "smallvec" +version = "1.15.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "2d4fcb89eb3d0f30bd4b4a31ad1825c9d95cd638509acead00969d7601713288" +checksum = "8917285742e9f3e1683f0a9c4e6b57960b7314d0b08d30d1ecd426713ee2eee9" + +[[package]] +name = "solana-account" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f949fe4edaeaea78c844023bfc1c898e0b1f5a100f8a8d2d0f85d0a7b090258" +dependencies = [ + "solana-account-info", + "solana-clock", + "solana-instruction", + "solana-pubkey", + "solana-sdk-ids", +] + +[[package]] +name = "solana-account-info" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "e0c17d606a298a205fae325489fbed88ee6dc4463c111672172327e741c8905d" +dependencies = [ + "bincode", + "serde", + "solana-program-error", + "solana-program-memory", + "solana-pubkey", +] + +[[package]] +name = "solana-address-lookup-table-interface" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1673f67efe870b64a65cb39e6194be5b26527691ce5922909939961a6e6b395" +dependencies = [ + "bincode", + "bytemuck", + "serde", + "serde_derive", + "solana-clock", + "solana-instruction", + "solana-pubkey", + "solana-sdk-ids", + "solana-slot-hashes", +] + +[[package]] +name = "solana-atomic-u64" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d52e52720efe60465b052b9e7445a01c17550666beec855cce66f44766697bc2" +dependencies = [ + "parking_lot", +] + +[[package]] +name = "solana-big-mod-exp" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "75db7f2bbac3e62cfd139065d15bcda9e2428883ba61fc8d27ccb251081e7567" +dependencies = [ + "num-bigint", + "num-traits", + "solana-define-syscall", +] + +[[package]] +name = "solana-bincode" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "19a3787b8cf9c9fe3dd360800e8b70982b9e5a8af9e11c354b6665dd4a003adc" +dependencies = [ + "bincode", + "serde", + "solana-instruction", +] + +[[package]] +name = "solana-blake3-hasher" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "a1a0801e25a1b31a14494fc80882a036be0ffd290efc4c2d640bfcca120a4672" +dependencies = [ + "blake3", + "solana-define-syscall", + "solana-hash", + "solana-sanitize", +] + +[[package]] +name = "solana-borsh" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "718333bcd0a1a7aed6655aa66bef8d7fb047944922b2d3a18f49cbc13e73d004" +dependencies = [ + "borsh 0.10.4", + "borsh 1.5.7", +] + +[[package]] +name = "solana-clock" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "67c2177a1b9fe8326004f1151a5acd124420b737811080b1035df31349e4d892" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids", + "solana-sdk-macro", + "solana-sysvar-id", +] + +[[package]] +name = "solana-cpi" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "8dc71126edddc2ba014622fc32d0f5e2e78ec6c5a1e0eb511b85618c09e9ea11" +dependencies = [ + "solana-account-info", + "solana-define-syscall", + "solana-instruction", + "solana-program-error", + "solana-pubkey", + "solana-stable-layout", +] + +[[package]] +name = "solana-decode-error" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "10a6a6383af236708048f8bd8d03db8ca4ff7baf4a48e5d580f4cce545925470" +dependencies = [ + "num-traits", +] + +[[package]] +name = "solana-define-syscall" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cf784bb2cb3e02cac9801813c30187344228d2ae952534902108f6150573a33d" + +[[package]] +name = "solana-epoch-rewards" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "86b575d3dd323b9ea10bb6fe89bf6bf93e249b215ba8ed7f68f1a3633f384db7" +dependencies = [ + "serde", + "serde_derive", + "solana-hash", + "solana-sdk-ids", + "solana-sdk-macro", + "solana-sysvar-id", +] + +[[package]] +name = "solana-epoch-schedule" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3fce071fbddecc55d727b1d7ed16a629afe4f6e4c217bc8d00af3b785f6f67ed" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids", + "solana-sdk-macro", + "solana-sysvar-id", +] + +[[package]] +name = "solana-example-mocks" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "84461d56cbb8bb8d539347151e0525b53910102e4bced875d49d5139708e39d3" +dependencies = [ + "serde", + "serde_derive", + "solana-address-lookup-table-interface", + "solana-clock", + "solana-hash", + "solana-instruction", + "solana-keccak-hasher", + "solana-message", + "solana-nonce", + "solana-pubkey", + "solana-sdk-ids", + "solana-system-interface", + "thiserror 2.0.12", +] + +[[package]] +name = "solana-feature-gate-interface" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0f9c7fbf3e58b64a667c5f35e90af580538a95daea7001ff7806c0662d301bdf" +dependencies = [ + "bincode", + "serde", + "serde_derive", + "solana-account", + "solana-account-info", + "solana-instruction", + "solana-program-error", + "solana-pubkey", + "solana-rent", + "solana-sdk-ids", + "solana-system-interface", +] + +[[package]] +name = "solana-fee-calculator" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d89bc408da0fb3812bc3008189d148b4d3e08252c79ad810b245482a3f70cd8d" dependencies = [ - "bs58 0.4.0", - "bv", - "generic-array", "log", - "memmap2", - "rustc_version", "serde", "serde_derive", - "sha2", - "solana-frozen-abi-macro", - "solana-logger", - "thiserror", ] [[package]] -name = "solana-frozen-abi-macro" -version = "1.9.29" +name = "solana-hash" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "d63ab101db88ecccd8da34065b9097b88367e0744fdfd05cb7de87b4ede3717f" +checksum = "cf7bcb14392900fe02e4e34e90234fbf0c673d4e327888410ba99fa2ba0f4e99" dependencies = [ - "proc-macro2", - "quote", - "rustc_version", - "syn 1.0.109", + "borsh 1.5.7", + "bs58", + "bytemuck", + "bytemuck_derive", + "js-sys", + "serde", + "serde_derive", + "solana-atomic-u64", + "solana-sanitize", + "wasm-bindgen", +] + +[[package]] +name = "solana-instruction" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9ce496a475e5062ba5de97215ab39d9c358f9c9df4bb7f3a45a1f1a8bd9065ed" +dependencies = [ + "bincode", + "borsh 1.5.7", + "getrandom 0.2.16", + "js-sys", + "num-traits", + "serde", + "serde_derive", + "solana-define-syscall", + "solana-pubkey", + "wasm-bindgen", ] [[package]] -name = "solana-logger" -version = "1.9.29" +name = "solana-instructions-sysvar" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "9ce1805d52fc8277a84c4803c7850c8f41471b57fb0dec7750338955ad6e43e2" +checksum = "427f2d0d6dc0bb49f16cef5e7f975180d2e80aab9bdd3b2af68e2d029ec63f43" dependencies = [ - "env_logger", + "bitflags", + "solana-account-info", + "solana-instruction", + "solana-program-error", + "solana-pubkey", + "solana-sanitize", + "solana-sdk-ids", + "solana-serialize-utils", + "solana-sysvar-id", +] + +[[package]] +name = "solana-keccak-hasher" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c7aeb957fbd42a451b99235df4942d96db7ef678e8d5061ef34c9b34cae12f79" +dependencies = [ + "sha3", + "solana-define-syscall", + "solana-hash", + "solana-sanitize", +] + +[[package]] +name = "solana-last-restart-slot" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "4a6360ac2fdc72e7463565cd256eedcf10d7ef0c28a1249d261ec168c1b55cdd" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids", + "solana-sdk-macro", + "solana-sysvar-id", +] + +[[package]] +name = "solana-loader-v2-interface" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8ab08006dad78ae7cd30df8eea0539e207d08d91eaefb3e1d49a446e1c49654" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction", + "solana-pubkey", + "solana-sdk-ids", +] + +[[package]] +name = "solana-loader-v3-interface" +version = "3.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "fa4be76cfa9afd84ca2f35ebc09f0da0f0092935ccdac0595d98447f259538c2" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction", + "solana-pubkey", + "solana-sdk-ids", + "solana-system-interface", +] + +[[package]] +name = "solana-loader-v4-interface" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "706a777242f1f39a83e2a96a2a6cb034cb41169c6ecbee2cf09cb873d9659e7e" +dependencies = [ + "serde", + "serde_bytes", + "serde_derive", + "solana-instruction", + "solana-pubkey", + "solana-sdk-ids", + "solana-system-interface", +] + +[[package]] +name = "solana-message" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9c6bf99c4570173710107a1f233f3bee226feea5fc817308707d4f7cb100a72d" +dependencies = [ + "bincode", + "blake3", "lazy_static", - "log", + "serde", + "serde_derive", + "solana-bincode", + "solana-hash", + "solana-instruction", + "solana-pubkey", + "solana-sanitize", + "solana-sdk-ids", + "solana-short-vec", + "solana-system-interface", + "solana-transaction-error", + "wasm-bindgen", +] + +[[package]] +name = "solana-msg" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "f36a1a14399afaabc2781a1db09cb14ee4cc4ee5c7a5a3cfcc601811379a8092" +dependencies = [ + "solana-define-syscall", +] + +[[package]] +name = "solana-native-token" +version = "2.2.2" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "307fb2f78060995979e9b4f68f833623565ed4e55d3725f100454ce78a99a1a3" + +[[package]] +name = "solana-nonce" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "703e22eb185537e06204a5bd9d509b948f0066f2d1d814a6f475dafb3ddf1325" +dependencies = [ + "serde", + "serde_derive", + "solana-fee-calculator", + "solana-hash", + "solana-pubkey", + "solana-sha256-hasher", ] [[package]] name = "solana-program" -version = "1.9.29" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "f5deafc4902425d40197f74166640300dd20b078e4ffd518c1bb56ceb7e01680" +checksum = "586469467e93ceb79048f8d8e3a619bf61d05396ee7de95cb40280301a589d05" dependencies = [ - "base64 0.13.0", "bincode", - "bitflags", "blake3", - "borsh", - "borsh-derive", - "bs58 0.4.0", - "bv", + "borsh 0.10.4", + "borsh 1.5.7", + "bs58", "bytemuck", "console_error_panic_hook", "console_log", - "curve25519-dalek", - "getrandom 0.1.16", - "itertools", - "js-sys", + "getrandom 0.2.16", "lazy_static", - "libsecp256k1", "log", + "memoffset", + "num-bigint", "num-derive", "num-traits", - "parking_lot", - "rand", - "rustc_version", - "rustversion", + "rand 0.8.5", "serde", "serde_bytes", "serde_derive", - "sha2", - "sha3", - "solana-frozen-abi", - "solana-frozen-abi-macro", - "solana-logger", + "solana-account-info", + "solana-address-lookup-table-interface", + "solana-atomic-u64", + "solana-big-mod-exp", + "solana-bincode", + "solana-blake3-hasher", + "solana-borsh", + "solana-clock", + "solana-cpi", + "solana-decode-error", + "solana-define-syscall", + "solana-epoch-rewards", + "solana-epoch-schedule", + "solana-example-mocks", + "solana-feature-gate-interface", + "solana-fee-calculator", + "solana-hash", + "solana-instruction", + "solana-instructions-sysvar", + "solana-keccak-hasher", + "solana-last-restart-slot", + "solana-loader-v2-interface", + "solana-loader-v3-interface", + "solana-loader-v4-interface", + "solana-message", + "solana-msg", + "solana-native-token", + "solana-nonce", + "solana-program-entrypoint", + "solana-program-error", + "solana-program-memory", + "solana-program-option", + "solana-program-pack", + "solana-pubkey", + "solana-rent", + "solana-sanitize", + "solana-sdk-ids", "solana-sdk-macro", - "thiserror", + "solana-secp256k1-recover", + "solana-serde-varint", + "solana-serialize-utils", + "solana-sha256-hasher", + "solana-short-vec", + "solana-slot-hashes", + "solana-slot-history", + "solana-stable-layout", + "solana-stake-interface", + "solana-system-interface", + "solana-sysvar", + "solana-sysvar-id", + "solana-vote-interface", + "thiserror 2.0.12", "wasm-bindgen", ] +[[package]] +name = "solana-program-entrypoint" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "473ffe73c68d93e9f2aa726ad2985fe52760052709aaab188100a42c618060ec" +dependencies = [ + "solana-account-info", + "solana-msg", + "solana-program-error", + "solana-pubkey", +] + +[[package]] +name = "solana-program-error" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d8ae2c1a8d0d4ae865882d5770a7ebca92bab9c685e43f0461682c6c05a35bfa" +dependencies = [ + "borsh 1.5.7", + "num-traits", + "serde", + "serde_derive", + "solana-decode-error", + "solana-instruction", + "solana-msg", + "solana-pubkey", +] + +[[package]] +name = "solana-program-memory" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1b0268f6c89825fb634a34bd0c3b8fdaeaecfc3728be1d622a8ee6dd577b60d4" +dependencies = [ + "num-traits", + "solana-define-syscall", +] + +[[package]] +name = "solana-program-option" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "dc677a2e9bc616eda6dbdab834d463372b92848b2bfe4a1ed4e4b4adba3397d0" + +[[package]] +name = "solana-program-pack" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "319f0ef15e6e12dc37c597faccb7d62525a509fec5f6975ecb9419efddeb277b" +dependencies = [ + "solana-program-error", +] + +[[package]] +name = "solana-pubkey" +version = "2.3.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "cad77cf9f30b971a1eec48dde6a863dcac60ba005a34dfde23736afa5c7ac667" +dependencies = [ + "borsh 0.10.4", + "borsh 1.5.7", + "bs58", + "bytemuck", + "bytemuck_derive", + "curve25519-dalek", + "five8_const", + "getrandom 0.2.16", + "js-sys", + "num-traits", + "serde", + "serde_derive", + "solana-atomic-u64", + "solana-decode-error", + "solana-define-syscall", + "solana-sanitize", + "solana-sha256-hasher", + "wasm-bindgen", +] + +[[package]] +name = "solana-rent" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "d1aea8fdea9de98ca6e8c2da5827707fb3842833521b528a713810ca685d2480" +dependencies = [ + "serde", + "serde_derive", + "solana-sdk-ids", + "solana-sdk-macro", + "solana-sysvar-id", +] + +[[package]] +name = "solana-sanitize" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "61f1bc1357b8188d9c4a3af3fc55276e56987265eb7ad073ae6f8180ee54cecf" + +[[package]] +name = "solana-sdk-ids" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c5d8b9cc68d5c88b062a33e23a6466722467dde0035152d8fb1afbcdf350a5f" +dependencies = [ + "solana-pubkey", +] + [[package]] name = "solana-sdk-macro" -version = "1.9.29" +version = "2.2.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "3db4c93bd43c91290ad54fe6ff86179a859954f196507c4789a4876d38a62f17" +checksum = "86280da8b99d03560f6ab5aca9de2e38805681df34e0bb8f238e69b29433b9df" dependencies = [ - "bs58 0.4.0", + "bs58", "proc-macro2", "quote", - "rustversion", - "syn 1.0.109", + "syn 2.0.101", +] + +[[package]] +name = "solana-secp256k1-recover" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "baa3120b6cdaa270f39444f5093a90a7b03d296d362878f7a6991d6de3bbe496" +dependencies = [ + "libsecp256k1", + "solana-define-syscall", + "thiserror 2.0.12", +] + +[[package]] +name = "solana-serde-varint" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bcc07d00200d82e6def2f7f7a45738e3406b17fe54a18adcf0defa16a97ccadb" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-serialize-utils" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "817a284b63197d2b27afdba829c5ab34231da4a9b4e763466a003c40ca4f535e" +dependencies = [ + "solana-instruction", + "solana-pubkey", + "solana-sanitize", +] + +[[package]] +name = "solana-sha256-hasher" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0037386961c0d633421f53560ad7c80675c0447cba4d1bb66d60974dd486c7ea" +dependencies = [ + "sha2 0.10.9", + "solana-define-syscall", + "solana-hash", +] + +[[package]] +name = "solana-short-vec" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5c54c66f19b9766a56fa0057d060de8378676cb64987533fa088861858fc5a69" +dependencies = [ + "serde", +] + +[[package]] +name = "solana-slot-hashes" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0c8691982114513763e88d04094c9caa0376b867a29577939011331134c301ce" +dependencies = [ + "serde", + "serde_derive", + "solana-hash", + "solana-sdk-ids", + "solana-sysvar-id", +] + +[[package]] +name = "solana-slot-history" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "97ccc1b2067ca22754d5283afb2b0126d61eae734fc616d23871b0943b0d935e" +dependencies = [ + "bv", + "serde", + "serde_derive", + "solana-sdk-ids", + "solana-sysvar-id", +] + +[[package]] +name = "solana-stable-layout" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "9f14f7d02af8f2bc1b5efeeae71bc1c2b7f0f65cd75bcc7d8180f2c762a57f54" +dependencies = [ + "solana-instruction", + "solana-pubkey", +] + +[[package]] +name = "solana-stake-interface" +version = "1.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5269e89fde216b4d7e1d1739cf5303f8398a1ff372a81232abbee80e554a838c" +dependencies = [ + "borsh 0.10.4", + "borsh 1.5.7", + "num-traits", + "serde", + "serde_derive", + "solana-clock", + "solana-cpi", + "solana-decode-error", + "solana-instruction", + "solana-program-error", + "solana-pubkey", + "solana-system-interface", + "solana-sysvar-id", +] + +[[package]] +name = "solana-system-interface" +version = "1.0.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "94d7c18cb1a91c6be5f5a8ac9276a1d7c737e39a21beba9ea710ab4b9c63bc90" +dependencies = [ + "js-sys", + "num-traits", + "serde", + "serde_derive", + "solana-decode-error", + "solana-instruction", + "solana-pubkey", + "wasm-bindgen", +] + +[[package]] +name = "solana-sysvar" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "bf6b44740d7f0c9f375d045c165bc0aab4a90658f92d6835aeb0649afaeaff9a" +dependencies = [ + "base64 0.22.1", + "bincode", + "bytemuck", + "bytemuck_derive", + "lazy_static", + "serde", + "serde_derive", + "solana-account-info", + "solana-clock", + "solana-define-syscall", + "solana-epoch-rewards", + "solana-epoch-schedule", + "solana-fee-calculator", + "solana-hash", + "solana-instruction", + "solana-instructions-sysvar", + "solana-last-restart-slot", + "solana-program-entrypoint", + "solana-program-error", + "solana-program-memory", + "solana-pubkey", + "solana-rent", + "solana-sanitize", + "solana-sdk-ids", + "solana-sdk-macro", + "solana-slot-hashes", + "solana-slot-history", + "solana-stake-interface", + "solana-sysvar-id", +] + +[[package]] +name = "solana-sysvar-id" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "5762b273d3325b047cfda250787f8d796d781746860d5d0a746ee29f3e8812c1" +dependencies = [ + "solana-pubkey", + "solana-sdk-ids", +] + +[[package]] +name = "solana-transaction-error" +version = "2.2.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "222a9dc8fdb61c6088baab34fc3a8b8473a03a7a5fd404ed8dd502fa79b67cb1" +dependencies = [ + "solana-instruction", + "solana-sanitize", +] + +[[package]] +name = "solana-vote-interface" +version = "2.2.4" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "78f039b0788337bedc6c5450d2f237718f938defb5ce0e0ad8ef507e78dcd370" +dependencies = [ + "bincode", + "num-derive", + "num-traits", + "serde", + "serde_derive", + "solana-clock", + "solana-decode-error", + "solana-hash", + "solana-instruction", + "solana-pubkey", + "solana-rent", + "solana-sdk-ids", + "solana-serde-varint", + "solana-serialize-utils", + "solana-short-vec", + "solana-system-interface", ] [[package]] @@ -1227,9 +1958,9 @@ checksum = "73473c0e59e6d5812c5dfe2a064a6444949f089e20eec9a2e5506596494e4623" [[package]] name = "subtle" -version = "2.4.1" +version = "2.6.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "6bdef32e8150c2a081110b42772ffe7d7c9032b606bc226c8260fd97e0976601" +checksum = "13c2bddecc57b384dee18652358fb23172facb8a2c51ccc10d74c157bdea3292" [[package]] name = "syn" @@ -1244,9 +1975,9 @@ dependencies = [ [[package]] name = "syn" -version = "2.0.29" +version = "2.0.101" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "c324c494eba9d92503e6f1ef2e6df781e78f6a7705a0202d9801b198807d518a" +checksum = "8ce2b7fc941b3a24138a0a7cf8e858bfc6a992e7978a068a5c760deb0ed43caf" dependencies = [ "proc-macro2", "quote", @@ -1254,66 +1985,109 @@ dependencies = [ ] [[package]] -name = "termcolor" -version = "1.1.3" +name = "thiserror" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bab24d30b911b2376f3a13cc2cd443142f0c81dda04c118693e35b3835757755" +checksum = "b6aaf5339b578ea85b50e080feb250a3e8ae8cfcdff9a461c9ec2904bc923f52" dependencies = [ - "winapi-util", + "thiserror-impl 1.0.69", ] [[package]] name = "thiserror" -version = "1.0.37" +version = "2.0.12" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "10deb33631e3c9018b9baf9dcbbc4f737320d2b576bac10f6aefa048fa407e3e" +checksum = "567b8a2dae586314f7be2a752ec7474332959c6460e02bde30d702a66d488708" dependencies = [ - "thiserror-impl", + "thiserror-impl 2.0.12", ] [[package]] name = "thiserror-impl" -version = "1.0.37" +version = "1.0.69" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "982d17546b47146b28f7c22e3d08465f6b8903d0ea13c1660d9d84a6e7adcdbb" +checksum = "4fee6c4efc90059e10f81e6d42c60a18f76588c3d74cb83a0b242a2b6c7504c1" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.101", +] + +[[package]] +name = "thiserror-impl" +version = "2.0.12" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "7f7cf42b4507d8ea322120659672cf1b9dbb93f8f2d4ecfd6e51350ff5b17a1d" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] + +[[package]] +name = "tinyvec" +version = "1.9.0" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09b3661f17e86524eccd4371ab0429194e0d7c008abb45f7a7495b1719463c71" +dependencies = [ + "tinyvec_macros", ] +[[package]] +name = "tinyvec_macros" +version = "0.1.1" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "1f3ccbac311fea05f86f61904b462b55fb3df8837a366dfc601a0161d0532f20" + [[package]] name = "toml" -version = "0.5.9" +version = "0.5.11" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "8d82e1a7758622a465f8cee077614c73484dac5b836c02ff6a40d5d1010324d7" +checksum = "f4f7f0dd8d50a853a531c426359045b1998f04219d88799810762cd4ad314234" dependencies = [ "serde", ] +[[package]] +name = "toml_datetime" +version = "0.6.9" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "3da5db5a963e24bc68be8b17b6fa82814bb22ee8660f192bb182771d498f09a3" + +[[package]] +name = "toml_edit" +version = "0.22.26" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "310068873db2c5b3e7659d2cc35d21855dbafa50d1ce336397c666e3cb08137e" +dependencies = [ + "indexmap", + "toml_datetime", + "winnow", +] + [[package]] name = "typenum" -version = "1.15.0" +version = "1.18.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcf81ac59edc17cc8697ff311e8f5ef2d99fcbd9817b34cec66f90b6c3dfd987" +checksum = "1dccffe3ce07af9386bfd29e80c0ab1a8205a2fc34e4bcd40364df902cfa8f3f" [[package]] name = "unicode-ident" -version = "1.0.4" +version = "1.0.18" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "dcc811dc4066ac62f84f11307873c4850cb653bfa9b1719cee2bd2204a4bc5dd" +checksum = "5a5f39404a5da50712a4c1eecf25e90dd62b613502b7e925fd4e4d19b5c96512" [[package]] name = "unicode-segmentation" -version = "1.10.0" +version = "1.12.0" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "0fdbf052a0783de01e944a6ce7a8cb939e295b1e7be835a1112c3b9a7f047a5a" +checksum = "f6ccf251212114b54433ec949fd6a7841275f9ada20dddd2f29e9ceea4501493" [[package]] name = "version_check" -version = "0.9.4" +version = "0.9.5" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "49874b5167b65d7193b8aba1567f5c7d93d001cafc34600cee003eda787e483f" +checksum = "0b928f33d975fc6ad9f86c8f283853ad26bdd5b10b7f1542aa2fa15e2289105a" [[package]] name = "wasi" @@ -1329,34 +2103,35 @@ checksum = "9c8d87e72b64a3b4db28d11ce29237c246188f4f51057d65a7eab63b7987e423" [[package]] name = "wasm-bindgen" -version = "0.2.83" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "eaf9f5aceeec8be17c128b2e93e031fb8a4d469bb9c4ae2d7dc1888b26887268" +checksum = "1edc8929d7499fc4e8f0be2262a241556cfc54a0bea223790e71446f2aab1ef5" dependencies = [ "cfg-if", + "once_cell", + "rustversion", "wasm-bindgen-macro", ] [[package]] name = "wasm-bindgen-backend" -version = "0.2.83" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4c8ffb332579b0557b52d268b91feab8df3615f265d5270fec2a8c95b17c1142" +checksum = "2f0a0651a5c2bc21487bde11ee802ccaf4c51935d0d3d42a6101f98161700bc6" dependencies = [ "bumpalo", "log", - "once_cell", "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.101", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-macro" -version = "0.2.83" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "052be0f94026e6cbc75cdefc9bae13fd6052cdcaf532fa6c45e7ae33a1e6c810" +checksum = "7fe63fc6d09ed3792bd0897b314f53de8e16568c2b3f7982f468c0bf9bd0b407" dependencies = [ "quote", "wasm-bindgen-macro-support", @@ -1364,28 +2139,31 @@ dependencies = [ [[package]] name = "wasm-bindgen-macro-support" -version = "0.2.83" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "07bc0c051dc5f23e307b13285f9d75df86bfdf816c5721e573dec1f9b8aa193c" +checksum = "8ae87ea40c9f689fc23f209965b6fb8a99ad69aeeb0231408be24920604395de" dependencies = [ "proc-macro2", "quote", - "syn 1.0.109", + "syn 2.0.101", "wasm-bindgen-backend", "wasm-bindgen-shared", ] [[package]] name = "wasm-bindgen-shared" -version = "0.2.83" +version = "0.2.100" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "1c38c045535d93ec4f0b4defec448e4291638ee608530863b1e2ba115d4fff7f" +checksum = "1a05d73b933a847d6cccdda8f838a22ff101ad9bf93e33684f39c1f5f0eece3d" +dependencies = [ + "unicode-ident", +] [[package]] name = "web-sys" -version = "0.3.60" +version = "0.3.77" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "bcda906d8be16e728fd5adc5b729afad4e444e106ab28cd1c7256e54fa61510f" +checksum = "33b6dd2ef9186f1f2072e409e99cd22a975331a6b3591b12c764e0e55c60d5d2" dependencies = [ "js-sys", "wasm-bindgen", @@ -1397,47 +2175,104 @@ version = "0.3.0" dependencies = [ "anchor-gen", "anchor-lang", + "bytemuck", ] [[package]] -name = "winapi" -version = "0.3.9" +name = "windows-targets" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "5c839a674fcd7a98952e593242ea400abe93992746761e38641405d28b00f419" +checksum = "9b724f72796e036ab90c1021d4780d4d3d648aca59e491e6b98e725b84e99973" dependencies = [ - "winapi-i686-pc-windows-gnu", - "winapi-x86_64-pc-windows-gnu", + "windows_aarch64_gnullvm", + "windows_aarch64_msvc", + "windows_i686_gnu", + "windows_i686_gnullvm", + "windows_i686_msvc", + "windows_x86_64_gnu", + "windows_x86_64_gnullvm", + "windows_x86_64_msvc", ] [[package]] -name = "winapi-i686-pc-windows-gnu" -version = "0.4.0" +name = "windows_aarch64_gnullvm" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "ac3b87c63620426dd9b991e5ce0329eff545bccbbb34f3be09ff6fb6ab51b7b6" +checksum = "32a4622180e7a0ec044bb555404c800bc9fd9ec262ec147edd5989ccd0c02cd3" [[package]] -name = "winapi-util" -version = "0.1.5" +name = "windows_aarch64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "09ec2a7bb152e2252b53fa7803150007879548bc709c039df7627cabbd05d469" + +[[package]] +name = "windows_i686_gnu" +version = "0.52.6" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "70ec6ce85bb158151cae5e5c87f95a8e97d2c0c4b001223f33a334e3ce5de178" +checksum = "8e9b5ad5ab802e97eb8e295ac6720e509ee4c243f69d781394014ebfe8bbfa0b" + +[[package]] +name = "windows_i686_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "0eee52d38c090b3caa76c563b86c3a4bd71ef1a819287c19d586d7334ae8ed66" + +[[package]] +name = "windows_i686_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "240948bc05c5e7c6dabba28bf89d89ffce3e303022809e73deaefe4f6ec56c66" + +[[package]] +name = "windows_x86_64_gnu" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "147a5c80aabfbf0c7d901cb5895d1de30ef2907eb21fbbab29ca94c5b08b1a78" + +[[package]] +name = "windows_x86_64_gnullvm" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "24d5b23dc417412679681396f2b49f3de8c1473deb516bd34410872eff51ed0d" + +[[package]] +name = "windows_x86_64_msvc" +version = "0.52.6" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "589f6da84c646204747d1270a2a5661ea66ed1cced2631d546fdfb155959f9ec" + +[[package]] +name = "winnow" +version = "0.7.10" +source = "registry+https://github.com/rust-lang/crates.io-index" +checksum = "c06928c8748d81b05c9be96aad92e1b6ff01833332f281e8cfca3be4b35fc9ec" dependencies = [ - "winapi", + "memchr", ] [[package]] -name = "winapi-x86_64-pc-windows-gnu" -version = "0.4.0" +name = "zerocopy" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "712e227841d057c1ee1cd2fb22fa7e5a5461ae8e48fa2ca79ec42cfc1931183f" +checksum = "a1702d9583232ddb9174e01bb7c15a2ab8fb1bc6f227aa1233858c351a3ba0cb" +dependencies = [ + "zerocopy-derive", +] [[package]] -name = "yansi" -version = "0.5.1" +name = "zerocopy-derive" +version = "0.8.25" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "09041cd90cf85f7f8b2df60c646f853b7f535ce68f85244eb6731cf89fa498ec" +checksum = "28a6e20d751156648aa063f3800b706ee209a32c0b4d9f24be3d980b01be55ef" +dependencies = [ + "proc-macro2", + "quote", + "syn 2.0.101", +] [[package]] name = "zeroize" -version = "1.3.0" +version = "1.8.1" source = "registry+https://github.com/rust-lang/crates.io-index" -checksum = "4756f7db3f7b5574938c3eb1c117038b8e07f95ee6718c0efad4ac21508f1efd" +checksum = "ced3678a2879b30306d323f4542626697a464a97c0a07c9aebf7ebca65cd4dde" diff --git a/Cargo.toml b/Cargo.toml index c79c053..b01bb80 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,2 +1,3 @@ [workspace] members = ["crates/*", "examples/*"] +resolver = "2" diff --git a/crates/anchor-generate-cpi-crate/Cargo.toml b/crates/anchor-generate-cpi-crate/Cargo.toml index 6a2644f..0c0c434 100644 --- a/crates/anchor-generate-cpi-crate/Cargo.toml +++ b/crates/anchor-generate-cpi-crate/Cargo.toml @@ -22,4 +22,4 @@ anchor-idl = { version = "0.3.0", path = "../anchor-idl" } syn = { version = "1", features = ["full"] } [dev-dependencies] -anchor-lang = "0.24.2" +anchor-lang = "0.31.1" diff --git a/crates/anchor-generate-cpi-crate/src/lib.rs b/crates/anchor-generate-cpi-crate/src/lib.rs index 928ccc2..1cf76d5 100644 --- a/crates/anchor-generate-cpi-crate/src/lib.rs +++ b/crates/anchor-generate-cpi-crate/src/lib.rs @@ -27,7 +27,6 @@ use syn::{parse_macro_input, LitStr}; /// /// ``` /// anchor_generate_cpi_crate::generate_cpi_crate!("../../examples/govern-cpi/idl.json"); -/// declare_id!("GjphYQcbP1m3FuDyCTUJf2mUMxKPE3j6feWU1rxvC7Ps"); /// # fn main() -> Result<()> { /// let _my_governor = GovernanceParameters { /// quorum_votes: 0, diff --git a/crates/anchor-generate-cpi-interface/Cargo.toml b/crates/anchor-generate-cpi-interface/Cargo.toml index b2f8725..11b158a 100644 --- a/crates/anchor-generate-cpi-interface/Cargo.toml +++ b/crates/anchor-generate-cpi-interface/Cargo.toml @@ -23,4 +23,4 @@ darling = "0.14" syn = { version = "1", features = ["full"] } [dev-dependencies] -anchor-lang = "0.24.2" +anchor-lang = "0.31.1" diff --git a/crates/anchor-idl/Cargo.toml b/crates/anchor-idl/Cargo.toml index 473d796..4d0bc32 100644 --- a/crates/anchor-idl/Cargo.toml +++ b/crates/anchor-idl/Cargo.toml @@ -12,7 +12,7 @@ keywords = ["solana", "anchor"] compat-program-result = [] [dependencies] -anchor-syn = { version = "0.24.2", features = ["idl"] } +anchor-lang-idl-spec = "0.1.0" darling = "0.14" heck = "0.4.1" proc-macro2 = "1" @@ -21,4 +21,4 @@ serde_json = "1.0.108" syn = { version = "1", features = ["full"] } [dev-dependencies] -anchor-lang = "0.24.2" +anchor-lang = "0.31.1" diff --git a/crates/anchor-idl/src/account.rs b/crates/anchor-idl/src/account.rs index 9ec8ecf..182d8ad 100644 --- a/crates/anchor-idl/src/account.rs +++ b/crates/anchor-idl/src/account.rs @@ -1,4 +1,4 @@ -pub use anchor_syn::idl::*; +pub use anchor_lang_idl_spec::*; use heck::{ToPascalCase, ToSnakeCase}; use proc_macro2::TokenStream; use quote::{format_ident, quote}; @@ -6,20 +6,20 @@ use quote::{format_ident, quote}; /// Generates a list of [IdlAccountItem]s as a [TokenStream]. pub fn generate_account_fields( name: &str, - accounts: &[IdlAccountItem], + accounts: &[IdlInstructionAccountItem], ) -> (TokenStream, TokenStream) { let mut all_structs: Vec = vec![]; let all_fields = accounts .iter() .map(|account| match account { - anchor_syn::idl::IdlAccountItem::IdlAccount(info) => { + IdlInstructionAccountItem::Single(info) => { let acc_name = format_ident!("{}", info.name.to_snake_case()); - let annotation = if info.is_mut { + let annotation = if info.writable { quote! { #[account(mut)] } } else { quote! {} }; - let ty = if info.is_signer { + let ty = if info.signer { quote! { Signer<'info> } } else { quote! { AccountInfo<'info> } @@ -29,7 +29,7 @@ pub fn generate_account_fields( pub #acc_name: #ty } } - anchor_syn::idl::IdlAccountItem::IdlAccounts(inner) => { + IdlInstructionAccountItem::Composite(inner) => { let field_name = format_ident!("{}{}", name, inner.name.to_snake_case()); let sub_name = format!("{}{}", name, inner.name.to_pascal_case()); let sub_ident = format_ident!("{}", &sub_name); diff --git a/crates/anchor-idl/src/fields.rs b/crates/anchor-idl/src/fields.rs new file mode 100644 index 0000000..e2bdc1a --- /dev/null +++ b/crates/anchor-idl/src/fields.rs @@ -0,0 +1,39 @@ +use anchor_lang_idl_spec::{IdlDefinedFields, IdlField}; +use heck::ToSnakeCase; +use proc_macro2::TokenStream; +use quote::{format_ident, quote}; + +/// Generates struct fields from a list of [IdlField]s. +pub fn generate_struct_fields_from_slice(fields: &[IdlField]) -> TokenStream { + let fields_rendered = fields.iter().map(|arg| { + let name = format_ident!("{}", arg.name.to_snake_case()); + let type_name = crate::ty_to_rust_type(&arg.ty); + let stream: proc_macro2::TokenStream = type_name.parse().unwrap(); + quote! { + pub #name: #stream + } + }); + quote! { + #(#fields_rendered),* + } +} + +pub fn get_idl_defined_fields_as_slice(fields: &Option) -> &[IdlField] { + match fields { + Some(IdlDefinedFields::Named(fields)) => fields, + None => &[], + _ => todo!(), + } +} + +/// Generates struct fields from a list of [IdlField]s. +pub fn generate_struct_fields(fields: &Option) -> TokenStream { + if let Some(fields) = fields { + match fields { + IdlDefinedFields::Named(fields) => generate_struct_fields_from_slice(fields), + IdlDefinedFields::Tuple(_) => todo!(), + } + } else { + quote! {} + } +} diff --git a/crates/anchor-idl/src/instruction.rs b/crates/anchor-idl/src/instruction.rs index 3302edf..31fd766 100644 --- a/crates/anchor-idl/src/instruction.rs +++ b/crates/anchor-idl/src/instruction.rs @@ -1,4 +1,4 @@ -use anchor_syn::idl::IdlInstruction; +use anchor_lang_idl_spec::IdlInstruction; use heck::{ToPascalCase, ToSnakeCase}; use proc_macro2::TokenStream; use quote::{format_ident, quote}; @@ -6,7 +6,7 @@ use quote::{format_ident, quote}; /// Generates a single instruction handler. pub fn generate_ix_handler(ix: &IdlInstruction) -> TokenStream { let ix_name = format_ident!("{}", ix.name.to_snake_case()); - let accounts_name = format_ident!("{}", ix.name.to_pascal_case()); + let accounts_name = format_ident!("{}Instruction", ix.name.to_pascal_case()); let args = ix .args @@ -45,7 +45,7 @@ pub fn generate_ix_handler(ix: &IdlInstruction) -> TokenStream { /// Generates instruction context structs. pub fn generate_ix_structs(ixs: &[IdlInstruction]) -> TokenStream { let defs = ixs.iter().map(|ix| { - let accounts_name = format_ident!("{}", ix.name.to_pascal_case()); + let accounts_name = format_ident!("{}Instruction", ix.name.to_pascal_case()); let (all_structs, all_fields) = crate::generate_account_fields(&ix.name.to_pascal_case(), &ix.accounts); diff --git a/crates/anchor-idl/src/lib.rs b/crates/anchor-idl/src/lib.rs index 2e09c6a..bc049d2 100644 --- a/crates/anchor-idl/src/lib.rs +++ b/crates/anchor-idl/src/lib.rs @@ -1,8 +1,9 @@ //! Generates Rust code from an Anchor IDL. -pub use anchor_syn::idl::*; +pub use anchor_lang_idl_spec::*; mod account; +mod fields; mod instruction; mod program; mod state; @@ -35,10 +36,21 @@ pub fn ty_to_rust_type(ty: &IdlType) -> String { IdlType::I128 => "i128".to_string(), IdlType::Bytes => "Vec".to_string(), IdlType::String => "String".to_string(), - IdlType::PublicKey => "Pubkey".to_string(), + IdlType::Pubkey => "Pubkey".to_string(), IdlType::Option(inner) => format!("Option<{}>", ty_to_rust_type(inner)), IdlType::Vec(inner) => format!("Vec<{}>", ty_to_rust_type(inner)), - IdlType::Array(ty, size) => format!("[{}; {}]", ty_to_rust_type(ty), size), - IdlType::Defined(name) => name.to_string(), + IdlType::Array(ty, size) => match size { + IdlArrayLen::Generic(name) => { + format!("[{}; {}]", ty_to_rust_type(ty), *name) + } + IdlArrayLen::Value(size) => { + format!("[{}; {}]", ty_to_rust_type(ty), *size) + } + }, + IdlType::Defined { name, generics: _ } => name.to_string(), + IdlType::U256 => todo!(), + IdlType::I256 => todo!(), + IdlType::Generic(_) => todo!(), + _ => todo!(), } } diff --git a/crates/anchor-idl/src/program.rs b/crates/anchor-idl/src/program.rs index 82b41a9..19a40b1 100644 --- a/crates/anchor-idl/src/program.rs +++ b/crates/anchor-idl/src/program.rs @@ -36,7 +36,7 @@ impl GeneratorOptions { let cargo_manifest_dir = env::var("CARGO_MANIFEST_DIR").unwrap(); let path = PathBuf::from(cargo_manifest_dir).join(&self.idl_path); let idl_contents = fs::read_to_string(&path).unwrap(); - let idl: anchor_syn::idl::Idl = serde_json::from_str(&idl_contents).unwrap(); + let idl: anchor_lang_idl_spec::Idl = serde_json::from_str(&idl_contents).unwrap(); let zero_copy = path_list_to_string(self.zero_copy.as_ref()); let packed = path_list_to_string(self.packed.as_ref()); @@ -64,14 +64,14 @@ pub struct StructOpts { } pub struct Generator { - pub idl: anchor_syn::idl::Idl, + pub idl: anchor_lang_idl_spec::Idl, pub struct_opts: BTreeMap, } impl Generator { pub fn generate_cpi_interface(&self) -> TokenStream { let idl = &self.idl; - let program_name: Ident = format_ident!("{}", idl.name); + let program_name: Ident = format_ident!("{}", idl.metadata.name); let accounts = generate_accounts(&idl.types, &idl.accounts, &self.struct_opts); let typedefs = generate_typedefs(&idl.types, &self.struct_opts); @@ -80,14 +80,18 @@ impl Generator { let docs = format!( " Anchor CPI crate generated from {} v{} using [anchor-gen](https://crates.io/crates/anchor-gen) v{}.", - &idl.name, - &idl.version, + &idl.metadata.name, + &idl.metadata.version, &GEN_VERSION.unwrap_or("unknown") ); + let address = idl.address.clone(); + quote! { use anchor_lang::prelude::*; + declare_id!(#address); + pub mod typedefs { //! User-defined types. use super::*; diff --git a/crates/anchor-idl/src/state.rs b/crates/anchor-idl/src/state.rs index 4a9fa10..532e249 100644 --- a/crates/anchor-idl/src/state.rs +++ b/crates/anchor-idl/src/state.rs @@ -1,14 +1,17 @@ use std::collections::BTreeMap; -use anchor_syn::idl::{IdlField, IdlTypeDefinition}; +use anchor_lang_idl_spec::{IdlAccount, IdlField, IdlTypeDef}; use proc_macro2::TokenStream; use quote::{format_ident, quote}; -use crate::{generate_fields, get_field_list_properties, StructOpts}; +use crate::{ + fields::{generate_struct_fields_from_slice, get_idl_defined_fields_as_slice}, + get_field_list_properties, StructOpts, +}; /// Generates an account state struct. pub fn generate_account( - defs: &[IdlTypeDefinition], + defs: &[IdlTypeDef], account_name: &str, fields: &[IdlField], opts: StructOpts, @@ -51,7 +54,7 @@ pub fn generate_account( let doc = format!(" Account: {}", account_name); let struct_name = format_ident!("{}", account_name); - let fields_rendered = generate_fields(fields); + let fields_rendered = generate_struct_fields_from_slice(fields); quote! { #derive_account #[doc = #doc] @@ -65,19 +68,35 @@ pub fn generate_account( /// Generates account state structs. pub fn generate_accounts( - typedefs: &[IdlTypeDefinition], - account_defs: &[IdlTypeDefinition], + typedefs: &[IdlTypeDef], + account_defs: &[IdlAccount], struct_opts: &BTreeMap, ) -> TokenStream { - let defined = account_defs.iter().map(|def| match &def.ty { - anchor_syn::idl::IdlTypeDefinitionTy::Struct { fields } => { - let opts = struct_opts.get(&def.name).copied().unwrap_or_default(); - generate_account(typedefs, &def.name, fields, opts) - } - anchor_syn::idl::IdlTypeDefinitionTy::Enum { .. } => { - panic!("unexpected enum account"); - } - }); + let defined = account_defs + .iter() + .map(|account| { + typedefs + .iter() + .find(|type_def| type_def.name == account.name) + .unwrap() + }) + .map(|def| match &def.ty { + anchor_lang_idl_spec::IdlTypeDefTy::Struct { fields } => { + let opts = struct_opts.get(&def.name).copied().unwrap_or_default(); + generate_account( + typedefs, + &def.name, + get_idl_defined_fields_as_slice(fields), + opts, + ) + } + anchor_lang_idl_spec::IdlTypeDefTy::Enum { .. } => { + panic!("unexpected enum account"); + } + anchor_lang_idl_spec::IdlTypeDefTy::Type { alias: _ } => { + panic!("unexpected type account") + } + }); quote! { #(#defined)* } diff --git a/crates/anchor-idl/src/typedef.rs b/crates/anchor-idl/src/typedef.rs index 016f960..99052dd 100644 --- a/crates/anchor-idl/src/typedef.rs +++ b/crates/anchor-idl/src/typedef.rs @@ -1,11 +1,15 @@ use std::collections::BTreeMap; -use anchor_syn::idl::{EnumFields, IdlEnumVariant, IdlField, IdlType, IdlTypeDefinition}; -use heck::ToSnakeCase; +use anchor_lang_idl_spec::{ + IdlArrayLen, IdlDefinedFields, IdlEnumVariant, IdlField, IdlType, IdlTypeDef, +}; use proc_macro2::{Ident, TokenStream}; use quote::{format_ident, quote}; -use crate::StructOpts; +use crate::{ + fields::{generate_struct_fields, get_idl_defined_fields_as_slice}, + StructOpts, +}; #[derive(Copy, Clone, Debug, Default)] pub struct FieldListProperties { @@ -13,20 +17,28 @@ pub struct FieldListProperties { pub can_derive_default: bool, } -pub fn get_field_list_properties( - defs: &[IdlTypeDefinition], - fields: &[IdlField], +pub fn get_defined_fields_list_properties( + defs: &[IdlTypeDef], + fields: &Option, ) -> FieldListProperties { + let types = fields + .iter() + .flat_map(|f| match f { + IdlDefinedFields::Named(ff) => ff.iter().map(|fff| fff.ty.clone()).collect::>(), + IdlDefinedFields::Tuple(ff) => ff.clone(), + }) + .collect::>(); + get_type_list_properties(defs, &*types) +} + +pub fn get_field_list_properties(defs: &[IdlTypeDef], fields: &[IdlField]) -> FieldListProperties { get_type_list_properties( defs, &fields.iter().map(|f| f.ty.clone()).collect::>(), ) } -pub fn get_type_list_properties( - defs: &[IdlTypeDefinition], - fields: &[IdlType], -) -> FieldListProperties { +pub fn get_type_list_properties(defs: &[IdlTypeDef], fields: &[IdlType]) -> FieldListProperties { fields.iter().fold( FieldListProperties { can_copy: true, @@ -45,7 +57,7 @@ pub fn get_type_list_properties( } pub fn get_variant_list_properties( - defs: &[IdlTypeDefinition], + defs: &[IdlTypeDef], variants: &[IdlEnumVariant], ) -> FieldListProperties { variants.iter().fold( @@ -55,8 +67,8 @@ pub fn get_variant_list_properties( }, |acc, el| { let props = match &el.fields { - Some(EnumFields::Named(fields)) => get_field_list_properties(defs, fields), - Some(EnumFields::Tuple(fields)) => get_type_list_properties(defs, fields), + Some(IdlDefinedFields::Named(fields)) => get_field_list_properties(defs, fields), + Some(IdlDefinedFields::Tuple(fields)) => get_type_list_properties(defs, fields), None => acc, }; FieldListProperties { @@ -67,7 +79,7 @@ pub fn get_variant_list_properties( ) } -pub fn get_type_properties(defs: &[IdlTypeDefinition], ty: &IdlType) -> FieldListProperties { +pub fn get_type_properties(defs: &[IdlTypeDef], ty: &IdlType) -> FieldListProperties { match ty { IdlType::Bool | IdlType::U8 @@ -82,7 +94,7 @@ pub fn get_type_properties(defs: &[IdlTypeDefinition], ty: &IdlType) -> FieldLis | IdlType::F64 | IdlType::U128 | IdlType::I128 - | IdlType::PublicKey => FieldListProperties { + | IdlType::Pubkey => FieldListProperties { can_copy: true, can_derive_default: true, }, @@ -94,53 +106,46 @@ pub fn get_type_properties(defs: &[IdlTypeDefinition], ty: &IdlType) -> FieldLis can_copy: false, can_derive_default: true, }, - IdlType::Defined(inner) => { - let def = defs.iter().find(|def| def.name == *inner).unwrap(); + IdlType::Defined { name, .. } => { + let def = defs.iter().find(|def| def.name == *name).unwrap(); match &def.ty { - anchor_syn::idl::IdlTypeDefinitionTy::Struct { fields } => { - get_field_list_properties(defs, fields) + anchor_lang_idl_spec::IdlTypeDefTy::Struct { fields } => { + get_field_list_properties(defs, get_idl_defined_fields_as_slice(fields)) } - anchor_syn::idl::IdlTypeDefinitionTy::Enum { variants } => { + anchor_lang_idl_spec::IdlTypeDefTy::Enum { variants } => { get_variant_list_properties(defs, variants) } + anchor_lang_idl_spec::IdlTypeDefTy::Type { alias: _ } => todo!(), } } IdlType::Option(inner) => get_type_properties(defs, inner), IdlType::Array(inner, len) => { let inner = get_type_properties(defs, inner); - let can_derive_array_len = *len <= 32; + let can_derive_array_len = match len { + IdlArrayLen::Value(len) => *len <= 32, + IdlArrayLen::Generic(_) => false, + }; FieldListProperties { can_copy: inner.can_copy, can_derive_default: can_derive_array_len && inner.can_derive_default, } } - } -} - -/// Generates struct fields from a list of [IdlField]s. -pub fn generate_fields(fields: &[IdlField]) -> TokenStream { - let fields_rendered = fields.iter().map(|arg| { - let name = format_ident!("{}", arg.name.to_snake_case()); - let type_name = crate::ty_to_rust_type(&arg.ty); - let stream: proc_macro2::TokenStream = type_name.parse().unwrap(); - quote! { - pub #name: #stream - } - }); - quote! { - #(#fields_rendered),* + IdlType::U256 => todo!(), + IdlType::I256 => todo!(), + IdlType::Generic(_) => todo!(), + _ => todo!(), } } /// Generates a struct. pub fn generate_struct( - defs: &[IdlTypeDefinition], + defs: &[IdlTypeDef], struct_name: &Ident, - fields: &[IdlField], + fields: &Option, opts: StructOpts, ) -> TokenStream { - let fields_rendered = generate_fields(fields); - let props = get_field_list_properties(defs, fields); + let fields_rendered = generate_struct_fields(fields); + let props = get_field_list_properties(defs, get_idl_defined_fields_as_slice(fields)); let derive_default = if props.can_derive_default { quote! { @@ -189,7 +194,7 @@ pub fn generate_struct( /// Generates an enum. pub fn generate_enum( - defs: &[IdlTypeDefinition], + defs: &[IdlTypeDef], enum_name: &Ident, variants: &[IdlEnumVariant], ) -> TokenStream { @@ -223,19 +228,20 @@ pub fn generate_enum( /// Generates structs and enums. pub fn generate_typedefs( - typedefs: &[IdlTypeDefinition], + typedefs: &[IdlTypeDef], struct_opts: &BTreeMap, ) -> TokenStream { let defined = typedefs.iter().map(|def| { let struct_name = format_ident!("{}", def.name); match &def.ty { - anchor_syn::idl::IdlTypeDefinitionTy::Struct { fields } => { + anchor_lang_idl_spec::IdlTypeDefTy::Struct { fields } => { let opts = struct_opts.get(&def.name).copied().unwrap_or_default(); generate_struct(typedefs, &struct_name, fields, opts) } - anchor_syn::idl::IdlTypeDefinitionTy::Enum { variants } => { + anchor_lang_idl_spec::IdlTypeDefTy::Enum { variants } => { generate_enum(typedefs, &struct_name, variants) } + anchor_lang_idl_spec::IdlTypeDefTy::Type { alias: _ } => todo!(), } }); quote! { diff --git a/examples/govern-cpi/idl.json b/examples/govern-cpi/idl.json index 5adb77c..555728e 100644 --- a/examples/govern-cpi/idl.json +++ b/examples/govern-cpi/idl.json @@ -1,48 +1,48 @@ { - "version": "0.5.6", - "name": "govern", + "address": "Govz1VyoyLD5BL6CSCxUJLVLsQHRwjfFj1prNsdNg5Jw", + "metadata": { + "name": "govern", + "version": "0.5.6", + "spec": "0.1.0" + }, "instructions": [ { - "name": "createGovernor", + "name": "create_governor", + "discriminator": [103, 30, 78, 252, 28, 128, 40, 3], "accounts": [ { "name": "base", - "isMut": false, - "isSigner": true + "signer": true }, { "name": "governor", - "isMut": true, - "isSigner": false, + "writable": true, "pda": { "seeds": [ { "kind": "const", - "type": "string", - "value": "TribecaGovernor" + "value": [ + 34, 84, 114, 105, 98, 101, 99, 97, 71, 111, 118, 101, 114, + 110, 111, 114, 34 + ] }, { "kind": "account", - "type": "publicKey", "path": "base" } ] } }, { - "name": "smartWallet", - "isMut": false, - "isSigner": false + "name": "smart_wallet" }, { "name": "payer", - "isMut": true, - "isSigner": true + "writable": true, + "signer": true }, { - "name": "systemProgram", - "isMut": false, - "isSigner": false + "name": "system_program" } ], "args": [ @@ -52,64 +52,62 @@ }, { "name": "electorate", - "type": "publicKey" + "type": "pubkey" }, { "name": "params", "type": { - "defined": "GovernanceParameters" + "defined": { + "name": "GovernanceParameters" + } } } ] }, { - "name": "createProposal", + "name": "create_proposal", + "discriminator": [132, 116, 68, 174, 216, 160, 198, 22], "accounts": [ { "name": "governor", - "isMut": true, - "isSigner": false + "writable": true }, { "name": "proposal", - "isMut": true, - "isSigner": false, + "writable": true, "pda": { "seeds": [ { "kind": "const", - "type": "string", - "value": "TribecaProposal" + "value": [ + 34, 84, 114, 105, 98, 101, 99, 97, 80, 114, 111, 112, 111, + 115, 97, 108, 34 + ] }, { "kind": "account", - "type": "publicKey", - "account": "Governor", - "path": "governor" + "path": "governor", + "account": "Governor" }, { "kind": "account", - "type": "u64", - "account": "Governor", - "path": "governor.proposal_count" + "path": "governor.proposal_count", + "account": "Governor" } ] } }, { "name": "proposer", - "isMut": false, - "isSigner": true + "signer": true }, { "name": "payer", - "isMut": true, - "isSigner": true + "writable": true, + "signer": true }, { - "name": "systemProgram", - "isMut": false, - "isSigner": false + "name": "system_program" } ], "args": [ @@ -121,128 +119,113 @@ "name": "instructions", "type": { "vec": { - "defined": "ProposalInstruction" + "defined": { + "name": "ProposalInstruction" + } } } } ] }, { - "name": "activateProposal", + "name": "activate_proposal", + "discriminator": [90, 186, 203, 234, 70, 185, 191, 21], "accounts": [ { - "name": "governor", - "isMut": false, - "isSigner": false + "name": "governor" }, { "name": "proposal", - "isMut": true, - "isSigner": false + "writable": true }, { "name": "electorate", - "isMut": false, - "isSigner": true + "signer": true } ], "args": [] }, { - "name": "cancelProposal", + "name": "cancel_proposal", + "discriminator": [106, 74, 128, 146, 19, 65, 39, 23], "accounts": [ { - "name": "governor", - "isMut": false, - "isSigner": false + "name": "governor" }, { "name": "proposal", - "isMut": true, - "isSigner": false + "writable": true }, { "name": "proposer", - "isMut": false, - "isSigner": true + "signer": true } ], "args": [] }, { - "name": "queueProposal", + "name": "queue_proposal", + "discriminator": [168, 219, 139, 211, 205, 152, 125, 110], "accounts": [ { - "name": "governor", - "isMut": false, - "isSigner": false + "name": "governor" }, { "name": "proposal", - "isMut": true, - "isSigner": false + "writable": true }, { "name": "transaction", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "smartWallet", - "isMut": true, - "isSigner": false + "name": "smart_wallet", + "writable": true }, { "name": "payer", - "isMut": true, - "isSigner": true + "writable": true, + "signer": true }, { - "name": "smartWalletProgram", - "isMut": false, - "isSigner": false + "name": "smart_wallet_program" }, { - "name": "systemProgram", - "isMut": false, - "isSigner": false + "name": "system_program" } ], "args": [ { - "name": "txBump", + "name": "tx_bump", "type": "u8" } ] }, { - "name": "newVote", + "name": "new_vote", + "discriminator": [163, 108, 157, 189, 140, 80, 13, 143], "accounts": [ { - "name": "proposal", - "isMut": false, - "isSigner": false + "name": "proposal" }, { "name": "vote", - "isMut": true, - "isSigner": false, + "writable": true, "pda": { "seeds": [ { "kind": "const", - "type": "string", - "value": "TribecaVote" + "value": [ + 34, 84, 114, 105, 98, 101, 99, 97, 86, 111, 116, 101, 34 + ] }, { "kind": "account", - "type": "publicKey", - "account": "Proposal", - "path": "proposal" + "path": "proposal", + "account": "Proposal" }, { "kind": "arg", - "type": "publicKey", "path": "voter" } ] @@ -250,13 +233,11 @@ }, { "name": "payer", - "isMut": true, - "isSigner": true + "writable": true, + "signer": true }, { - "name": "systemProgram", - "isMut": false, - "isSigner": false + "name": "system_program" } ], "args": [ @@ -266,32 +247,28 @@ }, { "name": "voter", - "type": "publicKey" + "type": "pubkey" } ] }, { - "name": "setVote", + "name": "set_vote", + "discriminator": [171, 33, 83, 172, 148, 215, 239, 97], "accounts": [ { - "name": "governor", - "isMut": false, - "isSigner": false + "name": "governor" }, { "name": "proposal", - "isMut": true, - "isSigner": false + "writable": true }, { "name": "vote", - "isMut": true, - "isSigner": false + "writable": true }, { "name": "electorate", - "isMut": false, - "isSigner": true + "signer": true } ], "args": [ @@ -306,91 +283,87 @@ ] }, { - "name": "setGovernanceParams", + "name": "set_governance_params", + "discriminator": [175, 187, 3, 73, 8, 251, 67, 178], "accounts": [ { "name": "governor", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "smartWallet", - "isMut": false, - "isSigner": true + "name": "smart_wallet", + "signer": true } ], "args": [ { "name": "params", "type": { - "defined": "GovernanceParameters" + "defined": { + "name": "GovernanceParameters" + } } } ] }, { - "name": "setElectorate", + "name": "set_electorate", + "discriminator": [145, 135, 92, 16, 77, 195, 145, 91], "accounts": [ { "name": "governor", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "smartWallet", - "isMut": false, - "isSigner": true + "name": "smart_wallet", + "signer": true } ], "args": [ { - "name": "newElectorate", - "type": "publicKey" + "name": "new_electorate", + "type": "pubkey" } ] }, { - "name": "createProposalMeta", + "name": "create_proposal_meta", + "discriminator": [238, 138, 212, 160, 46, 53, 51, 88], "accounts": [ { - "name": "proposal", - "isMut": false, - "isSigner": false + "name": "proposal" }, { "name": "proposer", - "isMut": false, - "isSigner": true + "signer": true }, { - "name": "proposalMeta", - "isMut": true, - "isSigner": false, + "name": "proposal_meta", + "writable": true, "pda": { "seeds": [ { "kind": "const", - "type": "string", - "value": "TribecaProposalMeta" + "value": [ + 34, 84, 114, 105, 98, 101, 99, 97, 80, 114, 111, 112, 111, + 115, 97, 108, 77, 101, 116, 97, 34 + ] }, { "kind": "account", - "type": "publicKey", - "account": "Proposal", - "path": "proposal" + "path": "proposal", + "account": "Proposal" } ] } }, { "name": "payer", - "isMut": true, - "isSigner": true + "writable": true, + "signer": true }, { - "name": "systemProgram", - "isMut": false, - "isSigner": false + "name": "system_program" } ], "args": [ @@ -403,13 +376,212 @@ "type": "string" }, { - "name": "descriptionLink", + "name": "description_link", "type": "string" } ] } ], "accounts": [ + { + "name": "Governor", + "discriminator": [37, 136, 44, 80, 68, 85, 213, 178] + }, + { + "name": "Proposal", + "discriminator": [26, 94, 189, 187, 116, 136, 53, 33] + }, + { + "name": "ProposalMeta", + "discriminator": [50, 100, 46, 24, 151, 174, 216, 78] + }, + { + "name": "Vote", + "discriminator": [96, 91, 104, 57, 145, 35, 172, 155] + } + ], + "events": [ + { + "name": "GovernorCreateEvent", + "discriminator": [117, 24, 15, 85, 39, 58, 62, 23] + }, + { + "name": "ProposalCreateEvent", + "discriminator": [121, 18, 213, 155, 223, 158, 95, 70] + }, + { + "name": "ProposalActivateEvent", + "discriminator": [247, 53, 166, 250, 118, 62, 53, 80] + }, + { + "name": "ProposalCancelEvent", + "discriminator": [24, 49, 11, 182, 23, 59, 122, 220] + }, + { + "name": "ProposalQueueEvent", + "discriminator": [48, 219, 123, 209, 140, 210, 248, 14] + }, + { + "name": "VoteSetEvent", + "discriminator": [175, 119, 30, 108, 176, 233, 151, 252] + }, + { + "name": "ProposalMetaCreateEvent", + "discriminator": [50, 59, 195, 75, 85, 227, 187, 82] + }, + { + "name": "GovernorSetParamsEvent", + "discriminator": [169, 129, 187, 152, 130, 17, 81, 157] + }, + { + "name": "GovernorSetElectorateEvent", + "discriminator": [146, 179, 141, 206, 235, 125, 146, 26] + } + ], + "errors": [ + { + "code": 6000, + "name": "InvalidVoteSide", + "msg": "Invalid vote side." + }, + { + "code": 6001, + "name": "GovernorNotFound", + "msg": "The owner of the smart wallet doesn't match with current." + }, + { + "code": 6002, + "name": "VotingDelayNotMet", + "msg": "The proposal cannot be activated since it has not yet passed the voting delay." + }, + { + "code": 6003, + "name": "ProposalNotDraft", + "msg": "Only drafts can be canceled." + }, + { + "code": 6004, + "name": "ProposalNotActive", + "msg": "The proposal must be active." + } + ], + "types": [ + { + "name": "GovernanceParameters", + "type": { + "kind": "struct", + "fields": [ + { + "name": "voting_delay", + "type": "u64" + }, + { + "name": "voting_period", + "type": "u64" + }, + { + "name": "quorum_votes", + "type": "u64" + }, + { + "name": "timelock_delay_seconds", + "type": "i64" + } + ] + } + }, + { + "name": "ProposalInstruction", + "type": { + "kind": "struct", + "fields": [ + { + "name": "program_id", + "type": "pubkey" + }, + { + "name": "keys", + "type": { + "vec": { + "defined": { + "name": "ProposalAccountMeta" + } + } + } + }, + { + "name": "data", + "type": "bytes" + } + ] + } + }, + { + "name": "ProposalAccountMeta", + "type": { + "kind": "struct", + "fields": [ + { + "name": "pubkey", + "type": "pubkey" + }, + { + "name": "is_signer", + "type": "bool" + }, + { + "name": "is_writable", + "type": "bool" + } + ] + } + }, + { + "name": "ProposalState", + "type": { + "kind": "enum", + "variants": [ + { + "name": "Draft" + }, + { + "name": "Active" + }, + { + "name": "Canceled" + }, + { + "name": "Defeated" + }, + { + "name": "Succeeded" + }, + { + "name": "Queued" + } + ] + } + }, + { + "name": "VoteSide", + "type": { + "kind": "enum", + "variants": [ + { + "name": "Pending" + }, + { + "name": "Against" + }, + { + "name": "For" + }, + { + "name": "Abstain" + } + ] + } + }, { "name": "Governor", "type": { @@ -417,28 +589,30 @@ "fields": [ { "name": "base", - "type": "publicKey" + "type": "pubkey" }, { "name": "bump", "type": "u8" }, { - "name": "proposalCount", + "name": "proposal_count", "type": "u64" }, { "name": "electorate", - "type": "publicKey" + "type": "pubkey" }, { - "name": "smartWallet", - "type": "publicKey" + "name": "smart_wallet", + "type": "pubkey" }, { "name": "params", "type": { - "defined": "GovernanceParameters" + "defined": { + "name": "GovernanceParameters" + } } } ] @@ -451,7 +625,7 @@ "fields": [ { "name": "governor", - "type": "publicKey" + "type": "pubkey" }, { "name": "index", @@ -463,53 +637,55 @@ }, { "name": "proposer", - "type": "publicKey" + "type": "pubkey" }, { - "name": "quorumVotes", + "name": "quorum_votes", "type": "u64" }, { - "name": "forVotes", + "name": "for_votes", "type": "u64" }, { - "name": "againstVotes", + "name": "against_votes", "type": "u64" }, { - "name": "abstainVotes", + "name": "abstain_votes", "type": "u64" }, { - "name": "canceledAt", + "name": "canceled_at", "type": "i64" }, { - "name": "createdAt", + "name": "created_at", "type": "i64" }, { - "name": "activatedAt", + "name": "activated_at", "type": "i64" }, { - "name": "votingEndsAt", + "name": "voting_ends_at", "type": "i64" }, { - "name": "queuedAt", + "name": "queued_at", "type": "i64" }, { - "name": "queuedTransaction", - "type": "publicKey" + "name": "queued_transaction", + "type": "pubkey" }, { "name": "instructions", "type": { "vec": { - "defined": "ProposalInstruction" + "defined": { + "name": "ProposalInstruction" + } } } } @@ -523,14 +699,14 @@ "fields": [ { "name": "proposal", - "type": "publicKey" + "type": "pubkey" }, { "name": "title", "type": "string" }, { - "name": "descriptionLink", + "name": "description_link", "type": "string" } ] @@ -543,11 +719,11 @@ "fields": [ { "name": "proposal", - "type": "publicKey" + "type": "pubkey" }, { "name": "voter", - "type": "publicKey" + "type": "pubkey" }, { "name": "bump", @@ -563,366 +739,224 @@ } ] } - } - ], - "types": [ + }, { - "name": "GovernanceParameters", + "name": "GovernorCreateEvent", "type": { "kind": "struct", "fields": [ { - "name": "votingDelay", - "type": "u64" + "name": "governor", + "type": "pubkey" }, { - "name": "votingPeriod", - "type": "u64" + "name": "electorate", + "type": "pubkey" }, { - "name": "quorumVotes", - "type": "u64" + "name": "smart_wallet", + "type": "pubkey" }, { - "name": "timelockDelaySeconds", - "type": "i64" + "name": "parameters", + "type": { + "defined": { + "name": "GovernanceParameters" + } + } } ] } }, { - "name": "ProposalInstruction", + "name": "ProposalCreateEvent", "type": { "kind": "struct", "fields": [ { - "name": "programId", - "type": "publicKey" + "name": "governor", + "type": "pubkey" }, { - "name": "keys", + "name": "proposal", + "type": "pubkey" + }, + { + "name": "index", + "type": "u64" + }, + { + "name": "instructions", "type": { "vec": { - "defined": "ProposalAccountMeta" + "defined": { + "name": "ProposalInstruction" + } } } + } + ] + } + }, + { + "name": "ProposalActivateEvent", + "type": { + "kind": "struct", + "fields": [ + { + "name": "governor", + "type": "pubkey" }, { - "name": "data", - "type": "bytes" + "name": "proposal", + "type": "pubkey" + }, + { + "name": "voting_ends_at", + "type": "i64" } ] } }, { - "name": "ProposalAccountMeta", + "name": "ProposalCancelEvent", "type": { "kind": "struct", "fields": [ { - "name": "pubkey", - "type": "publicKey" + "name": "governor", + "type": "pubkey" }, { - "name": "isSigner", - "type": "bool" + "name": "proposal", + "type": "pubkey" + } + ] + } + }, + { + "name": "ProposalQueueEvent", + "type": { + "kind": "struct", + "fields": [ + { + "name": "governor", + "type": "pubkey" }, { - "name": "isWritable", - "type": "bool" + "name": "proposal", + "type": "pubkey" + }, + { + "name": "transaction", + "type": "pubkey" } ] } }, { - "name": "ProposalState", + "name": "VoteSetEvent", "type": { - "kind": "enum", - "variants": [ + "kind": "struct", + "fields": [ { - "name": "Draft" + "name": "governor", + "type": "pubkey" }, { - "name": "Active" + "name": "proposal", + "type": "pubkey" }, { - "name": "Canceled" + "name": "voter", + "type": "pubkey" }, { - "name": "Defeated" + "name": "vote", + "type": "pubkey" }, { - "name": "Succeeded" + "name": "side", + "type": "u8" }, { - "name": "Queued" + "name": "weight", + "type": "u64" } ] } }, { - "name": "VoteSide", + "name": "ProposalMetaCreateEvent", "type": { - "kind": "enum", - "variants": [ + "kind": "struct", + "fields": [ { - "name": "Pending" + "name": "governor", + "type": "pubkey" }, { - "name": "Against" + "name": "proposal", + "type": "pubkey" }, { - "name": "For" + "name": "title", + "type": "string" }, { - "name": "Abstain" + "name": "description_link", + "type": "string" } ] } - } - ], - "events": [ - { - "name": "GovernorCreateEvent", - "fields": [ - { - "name": "governor", - "type": "publicKey", - "index": false - }, - { - "name": "electorate", - "type": "publicKey", - "index": false - }, - { - "name": "smartWallet", - "type": "publicKey", - "index": false - }, - { - "name": "parameters", - "type": { - "defined": "GovernanceParameters" - }, - "index": false - } - ] - }, - { - "name": "ProposalCreateEvent", - "fields": [ - { - "name": "governor", - "type": "publicKey", - "index": false - }, - { - "name": "proposal", - "type": "publicKey", - "index": false - }, - { - "name": "index", - "type": "u64", - "index": false - }, - { - "name": "instructions", - "type": { - "vec": { - "defined": "ProposalInstruction" - } - }, - "index": false - } - ] - }, - { - "name": "ProposalActivateEvent", - "fields": [ - { - "name": "governor", - "type": "publicKey", - "index": false - }, - { - "name": "proposal", - "type": "publicKey", - "index": false - }, - { - "name": "votingEndsAt", - "type": "i64", - "index": false - } - ] - }, - { - "name": "ProposalCancelEvent", - "fields": [ - { - "name": "governor", - "type": "publicKey", - "index": false - }, - { - "name": "proposal", - "type": "publicKey", - "index": false - } - ] - }, - { - "name": "ProposalQueueEvent", - "fields": [ - { - "name": "governor", - "type": "publicKey", - "index": false - }, - { - "name": "proposal", - "type": "publicKey", - "index": false - }, - { - "name": "transaction", - "type": "publicKey", - "index": false - } - ] - }, - { - "name": "VoteSetEvent", - "fields": [ - { - "name": "governor", - "type": "publicKey", - "index": false - }, - { - "name": "proposal", - "type": "publicKey", - "index": false - }, - { - "name": "voter", - "type": "publicKey", - "index": false - }, - { - "name": "vote", - "type": "publicKey", - "index": false - }, - { - "name": "side", - "type": "u8", - "index": false - }, - { - "name": "weight", - "type": "u64", - "index": false - } - ] - }, - { - "name": "ProposalMetaCreateEvent", - "fields": [ - { - "name": "governor", - "type": "publicKey", - "index": false - }, - { - "name": "proposal", - "type": "publicKey", - "index": false - }, - { - "name": "title", - "type": "string", - "index": false - }, - { - "name": "descriptionLink", - "type": "string", - "index": false - } - ] }, { "name": "GovernorSetParamsEvent", - "fields": [ - { - "name": "governor", - "type": "publicKey", - "index": false - }, - { - "name": "prevParams", - "type": { - "defined": "GovernanceParameters" + "type": { + "kind": "struct", + "fields": [ + { + "name": "governor", + "type": "pubkey" }, - "index": false - }, - { - "name": "params", - "type": { - "defined": "GovernanceParameters" + { + "name": "prev_params", + "type": { + "defined": { + "name": "GovernanceParameters" + } + } }, - "index": false - } - ] + { + "name": "params", + "type": { + "defined": { + "name": "GovernanceParameters" + } + } + } + ] + } }, { "name": "GovernorSetElectorateEvent", - "fields": [ - { - "name": "governor", - "type": "publicKey", - "index": false - }, - { - "name": "prevElectorate", - "type": "publicKey", - "index": false - }, - { - "name": "newElectorate", - "type": "publicKey", - "index": false - } - ] - } - ], - "errors": [ - { - "code": 6000, - "name": "InvalidVoteSide", - "msg": "Invalid vote side." - }, - { - "code": 6001, - "name": "GovernorNotFound", - "msg": "The owner of the smart wallet doesn't match with current." - }, - { - "code": 6002, - "name": "VotingDelayNotMet", - "msg": "The proposal cannot be activated since it has not yet passed the voting delay." - }, - { - "code": 6003, - "name": "ProposalNotDraft", - "msg": "Only drafts can be canceled." - }, - { - "code": 6004, - "name": "ProposalNotActive", - "msg": "The proposal must be active." + "type": { + "kind": "struct", + "fields": [ + { + "name": "governor", + "type": "pubkey" + }, + { + "name": "prev_electorate", + "type": "pubkey" + }, + { + "name": "new_electorate", + "type": "pubkey" + } + ] + } } ] } diff --git a/examples/govern-cpi/src/lib.rs b/examples/govern-cpi/src/lib.rs index dda9bec..f5257e7 100644 --- a/examples/govern-cpi/src/lib.rs +++ b/examples/govern-cpi/src/lib.rs @@ -1,3 +1 @@ anchor_gen::generate_cpi_crate!("idl.json"); - -declare_id!("Govz1VyoyLD5BL6CSCxUJLVLsQHRwjfFj1prNsdNg5Jw"); diff --git a/examples/marinade-cpi/idl.json b/examples/marinade-cpi/idl.json index e97039d..a791934 100644 --- a/examples/marinade-cpi/idl.json +++ b/examples/marinade-cpi/idl.json @@ -1,160 +1,135 @@ { - "version": "0.0.0", - "name": "marinade_finance", + "address": "MarBmsSgKXdrN1egZf5sqe1TMai9K1rChYNDJgjq7aD", + "metadata": { + "name": "marinade_finance", + "version": "0.0.0", + "spec": "0.1.0" + }, "instructions": [ { "name": "initialize", + "discriminator": [175, 175, 109, 31, 13, 152, 155, 237], "accounts": [ { - "name": "creatorAuthority", - "isMut": false, - "isSigner": true + "name": "creator_authority", + "signer": true }, { "name": "state", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "reservePda", - "isMut": false, - "isSigner": false + "name": "reserve_pda" }, { - "name": "stakeList", - "isMut": true, - "isSigner": false + "name": "stake_list", + "writable": true }, { - "name": "validatorList", - "isMut": true, - "isSigner": false + "name": "validator_list", + "writable": true }, { - "name": "msolMint", - "isMut": false, - "isSigner": false + "name": "msol_mint" }, { - "name": "operationalSolAccount", - "isMut": false, - "isSigner": false + "name": "operational_sol_account" }, { - "name": "liqPool", + "name": "liq_pool", "accounts": [ { - "name": "lpMint", - "isMut": false, - "isSigner": false + "name": "lp_mint" }, { - "name": "solLegPda", - "isMut": false, - "isSigner": false + "name": "sol_leg_pda" }, { - "name": "msolLeg", - "isMut": false, - "isSigner": false + "name": "msol_leg" } ] }, { - "name": "treasuryMsolAccount", - "isMut": false, - "isSigner": false + "name": "treasury_msol_account" }, { - "name": "clock", - "isMut": false, - "isSigner": false + "name": "clock" }, { - "name": "rent", - "isMut": false, - "isSigner": false + "name": "rent" } ], "args": [ { "name": "data", "type": { - "defined": "InitializeData" + "defined": { + "name": "InitializeData" + } } } ] }, { - "name": "changeAuthority", + "name": "change_authority", + "discriminator": [50, 106, 66, 104, 99, 118, 145, 88], "accounts": [ { "name": "state", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "adminAuthority", - "isMut": false, - "isSigner": true + "name": "admin_authority", + "signer": true } ], "args": [ { "name": "data", "type": { - "defined": "ChangeAuthorityData" + "defined": { + "name": "ChangeAuthorityData" + } } } ] }, { - "name": "addValidator", + "name": "add_validator", + "discriminator": [250, 113, 53, 54, 141, 117, 215, 185], "accounts": [ { "name": "state", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "managerAuthority", - "isMut": false, - "isSigner": true + "name": "manager_authority", + "signer": true }, { - "name": "validatorList", - "isMut": true, - "isSigner": false + "name": "validator_list", + "writable": true }, { - "name": "validatorVote", - "isMut": false, - "isSigner": false + "name": "validator_vote" }, { - "name": "duplicationFlag", - "isMut": true, - "isSigner": false + "name": "duplication_flag", + "writable": true }, { - "name": "rentPayer", - "isMut": true, - "isSigner": true + "name": "rent_payer", + "writable": true, + "signer": true }, { - "name": "clock", - "isMut": false, - "isSigner": false + "name": "clock" }, { - "name": "rent", - "isMut": false, - "isSigner": false + "name": "rent" }, { - "name": "systemProgram", - "isMut": false, - "isSigner": false + "name": "system_program" } ], "args": [ @@ -165,32 +140,28 @@ ] }, { - "name": "removeValidator", + "name": "remove_validator", + "discriminator": [25, 96, 211, 155, 161, 14, 168, 188], "accounts": [ { "name": "state", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "managerAuthority", - "isMut": false, - "isSigner": true + "name": "manager_authority", + "signer": true }, { - "name": "validatorList", - "isMut": true, - "isSigner": false + "name": "validator_list", + "writable": true }, { - "name": "duplicationFlag", - "isMut": true, - "isSigner": false + "name": "duplication_flag", + "writable": true }, { - "name": "operationalSolAccount", - "isMut": true, - "isSigner": false + "name": "operational_sol_account", + "writable": true } ], "args": [ @@ -199,28 +170,26 @@ "type": "u32" }, { - "name": "validatorVote", - "type": "publicKey" + "name": "validator_vote", + "type": "pubkey" } ] }, { - "name": "setValidatorScore", + "name": "set_validator_score", + "discriminator": [101, 41, 206, 33, 216, 111, 25, 78], "accounts": [ { "name": "state", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "managerAuthority", - "isMut": false, - "isSigner": true + "name": "manager_authority", + "signer": true }, { - "name": "validatorList", - "isMut": true, - "isSigner": false + "name": "validator_list", + "writable": true } ], "args": [ @@ -229,8 +198,8 @@ "type": "u32" }, { - "name": "validatorVote", - "type": "publicKey" + "name": "validator_vote", + "type": "pubkey" }, { "name": "score", @@ -239,83 +208,69 @@ ] }, { - "name": "configValidatorSystem", + "name": "config_validator_system", + "discriminator": [27, 90, 97, 209, 17, 115, 7, 40], "accounts": [ { "name": "state", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "managerAuthority", - "isMut": false, - "isSigner": true + "name": "manager_authority", + "signer": true } ], "args": [ { - "name": "extraRuns", + "name": "extra_runs", "type": "u32" } ] }, { "name": "deposit", + "discriminator": [242, 35, 198, 137, 82, 225, 242, 182], "accounts": [ { "name": "state", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "msolMint", - "isMut": true, - "isSigner": false + "name": "msol_mint", + "writable": true }, { - "name": "liqPoolSolLegPda", - "isMut": true, - "isSigner": false + "name": "liq_pool_sol_leg_pda", + "writable": true }, { - "name": "liqPoolMsolLeg", - "isMut": true, - "isSigner": false + "name": "liq_pool_msol_leg", + "writable": true }, { - "name": "liqPoolMsolLegAuthority", - "isMut": false, - "isSigner": false + "name": "liq_pool_msol_leg_authority" }, { - "name": "reservePda", - "isMut": true, - "isSigner": false + "name": "reserve_pda", + "writable": true }, { - "name": "transferFrom", - "isMut": true, - "isSigner": true + "name": "transfer_from", + "writable": true, + "signer": true }, { - "name": "mintTo", - "isMut": true, - "isSigner": false + "name": "mint_to", + "writable": true }, { - "name": "msolMintAuthority", - "isMut": false, - "isSigner": false + "name": "msol_mint_authority" }, { - "name": "systemProgram", - "isMut": false, - "isSigner": false + "name": "system_program" }, { - "name": "tokenProgram", - "isMut": false, - "isSigner": false + "name": "token_program" } ], "args": [ @@ -326,199 +281,158 @@ ] }, { - "name": "depositStakeAccount", + "name": "deposit_stake_account", + "discriminator": [110, 130, 115, 41, 164, 102, 2, 59], "accounts": [ { "name": "state", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "validatorList", - "isMut": true, - "isSigner": false + "name": "validator_list", + "writable": true }, { - "name": "stakeList", - "isMut": true, - "isSigner": false + "name": "stake_list", + "writable": true }, { - "name": "stakeAccount", - "isMut": true, - "isSigner": false + "name": "stake_account", + "writable": true }, { - "name": "stakeAuthority", - "isMut": false, - "isSigner": true + "name": "stake_authority", + "signer": true }, { - "name": "duplicationFlag", - "isMut": true, - "isSigner": false + "name": "duplication_flag", + "writable": true }, { - "name": "rentPayer", - "isMut": true, - "isSigner": true + "name": "rent_payer", + "writable": true, + "signer": true }, { - "name": "msolMint", - "isMut": true, - "isSigner": false + "name": "msol_mint", + "writable": true }, { - "name": "mintTo", - "isMut": true, - "isSigner": false + "name": "mint_to", + "writable": true }, { - "name": "msolMintAuthority", - "isMut": false, - "isSigner": false + "name": "msol_mint_authority" }, { - "name": "clock", - "isMut": false, - "isSigner": false + "name": "clock" }, { - "name": "rent", - "isMut": false, - "isSigner": false + "name": "rent" }, { - "name": "systemProgram", - "isMut": false, - "isSigner": false + "name": "system_program" }, { - "name": "tokenProgram", - "isMut": false, - "isSigner": false + "name": "token_program" }, { - "name": "stakeProgram", - "isMut": false, - "isSigner": false + "name": "stake_program" } ], "args": [ { - "name": "validatorIndex", + "name": "validator_index", "type": "u32" } ] }, { - "name": "liquidUnstake", + "name": "liquid_unstake", + "discriminator": [30, 30, 119, 240, 191, 227, 12, 16], "accounts": [ { "name": "state", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "msolMint", - "isMut": true, - "isSigner": false + "name": "msol_mint", + "writable": true }, { - "name": "liqPoolSolLegPda", - "isMut": true, - "isSigner": false + "name": "liq_pool_sol_leg_pda", + "writable": true }, { - "name": "liqPoolMsolLeg", - "isMut": true, - "isSigner": false + "name": "liq_pool_msol_leg", + "writable": true }, { - "name": "treasuryMsolAccount", - "isMut": true, - "isSigner": false + "name": "treasury_msol_account", + "writable": true }, { - "name": "getMsolFrom", - "isMut": true, - "isSigner": false + "name": "get_msol_from", + "writable": true }, { - "name": "getMsolFromAuthority", - "isMut": false, - "isSigner": true + "name": "get_msol_from_authority", + "signer": true }, { - "name": "transferSolTo", - "isMut": true, - "isSigner": false + "name": "transfer_sol_to", + "writable": true }, { - "name": "systemProgram", - "isMut": false, - "isSigner": false + "name": "system_program" }, { - "name": "tokenProgram", - "isMut": false, - "isSigner": false + "name": "token_program" } ], "args": [ { - "name": "msolAmount", + "name": "msol_amount", "type": "u64" } ] }, { - "name": "addLiquidity", + "name": "add_liquidity", + "discriminator": [181, 157, 89, 67, 143, 182, 52, 72], "accounts": [ { "name": "state", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "lpMint", - "isMut": true, - "isSigner": false + "name": "lp_mint", + "writable": true }, { - "name": "lpMintAuthority", - "isMut": false, - "isSigner": false + "name": "lp_mint_authority" }, { - "name": "liqPoolMsolLeg", - "isMut": false, - "isSigner": false + "name": "liq_pool_msol_leg" }, { - "name": "liqPoolSolLegPda", - "isMut": true, - "isSigner": false + "name": "liq_pool_sol_leg_pda", + "writable": true }, { - "name": "transferFrom", - "isMut": true, - "isSigner": true + "name": "transfer_from", + "writable": true, + "signer": true }, { - "name": "mintTo", - "isMut": true, - "isSigner": false + "name": "mint_to", + "writable": true }, { - "name": "systemProgram", - "isMut": false, - "isSigner": false + "name": "system_program" }, { - "name": "tokenProgram", - "isMut": false, - "isSigner": false + "name": "token_program" } ], "args": [ @@ -529,62 +443,49 @@ ] }, { - "name": "removeLiquidity", + "name": "remove_liquidity", + "discriminator": [80, 85, 209, 72, 24, 206, 177, 108], "accounts": [ { "name": "state", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "lpMint", - "isMut": true, - "isSigner": false + "name": "lp_mint", + "writable": true }, { - "name": "burnFrom", - "isMut": true, - "isSigner": false + "name": "burn_from", + "writable": true }, { - "name": "burnFromAuthority", - "isMut": false, - "isSigner": true + "name": "burn_from_authority", + "signer": true }, { - "name": "transferSolTo", - "isMut": true, - "isSigner": false + "name": "transfer_sol_to", + "writable": true }, { - "name": "transferMsolTo", - "isMut": true, - "isSigner": false + "name": "transfer_msol_to", + "writable": true }, { - "name": "liqPoolSolLegPda", - "isMut": true, - "isSigner": false + "name": "liq_pool_sol_leg_pda", + "writable": true }, { - "name": "liqPoolMsolLeg", - "isMut": true, - "isSigner": false + "name": "liq_pool_msol_leg", + "writable": true }, { - "name": "liqPoolMsolLegAuthority", - "isMut": false, - "isSigner": false + "name": "liq_pool_msol_leg_authority" }, { - "name": "systemProgram", - "isMut": false, - "isSigner": false + "name": "system_program" }, { - "name": "tokenProgram", - "isMut": false, - "isSigner": false + "name": "token_program" } ], "args": [ @@ -595,699 +496,565 @@ ] }, { - "name": "setLpParams", + "name": "set_lp_params", + "discriminator": [227, 163, 242, 45, 79, 203, 106, 44], "accounts": [ { "name": "state", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "adminAuthority", - "isMut": false, - "isSigner": true + "name": "admin_authority", + "signer": true } ], "args": [ { - "name": "minFee", + "name": "min_fee", "type": { - "defined": "Fee" + "defined": { + "name": "Fee" + } } }, { - "name": "maxFee", + "name": "max_fee", "type": { - "defined": "Fee" + "defined": { + "name": "Fee" + } } }, { - "name": "liquidityTarget", + "name": "liquidity_target", "type": "u64" } ] }, { - "name": "configMarinade", + "name": "config_marinade", + "discriminator": [67, 3, 34, 114, 190, 185, 17, 62], "accounts": [ { "name": "state", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "adminAuthority", - "isMut": false, - "isSigner": true + "name": "admin_authority", + "signer": true } ], "args": [ { "name": "params", "type": { - "defined": "ConfigMarinadeParams" + "defined": { + "name": "ConfigMarinadeParams" + } } } ] }, { - "name": "orderUnstake", + "name": "order_unstake", + "discriminator": [97, 167, 144, 107, 117, 190, 128, 36], "accounts": [ { "name": "state", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "msolMint", - "isMut": true, - "isSigner": false + "name": "msol_mint", + "writable": true }, { - "name": "burnMsolFrom", - "isMut": true, - "isSigner": false + "name": "burn_msol_from", + "writable": true }, { - "name": "burnMsolAuthority", - "isMut": false, - "isSigner": true + "name": "burn_msol_authority", + "signer": true }, { - "name": "newTicketAccount", - "isMut": true, - "isSigner": false + "name": "new_ticket_account", + "writable": true }, { - "name": "clock", - "isMut": false, - "isSigner": false + "name": "clock" }, { - "name": "rent", - "isMut": false, - "isSigner": false + "name": "rent" }, { - "name": "tokenProgram", - "isMut": false, - "isSigner": false + "name": "token_program" } ], "args": [ { - "name": "msolAmount", + "name": "msol_amount", "type": "u64" } ] }, { "name": "claim", + "discriminator": [62, 198, 214, 193, 213, 159, 108, 210], "accounts": [ { "name": "state", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "reservePda", - "isMut": true, - "isSigner": false + "name": "reserve_pda", + "writable": true }, { - "name": "ticketAccount", - "isMut": true, - "isSigner": false + "name": "ticket_account", + "writable": true }, { - "name": "transferSolTo", - "isMut": true, - "isSigner": false + "name": "transfer_sol_to", + "writable": true }, { - "name": "clock", - "isMut": false, - "isSigner": false + "name": "clock" }, { - "name": "systemProgram", - "isMut": false, - "isSigner": false + "name": "system_program" } ], "args": [] }, { - "name": "stakeReserve", + "name": "stake_reserve", + "discriminator": [87, 217, 23, 179, 205, 25, 113, 129], "accounts": [ { "name": "state", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "validatorList", - "isMut": true, - "isSigner": false + "name": "validator_list", + "writable": true }, { - "name": "stakeList", - "isMut": true, - "isSigner": false + "name": "stake_list", + "writable": true }, { - "name": "validatorVote", - "isMut": true, - "isSigner": false + "name": "validator_vote", + "writable": true }, { - "name": "reservePda", - "isMut": true, - "isSigner": false + "name": "reserve_pda", + "writable": true }, { - "name": "stakeAccount", - "isMut": true, - "isSigner": false + "name": "stake_account", + "writable": true }, { - "name": "stakeDepositAuthority", - "isMut": false, - "isSigner": false + "name": "stake_deposit_authority" }, { - "name": "clock", - "isMut": false, - "isSigner": false + "name": "clock" }, { - "name": "epochSchedule", - "isMut": false, - "isSigner": false + "name": "epoch_schedule" }, { - "name": "rent", - "isMut": false, - "isSigner": false + "name": "rent" }, { - "name": "stakeHistory", - "isMut": false, - "isSigner": false + "name": "stake_history" }, { - "name": "stakeConfig", - "isMut": false, - "isSigner": false + "name": "stake_config" }, { - "name": "systemProgram", - "isMut": false, - "isSigner": false + "name": "system_program" }, { - "name": "stakeProgram", - "isMut": false, - "isSigner": false + "name": "stake_program" } ], "args": [ { - "name": "validatorIndex", + "name": "validator_index", "type": "u32" } ] }, { - "name": "updateActive", + "name": "update_active", + "discriminator": [4, 67, 81, 64, 136, 245, 93, 152], "accounts": [ { "name": "common", "accounts": [ { "name": "state", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "stakeList", - "isMut": true, - "isSigner": false + "name": "stake_list", + "writable": true }, { - "name": "stakeAccount", - "isMut": true, - "isSigner": false + "name": "stake_account", + "writable": true }, { - "name": "stakeWithdrawAuthority", - "isMut": false, - "isSigner": false + "name": "stake_withdraw_authority" }, { - "name": "reservePda", - "isMut": true, - "isSigner": false + "name": "reserve_pda", + "writable": true }, { - "name": "msolMint", - "isMut": true, - "isSigner": false + "name": "msol_mint", + "writable": true }, { - "name": "msolMintAuthority", - "isMut": false, - "isSigner": false + "name": "msol_mint_authority" }, { - "name": "treasuryMsolAccount", - "isMut": true, - "isSigner": false + "name": "treasury_msol_account", + "writable": true }, { - "name": "clock", - "isMut": false, - "isSigner": false + "name": "clock" }, { - "name": "stakeHistory", - "isMut": false, - "isSigner": false + "name": "stake_history" }, { - "name": "stakeProgram", - "isMut": false, - "isSigner": false + "name": "stake_program" }, { - "name": "tokenProgram", - "isMut": false, - "isSigner": false + "name": "token_program" } ] }, { - "name": "validatorList", - "isMut": true, - "isSigner": false + "name": "validator_list", + "writable": true } ], "args": [ { - "name": "stakeIndex", + "name": "stake_index", "type": "u32" }, { - "name": "validatorIndex", + "name": "validator_index", "type": "u32" } ] }, { - "name": "updateDeactivated", + "name": "update_deactivated", + "discriminator": [16, 232, 131, 115, 156, 100, 239, 50], "accounts": [ { "name": "common", "accounts": [ { "name": "state", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "stakeList", - "isMut": true, - "isSigner": false + "name": "stake_list", + "writable": true }, { - "name": "stakeAccount", - "isMut": true, - "isSigner": false + "name": "stake_account", + "writable": true }, { - "name": "stakeWithdrawAuthority", - "isMut": false, - "isSigner": false + "name": "stake_withdraw_authority" }, { - "name": "reservePda", - "isMut": true, - "isSigner": false + "name": "reserve_pda", + "writable": true }, { - "name": "msolMint", - "isMut": true, - "isSigner": false + "name": "msol_mint", + "writable": true }, { - "name": "msolMintAuthority", - "isMut": false, - "isSigner": false + "name": "msol_mint_authority" }, { - "name": "treasuryMsolAccount", - "isMut": true, - "isSigner": false + "name": "treasury_msol_account", + "writable": true }, { - "name": "clock", - "isMut": false, - "isSigner": false + "name": "clock" }, { - "name": "stakeHistory", - "isMut": false, - "isSigner": false + "name": "stake_history" }, { - "name": "stakeProgram", - "isMut": false, - "isSigner": false + "name": "stake_program" }, { - "name": "tokenProgram", - "isMut": false, - "isSigner": false + "name": "token_program" } ] }, { - "name": "operationalSolAccount", - "isMut": true, - "isSigner": false + "name": "operational_sol_account", + "writable": true }, { - "name": "systemProgram", - "isMut": false, - "isSigner": false + "name": "system_program" } ], "args": [ { - "name": "stakeIndex", + "name": "stake_index", "type": "u32" } ] }, { - "name": "deactivateStake", + "name": "deactivate_stake", + "discriminator": [165, 158, 229, 97, 168, 220, 187, 225], "accounts": [ { "name": "state", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "reservePda", - "isMut": false, - "isSigner": false + "name": "reserve_pda" }, { - "name": "validatorList", - "isMut": true, - "isSigner": false + "name": "validator_list", + "writable": true }, { - "name": "stakeList", - "isMut": true, - "isSigner": false + "name": "stake_list", + "writable": true }, { - "name": "stakeAccount", - "isMut": true, - "isSigner": false + "name": "stake_account", + "writable": true }, { - "name": "stakeDepositAuthority", - "isMut": false, - "isSigner": false + "name": "stake_deposit_authority" }, { - "name": "splitStakeAccount", - "isMut": true, - "isSigner": true + "name": "split_stake_account", + "writable": true, + "signer": true }, { - "name": "splitStakeRentPayer", - "isMut": true, - "isSigner": true + "name": "split_stake_rent_payer", + "writable": true, + "signer": true }, { - "name": "clock", - "isMut": false, - "isSigner": false + "name": "clock" }, { - "name": "rent", - "isMut": false, - "isSigner": false + "name": "rent" }, { - "name": "epochSchedule", - "isMut": false, - "isSigner": false + "name": "epoch_schedule" }, { - "name": "stakeHistory", - "isMut": false, - "isSigner": false + "name": "stake_history" }, { - "name": "systemProgram", - "isMut": false, - "isSigner": false + "name": "system_program" }, { - "name": "stakeProgram", - "isMut": false, - "isSigner": false + "name": "stake_program" } ], "args": [ { - "name": "stakeIndex", + "name": "stake_index", "type": "u32" }, { - "name": "validatorIndex", + "name": "validator_index", "type": "u32" } ] }, { - "name": "emergencyUnstake", + "name": "emergency_unstake", + "discriminator": [123, 69, 168, 195, 183, 213, 199, 214], "accounts": [ { "name": "state", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "validatorManagerAuthority", - "isMut": false, - "isSigner": true + "name": "validator_manager_authority", + "signer": true }, { - "name": "validatorList", - "isMut": true, - "isSigner": false + "name": "validator_list", + "writable": true }, { - "name": "stakeList", - "isMut": true, - "isSigner": false + "name": "stake_list", + "writable": true }, { - "name": "stakeAccount", - "isMut": true, - "isSigner": false + "name": "stake_account", + "writable": true }, { - "name": "stakeDepositAuthority", - "isMut": false, - "isSigner": false + "name": "stake_deposit_authority" }, { - "name": "clock", - "isMut": false, - "isSigner": false + "name": "clock" }, { - "name": "stakeProgram", - "isMut": false, - "isSigner": false + "name": "stake_program" } ], "args": [ { - "name": "stakeIndex", + "name": "stake_index", "type": "u32" }, { - "name": "validatorIndex", + "name": "validator_index", "type": "u32" } ] }, { - "name": "partialUnstake", + "name": "partial_unstake", + "discriminator": [55, 241, 205, 221, 45, 114, 205, 163], "accounts": [ { "name": "state", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "validatorManagerAuthority", - "isMut": false, - "isSigner": true + "name": "validator_manager_authority", + "signer": true }, { - "name": "validatorList", - "isMut": true, - "isSigner": false + "name": "validator_list", + "writable": true }, { - "name": "stakeList", - "isMut": true, - "isSigner": false + "name": "stake_list", + "writable": true }, { - "name": "stakeAccount", - "isMut": true, - "isSigner": false + "name": "stake_account", + "writable": true }, { - "name": "stakeDepositAuthority", - "isMut": false, - "isSigner": false + "name": "stake_deposit_authority" }, { - "name": "reservePda", - "isMut": false, - "isSigner": false + "name": "reserve_pda" }, { - "name": "splitStakeAccount", - "isMut": true, - "isSigner": true + "name": "split_stake_account", + "writable": true, + "signer": true }, { - "name": "splitStakeRentPayer", - "isMut": true, - "isSigner": true + "name": "split_stake_rent_payer", + "writable": true, + "signer": true }, { - "name": "clock", - "isMut": false, - "isSigner": false + "name": "clock" }, { - "name": "rent", - "isMut": false, - "isSigner": false + "name": "rent" }, { - "name": "stakeHistory", - "isMut": false, - "isSigner": false + "name": "stake_history" }, { - "name": "systemProgram", - "isMut": false, - "isSigner": false + "name": "system_program" }, { - "name": "stakeProgram", - "isMut": false, - "isSigner": false + "name": "stake_program" } ], "args": [ { - "name": "stakeIndex", + "name": "stake_index", "type": "u32" }, { - "name": "validatorIndex", + "name": "validator_index", "type": "u32" }, { - "name": "desiredUnstakeAmount", + "name": "desired_unstake_amount", "type": "u64" } ] }, { - "name": "mergeStakes", + "name": "merge_stakes", + "discriminator": [216, 36, 141, 225, 243, 78, 125, 237], "accounts": [ { "name": "state", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "stakeList", - "isMut": true, - "isSigner": false + "name": "stake_list", + "writable": true }, { - "name": "validatorList", - "isMut": true, - "isSigner": false + "name": "validator_list", + "writable": true }, { - "name": "destinationStake", - "isMut": true, - "isSigner": false + "name": "destination_stake", + "writable": true }, { - "name": "sourceStake", - "isMut": true, - "isSigner": false + "name": "source_stake", + "writable": true }, { - "name": "stakeDepositAuthority", - "isMut": false, - "isSigner": false + "name": "stake_deposit_authority" }, { - "name": "stakeWithdrawAuthority", - "isMut": false, - "isSigner": false + "name": "stake_withdraw_authority" }, { - "name": "operationalSolAccount", - "isMut": true, - "isSigner": false + "name": "operational_sol_account", + "writable": true }, { - "name": "clock", - "isMut": false, - "isSigner": false + "name": "clock" }, { - "name": "stakeHistory", - "isMut": false, - "isSigner": false + "name": "stake_history" }, { - "name": "stakeProgram", - "isMut": false, - "isSigner": false + "name": "stake_program" } ], "args": [ { - "name": "destinationStakeIndex", + "name": "destination_stake_index", "type": "u32" }, { - "name": "sourceStakeIndex", + "name": "source_stake_index", "type": "u32" }, { - "name": "validatorIndex", + "name": "validator_index", "type": "u32" } ] @@ -1296,127 +1063,153 @@ "accounts": [ { "name": "State", - "type": { - "kind": "struct", - "fields": [ - { - "name": "msolMint", - "type": "publicKey" - }, - { - "name": "adminAuthority", - "type": "publicKey" - }, - { - "name": "operationalSolAccount", - "type": "publicKey" - }, - { - "name": "treasuryMsolAccount", - "type": "publicKey" - }, - { - "name": "reserveBumpSeed", - "type": "u8" - }, - { - "name": "msolMintAuthorityBumpSeed", - "type": "u8" - }, - { - "name": "rentExemptForTokenAcc", - "type": "u64" - }, - { - "name": "rewardFee", - "type": { - "defined": "Fee" - } - }, - { - "name": "stakeSystem", - "type": { - "defined": "StakeSystem" - } - }, - { - "name": "validatorSystem", - "type": { - "defined": "ValidatorSystem" - } - }, - { - "name": "liqPool", - "type": { - "defined": "LiqPool" - } - }, - { - "name": "availableReserveBalance", - "type": "u64" - }, - { - "name": "msolSupply", - "type": "u64" - }, - { - "name": "msolPrice", - "type": "u64" - }, - { - "name": "circulatingTicketCount", - "type": "u64" - }, - { - "name": "circulatingTicketBalance", - "type": "u64" - }, - { - "name": "lentFromReserve", - "type": "u64" - }, - { - "name": "minDeposit", - "type": "u64" - }, - { - "name": "minWithdraw", - "type": "u64" - }, - { - "name": "stakingSolCap", - "type": "u64" - }, - { - "name": "emergencyCoolingDown", - "type": "u64" - } - ] - } + "discriminator": [216, 146, 107, 94, 104, 75, 182, 177] }, { "name": "TicketAccountData", - "type": { - "kind": "struct", - "fields": [ - { - "name": "stateAddress", - "type": "publicKey" - }, - { - "name": "beneficiary", - "type": "publicKey" - }, - { - "name": "lamportsAmount", - "type": "u64" - }, - { - "name": "createdEpoch", - "type": "u64" - } - ] - } + "discriminator": [133, 77, 18, 98, 211, 1, 231, 3] + } + ], + "errors": [ + { + "code": 300, + "name": "WrongReserveOwner", + "msg": "Wrong reserve owner. Must be a system account" + }, + { + "code": 301, + "name": "NonEmptyReserveData", + "msg": "Reserve must have no data, but has data" + }, + { + "code": 302, + "name": "InvalidInitialReserveLamports", + "msg": "Invalid initial reserve lamports" + }, + { + "code": 303, + "name": "ZeroValidatorChunkSize", + "msg": "Zero validator chunk size" + }, + { + "code": 304, + "name": "TooBigValidatorChunkSize", + "msg": "Too big validator chunk size" + }, + { + "code": 305, + "name": "ZeroCreditChunkSize", + "msg": "Zero credit chunk size" + }, + { + "code": 306, + "name": "TooBigCreditChunkSize", + "msg": "Too big credit chunk size" + }, + { + "code": 307, + "name": "TooLowCreditFee", + "msg": "Too low credit fee" + }, + { + "code": 308, + "name": "InvalidMintAuthority", + "msg": "Invalid mint authority" + }, + { + "code": 309, + "name": "MintHasInitialSupply", + "msg": "Non empty initial mint supply" + }, + { + "code": 310, + "name": "InvalidOwnerFeeState", + "msg": "Invalid owner fee state" + }, + { + "code": 6416, + "name": "InvalidProgramId", + "msg": "1910 Invalid program id. For using program from another account please update id in the code" + }, + { + "code": 65440, + "name": "UnexpectedAccount", + "msg": "FFA0 Unexpected account" + }, + { + "code": 51919, + "name": "CalculationFailure", + "msg": "CACF Calculation failure" + }, + { + "code": 45994, + "name": "AccountWithLockup", + "msg": "B3AA You can't deposit a stake-account with lockup" + }, + { + "code": 8192, + "name": "NumberTooLow", + "msg": "2000 Number too low" + }, + { + "code": 8193, + "name": "NumberTooHigh", + "msg": "2001 Number too high" + }, + { + "code": 4352, + "name": "FeeTooHigh", + "msg": "1100 Fee too high" + }, + { + "code": 4353, + "name": "FeesWrongWayRound", + "msg": "1101 Min fee > max fee" + }, + { + "code": 4354, + "name": "LiquidityTargetTooLow", + "msg": "1102 Liquidity target too low" + }, + { + "code": 4355, + "name": "TicketNotDue", + "msg": "1103 Ticket not due. Wait more epochs" + }, + { + "code": 4356, + "name": "TicketNotReady", + "msg": "1104 Ticket not ready. Wait a few hours and try again" + }, + { + "code": 4357, + "name": "WrongBeneficiary", + "msg": "1105 Wrong Ticket Beneficiary" + }, + { + "code": 4358, + "name": "StakeAccountNotUpdatedYet", + "msg": "1106 Stake Account not updated yet" + }, + { + "code": 4359, + "name": "StakeNotDelegated", + "msg": "1107 Stake Account not delegated" + }, + { + "code": 4360, + "name": "StakeAccountIsEmergencyUnstaking", + "msg": "1108 Stake Account is emergency unstaking" + }, + { + "code": 4505, + "name": "InsufficientLiquidity", + "msg": "1199 Insufficient Liquidity in the Liquidity Pool" + }, + { + "code": 47825, + "name": "InvalidValidator", + "msg": "BAD1 Invalid validator" } ], "types": [ @@ -1426,7 +1219,7 @@ "kind": "struct", "fields": [ { - "name": "basisPoints", + "name": "basis_points", "type": "u32" } ] @@ -1438,39 +1231,43 @@ "kind": "struct", "fields": [ { - "name": "adminAuthority", - "type": "publicKey" + "name": "admin_authority", + "type": "pubkey" }, { - "name": "validatorManagerAuthority", - "type": "publicKey" + "name": "validator_manager_authority", + "type": "pubkey" }, { - "name": "minStake", + "name": "min_stake", "type": "u64" }, { - "name": "rewardFee", + "name": "reward_fee", "type": { - "defined": "Fee" + "defined": { + "name": "Fee" + } } }, { - "name": "liqPool", + "name": "liq_pool", "type": { - "defined": "LiqPoolInitializeData" + "defined": { + "name": "LiqPoolInitializeData" + } } }, { - "name": "additionalStakeRecordSpace", + "name": "additional_stake_record_space", "type": "u32" }, { - "name": "additionalValidatorRecordSpace", + "name": "additional_validator_record_space", "type": "u32" }, { - "name": "slotsForStakeDelta", + "name": "slots_for_stake_delta", "type": "u64" } ] @@ -1482,25 +1279,31 @@ "kind": "struct", "fields": [ { - "name": "lpLiquidityTarget", + "name": "lp_liquidity_target", "type": "u64" }, { - "name": "lpMaxFee", + "name": "lp_max_fee", "type": { - "defined": "Fee" + "defined": { + "name": "Fee" + } } }, { - "name": "lpMinFee", + "name": "lp_min_fee", "type": { - "defined": "Fee" + "defined": { + "name": "Fee" + } } }, { - "name": "lpTreasuryCut", + "name": "lp_treasury_cut", "type": { - "defined": "Fee" + "defined": { + "name": "Fee" + } } } ] @@ -1514,25 +1317,25 @@ { "name": "admin", "type": { - "option": "publicKey" + "option": "pubkey" } }, { - "name": "validatorManager", + "name": "validator_manager", "type": { - "option": "publicKey" + "option": "pubkey" } }, { - "name": "operationalSolAccount", + "name": "operational_sol_account", "type": { - "option": "publicKey" + "option": "pubkey" } }, { - "name": "treasuryMsolAccount", + "name": "treasury_msol_account", "type": { - "option": "publicKey" + "option": "pubkey" } } ] @@ -1544,51 +1347,53 @@ "kind": "struct", "fields": [ { - "name": "rewardsFee", + "name": "rewards_fee", "type": { "option": { - "defined": "Fee" + "defined": { + "name": "Fee" + } } } }, { - "name": "slotsForStakeDelta", + "name": "slots_for_stake_delta", "type": { "option": "u64" } }, { - "name": "minStake", + "name": "min_stake", "type": { "option": "u64" } }, { - "name": "minDeposit", + "name": "min_deposit", "type": { "option": "u64" } }, { - "name": "minWithdraw", + "name": "min_withdraw", "type": { "option": "u64" } }, { - "name": "stakingSolCap", + "name": "staking_sol_cap", "type": { "option": "u64" } }, { - "name": "liquiditySolCap", + "name": "liquidity_sol_cap", "type": { "option": "u64" } }, { - "name": "autoAddValidatorEnabled", + "name": "auto_add_validator_enabled", "type": { "option": "bool" } @@ -1602,11 +1407,11 @@ "kind": "struct", "fields": [ { - "name": "validatorAccount", - "type": "publicKey" + "name": "validator_account", + "type": "pubkey" }, { - "name": "activeBalance", + "name": "active_balance", "type": "u64" }, { @@ -1614,11 +1419,11 @@ "type": "u32" }, { - "name": "lastStakeDeltaEpoch", + "name": "last_stake_delta_epoch", "type": "u64" }, { - "name": "duplicationFlagBumpSeed", + "name": "duplication_flag_bump_seed", "type": "u8" } ] @@ -1630,25 +1435,27 @@ "kind": "struct", "fields": [ { - "name": "validatorList", + "name": "validator_list", "type": { - "defined": "List" + "defined": { + "name": "List" + } } }, { - "name": "managerAuthority", - "type": "publicKey" + "name": "manager_authority", + "type": "pubkey" }, { - "name": "totalValidatorScore", + "name": "total_validator_score", "type": "u32" }, { - "name": "totalActiveBalance", + "name": "total_active_balance", "type": "u64" }, { - "name": "autoAddValidatorEnabled", + "name": "auto_add_validator_enabled", "type": "u8" } ] @@ -1661,10 +1468,10 @@ "fields": [ { "name": "account", - "type": "publicKey" + "type": "pubkey" }, { - "name": "itemSize", + "name": "item_size", "type": "u32" }, { @@ -1672,11 +1479,11 @@ "type": "u32" }, { - "name": "newAccount", - "type": "publicKey" + "name": "new_account", + "type": "pubkey" }, { - "name": "copiedCount", + "name": "copied_count", "type": "u32" } ] @@ -1688,57 +1495,63 @@ "kind": "struct", "fields": [ { - "name": "lpMint", - "type": "publicKey" + "name": "lp_mint", + "type": "pubkey" }, { - "name": "lpMintAuthorityBumpSeed", + "name": "lp_mint_authority_bump_seed", "type": "u8" }, { - "name": "solLegBumpSeed", + "name": "sol_leg_bump_seed", "type": "u8" }, { - "name": "msolLegAuthorityBumpSeed", + "name": "msol_leg_authority_bump_seed", "type": "u8" }, { - "name": "msolLeg", - "type": "publicKey" + "name": "msol_leg", + "type": "pubkey" }, { - "name": "lpLiquidityTarget", + "name": "lp_liquidity_target", "type": "u64" }, { - "name": "lpMaxFee", + "name": "lp_max_fee", "type": { - "defined": "Fee" + "defined": { + "name": "Fee" + } } }, { - "name": "lpMinFee", + "name": "lp_min_fee", "type": { - "defined": "Fee" + "defined": { + "name": "Fee" + } } }, { - "name": "treasuryCut", + "name": "treasury_cut", "type": { - "defined": "Fee" + "defined": { + "name": "Fee" + } } }, { - "name": "lpSupply", + "name": "lp_supply", "type": "u64" }, { - "name": "lentFromSolLeg", + "name": "lent_from_sol_leg", "type": "u64" }, { - "name": "liquiditySolCap", + "name": "liquidity_sol_cap", "type": "u64" } ] @@ -1750,19 +1563,19 @@ "kind": "struct", "fields": [ { - "name": "stakeAccount", - "type": "publicKey" + "name": "stake_account", + "type": "pubkey" }, { - "name": "lastUpdateDelegatedLamports", + "name": "last_update_delegated_lamports", "type": "u64" }, { - "name": "lastUpdateEpoch", + "name": "last_update_epoch", "type": "u64" }, { - "name": "isEmergencyUnstaking", + "name": "is_emergency_unstaking", "type": "u8" } ] @@ -1774,183 +1587,175 @@ "kind": "struct", "fields": [ { - "name": "stakeList", + "name": "stake_list", "type": { - "defined": "List" + "defined": { + "name": "List" + } } }, { - "name": "delayedUnstakeCoolingDown", + "name": "delayed_unstake_cooling_down", "type": "u64" }, { - "name": "stakeDepositBumpSeed", + "name": "stake_deposit_bump_seed", "type": "u8" }, { - "name": "stakeWithdrawBumpSeed", + "name": "stake_withdraw_bump_seed", "type": "u8" }, { - "name": "slotsForStakeDelta", + "name": "slots_for_stake_delta", "type": "u64" }, { - "name": "lastStakeDeltaEpoch", + "name": "last_stake_delta_epoch", "type": "u64" }, { - "name": "minStake", + "name": "min_stake", "type": "u64" }, { - "name": "extraStakeDeltaRuns", + "name": "extra_stake_delta_runs", "type": "u32" } ] } - } - ], - "errors": [ - { - "code": 300, - "name": "WrongReserveOwner", - "msg": "Wrong reserve owner. Must be a system account" - }, - { - "code": 301, - "name": "NonEmptyReserveData", - "msg": "Reserve must have no data, but has data" - }, - { - "code": 302, - "name": "InvalidInitialReserveLamports", - "msg": "Invalid initial reserve lamports" - }, - { - "code": 303, - "name": "ZeroValidatorChunkSize", - "msg": "Zero validator chunk size" - }, - { - "code": 304, - "name": "TooBigValidatorChunkSize", - "msg": "Too big validator chunk size" - }, - { - "code": 305, - "name": "ZeroCreditChunkSize", - "msg": "Zero credit chunk size" - }, - { - "code": 306, - "name": "TooBigCreditChunkSize", - "msg": "Too big credit chunk size" - }, - { - "code": 307, - "name": "TooLowCreditFee", - "msg": "Too low credit fee" - }, - { - "code": 308, - "name": "InvalidMintAuthority", - "msg": "Invalid mint authority" - }, - { - "code": 309, - "name": "MintHasInitialSupply", - "msg": "Non empty initial mint supply" - }, - { - "code": 310, - "name": "InvalidOwnerFeeState", - "msg": "Invalid owner fee state" - }, - { - "code": 6416, - "name": "InvalidProgramId", - "msg": "1910 Invalid program id. For using program from another account please update id in the code" - }, - { - "code": 65440, - "name": "UnexpectedAccount", - "msg": "FFA0 Unexpected account" - }, - { - "code": 51919, - "name": "CalculationFailure", - "msg": "CACF Calculation failure" - }, - { - "code": 45994, - "name": "AccountWithLockup", - "msg": "B3AA You can't deposit a stake-account with lockup" - }, - { - "code": 8192, - "name": "NumberTooLow", - "msg": "2000 Number too low" - }, - { - "code": 8193, - "name": "NumberTooHigh", - "msg": "2001 Number too high" - }, - { - "code": 4352, - "name": "FeeTooHigh", - "msg": "1100 Fee too high" - }, - { - "code": 4353, - "name": "FeesWrongWayRound", - "msg": "1101 Min fee > max fee" - }, - { - "code": 4354, - "name": "LiquidityTargetTooLow", - "msg": "1102 Liquidity target too low" - }, - { - "code": 4355, - "name": "TicketNotDue", - "msg": "1103 Ticket not due. Wait more epochs" - }, - { - "code": 4356, - "name": "TicketNotReady", - "msg": "1104 Ticket not ready. Wait a few hours and try again" - }, - { - "code": 4357, - "name": "WrongBeneficiary", - "msg": "1105 Wrong Ticket Beneficiary" - }, - { - "code": 4358, - "name": "StakeAccountNotUpdatedYet", - "msg": "1106 Stake Account not updated yet" - }, - { - "code": 4359, - "name": "StakeNotDelegated", - "msg": "1107 Stake Account not delegated" - }, - { - "code": 4360, - "name": "StakeAccountIsEmergencyUnstaking", - "msg": "1108 Stake Account is emergency unstaking" }, { - "code": 4505, - "name": "InsufficientLiquidity", - "msg": "1199 Insufficient Liquidity in the Liquidity Pool" + "name": "State", + "type": { + "kind": "struct", + "fields": [ + { + "name": "msol_mint", + "type": "pubkey" + }, + { + "name": "admin_authority", + "type": "pubkey" + }, + { + "name": "operational_sol_account", + "type": "pubkey" + }, + { + "name": "treasury_msol_account", + "type": "pubkey" + }, + { + "name": "reserve_bump_seed", + "type": "u8" + }, + { + "name": "msol_mint_authority_bump_seed", + "type": "u8" + }, + { + "name": "rent_exempt_for_token_acc", + "type": "u64" + }, + { + "name": "reward_fee", + "type": { + "defined": { + "name": "Fee" + } + } + }, + { + "name": "stake_system", + "type": { + "defined": { + "name": "StakeSystem" + } + } + }, + { + "name": "validator_system", + "type": { + "defined": { + "name": "ValidatorSystem" + } + } + }, + { + "name": "liq_pool", + "type": { + "defined": { + "name": "LiqPool" + } + } + }, + { + "name": "available_reserve_balance", + "type": "u64" + }, + { + "name": "msol_supply", + "type": "u64" + }, + { + "name": "msol_price", + "type": "u64" + }, + { + "name": "circulating_ticket_count", + "type": "u64" + }, + { + "name": "circulating_ticket_balance", + "type": "u64" + }, + { + "name": "lent_from_reserve", + "type": "u64" + }, + { + "name": "min_deposit", + "type": "u64" + }, + { + "name": "min_withdraw", + "type": "u64" + }, + { + "name": "staking_sol_cap", + "type": "u64" + }, + { + "name": "emergency_cooling_down", + "type": "u64" + } + ] + } }, { - "code": 47825, - "name": "InvalidValidator", - "msg": "BAD1 Invalid validator" + "name": "TicketAccountData", + "type": { + "kind": "struct", + "fields": [ + { + "name": "state_address", + "type": "pubkey" + }, + { + "name": "beneficiary", + "type": "pubkey" + }, + { + "name": "lamports_amount", + "type": "u64" + }, + { + "name": "created_epoch", + "type": "u64" + } + ] + } } ] } diff --git a/examples/marinade-cpi/src/lib.rs b/examples/marinade-cpi/src/lib.rs index 2084eb3..f5257e7 100644 --- a/examples/marinade-cpi/src/lib.rs +++ b/examples/marinade-cpi/src/lib.rs @@ -1,3 +1 @@ anchor_gen::generate_cpi_crate!("idl.json"); - -declare_id!("MarBmsSgKXdrN1egZf5sqe1TMai9K1rChYNDJgjq7aD"); diff --git a/examples/whirlpools/Cargo.toml b/examples/whirlpools/Cargo.toml index 1676beb..e8eb459 100644 --- a/examples/whirlpools/Cargo.toml +++ b/examples/whirlpools/Cargo.toml @@ -18,3 +18,4 @@ cpi = ["no-entrypoint"] [dependencies] anchor-gen = { version = "0.3.0", path = "../../crates/anchor-gen" } anchor-lang = ">=0.20" +bytemuck = { version = "1.23", features = ["derive", "min_const_generics"] } diff --git a/examples/whirlpools/idl.json b/examples/whirlpools/idl.json index b3289fe..00c46be 100644 --- a/examples/whirlpools/idl.json +++ b/examples/whirlpools/idl.json @@ -1,804 +1,677 @@ { - "version": "0.1.0", - "name": "whirlpool", + "address": "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc", + "metadata": { + "name": "whirlpool", + "version": "0.1.0", + "spec": "0.1.0" + }, "instructions": [ { - "name": "initializeConfig", + "name": "initialize_config", + "discriminator": [208, 127, 21, 1, 194, 190, 196, 70], "accounts": [ { "name": "config", - "isMut": true, - "isSigner": true + "writable": true, + "signer": true }, { "name": "funder", - "isMut": true, - "isSigner": true + "writable": true, + "signer": true }, { - "name": "systemProgram", - "isMut": false, - "isSigner": false + "name": "system_program" } ], "args": [ { - "name": "feeAuthority", - "type": "publicKey" + "name": "fee_authority", + "type": "pubkey" }, { - "name": "collectProtocolFeesAuthority", - "type": "publicKey" + "name": "collect_protocol_fees_authority", + "type": "pubkey" }, { - "name": "rewardEmissionsSuperAuthority", - "type": "publicKey" + "name": "reward_emissions_super_authority", + "type": "pubkey" }, { - "name": "defaultProtocolFeeRate", + "name": "default_protocol_fee_rate", "type": "u16" } ] }, { - "name": "initializePool", + "name": "initialize_pool", + "discriminator": [95, 180, 10, 172, 84, 174, 232, 40], "accounts": [ { - "name": "whirlpoolsConfig", - "isMut": false, - "isSigner": false + "name": "whirlpools_config" }, { - "name": "tokenMintA", - "isMut": false, - "isSigner": false + "name": "token_mint_a" }, { - "name": "tokenMintB", - "isMut": false, - "isSigner": false + "name": "token_mint_b" }, { "name": "funder", - "isMut": true, - "isSigner": true + "writable": true, + "signer": true }, { "name": "whirlpool", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "tokenVaultA", - "isMut": true, - "isSigner": true + "name": "token_vault_a", + "writable": true, + "signer": true }, { - "name": "tokenVaultB", - "isMut": true, - "isSigner": true + "name": "token_vault_b", + "writable": true, + "signer": true }, { - "name": "feeTier", - "isMut": false, - "isSigner": false + "name": "fee_tier" }, { - "name": "tokenProgram", - "isMut": false, - "isSigner": false + "name": "token_program" }, { - "name": "systemProgram", - "isMut": false, - "isSigner": false + "name": "system_program" }, { - "name": "rent", - "isMut": false, - "isSigner": false + "name": "rent" } ], "args": [ { "name": "bumps", "type": { - "defined": "WhirlpoolBumps" + "defined": { + "name": "WhirlpoolBumps" + } } }, { - "name": "tickSpacing", + "name": "tick_spacing", "type": "u16" }, { - "name": "initialSqrtPrice", + "name": "initial_sqrt_price", "type": "u128" } ] }, { - "name": "initializeTickArray", + "name": "initialize_tick_array", + "discriminator": [11, 188, 193, 214, 141, 91, 149, 184], "accounts": [ { - "name": "whirlpool", - "isMut": false, - "isSigner": false + "name": "whirlpool" }, { "name": "funder", - "isMut": true, - "isSigner": true + "writable": true, + "signer": true }, { - "name": "tickArray", - "isMut": true, - "isSigner": false + "name": "tick_array", + "writable": true }, { - "name": "systemProgram", - "isMut": false, - "isSigner": false + "name": "system_program" } ], "args": [ { - "name": "startTickIndex", + "name": "start_tick_index", "type": "i32" } ] }, { - "name": "initializeFeeTier", + "name": "initialize_fee_tier", + "discriminator": [183, 74, 156, 160, 112, 2, 42, 30], "accounts": [ { - "name": "config", - "isMut": false, - "isSigner": false + "name": "config" }, { - "name": "feeTier", - "isMut": true, - "isSigner": false + "name": "fee_tier", + "writable": true }, { "name": "funder", - "isMut": true, - "isSigner": true + "writable": true, + "signer": true }, { - "name": "feeAuthority", - "isMut": false, - "isSigner": true + "name": "fee_authority", + "signer": true }, { - "name": "systemProgram", - "isMut": false, - "isSigner": false + "name": "system_program" } ], "args": [ { - "name": "tickSpacing", + "name": "tick_spacing", "type": "u16" }, { - "name": "defaultFeeRate", + "name": "default_fee_rate", "type": "u16" } ] }, { - "name": "initializeReward", + "name": "initialize_reward", + "discriminator": [95, 135, 192, 196, 242, 129, 230, 68], "accounts": [ { - "name": "rewardAuthority", - "isMut": false, - "isSigner": true + "name": "reward_authority", + "signer": true }, { "name": "funder", - "isMut": true, - "isSigner": true + "writable": true, + "signer": true }, { "name": "whirlpool", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "rewardMint", - "isMut": false, - "isSigner": false + "name": "reward_mint" }, { - "name": "rewardVault", - "isMut": true, - "isSigner": true + "name": "reward_vault", + "writable": true, + "signer": true }, { - "name": "tokenProgram", - "isMut": false, - "isSigner": false + "name": "token_program" }, { - "name": "systemProgram", - "isMut": false, - "isSigner": false + "name": "system_program" }, { - "name": "rent", - "isMut": false, - "isSigner": false + "name": "rent" } ], "args": [ { - "name": "rewardIndex", + "name": "reward_index", "type": "u8" } ] }, { - "name": "setRewardEmissions", + "name": "set_reward_emissions", + "discriminator": [13, 197, 86, 168, 109, 176, 27, 244], "accounts": [ { "name": "whirlpool", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "rewardAuthority", - "isMut": false, - "isSigner": true + "name": "reward_authority", + "signer": true }, { - "name": "rewardVault", - "isMut": false, - "isSigner": false + "name": "reward_vault" } ], "args": [ { - "name": "rewardIndex", + "name": "reward_index", "type": "u8" }, { - "name": "emissionsPerSecondX64", + "name": "emissions_per_second_x64", "type": "u128" } ] }, { - "name": "openPosition", + "name": "open_position", + "discriminator": [135, 128, 47, 77, 15, 152, 240, 49], "accounts": [ { "name": "funder", - "isMut": true, - "isSigner": true + "writable": true, + "signer": true }, { - "name": "owner", - "isMut": false, - "isSigner": false + "name": "owner" }, { "name": "position", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "positionMint", - "isMut": true, - "isSigner": true + "name": "position_mint", + "writable": true, + "signer": true }, { - "name": "positionTokenAccount", - "isMut": true, - "isSigner": false + "name": "position_token_account", + "writable": true }, { - "name": "whirlpool", - "isMut": false, - "isSigner": false + "name": "whirlpool" }, { - "name": "tokenProgram", - "isMut": false, - "isSigner": false + "name": "token_program" }, { - "name": "systemProgram", - "isMut": false, - "isSigner": false + "name": "system_program" }, { - "name": "rent", - "isMut": false, - "isSigner": false + "name": "rent" }, { - "name": "associatedTokenProgram", - "isMut": false, - "isSigner": false + "name": "associated_token_program" } ], "args": [ { "name": "bumps", "type": { - "defined": "OpenPositionBumps" + "defined": { + "name": "OpenPositionBumps" + } } }, { - "name": "tickLowerIndex", + "name": "tick_lower_index", "type": "i32" }, { - "name": "tickUpperIndex", + "name": "tick_upper_index", "type": "i32" } ] }, { - "name": "openPositionWithMetadata", + "name": "open_position_with_metadata", + "discriminator": [242, 29, 134, 48, 58, 110, 14, 60], "accounts": [ { "name": "funder", - "isMut": true, - "isSigner": true + "writable": true, + "signer": true }, { - "name": "owner", - "isMut": false, - "isSigner": false + "name": "owner" }, { "name": "position", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "positionMint", - "isMut": true, - "isSigner": true + "name": "position_mint", + "writable": true, + "signer": true }, { - "name": "positionMetadataAccount", - "isMut": true, - "isSigner": false + "name": "position_metadata_account", + "writable": true }, { - "name": "positionTokenAccount", - "isMut": true, - "isSigner": false + "name": "position_token_account", + "writable": true }, { - "name": "whirlpool", - "isMut": false, - "isSigner": false + "name": "whirlpool" }, { - "name": "tokenProgram", - "isMut": false, - "isSigner": false + "name": "token_program" }, { - "name": "systemProgram", - "isMut": false, - "isSigner": false + "name": "system_program" }, { - "name": "rent", - "isMut": false, - "isSigner": false + "name": "rent" }, { - "name": "associatedTokenProgram", - "isMut": false, - "isSigner": false + "name": "associated_token_program" }, { - "name": "metadataProgram", - "isMut": false, - "isSigner": false + "name": "metadata_program" }, { - "name": "metadataUpdateAuth", - "isMut": false, - "isSigner": false + "name": "metadata_update_auth" } ], "args": [ { "name": "bumps", "type": { - "defined": "OpenPositionWithMetadataBumps" + "defined": { + "name": "OpenPositionWithMetadataBumps" + } } }, { - "name": "tickLowerIndex", + "name": "tick_lower_index", "type": "i32" }, { - "name": "tickUpperIndex", + "name": "tick_upper_index", "type": "i32" } ] }, { - "name": "increaseLiquidity", + "name": "increase_liquidity", + "discriminator": [46, 156, 243, 118, 13, 205, 251, 178], "accounts": [ { "name": "whirlpool", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "tokenProgram", - "isMut": false, - "isSigner": false + "name": "token_program" }, { - "name": "positionAuthority", - "isMut": false, - "isSigner": true + "name": "position_authority", + "signer": true }, { "name": "position", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "positionTokenAccount", - "isMut": false, - "isSigner": false + "name": "position_token_account" }, { - "name": "tokenOwnerAccountA", - "isMut": true, - "isSigner": false + "name": "token_owner_account_a", + "writable": true }, { - "name": "tokenOwnerAccountB", - "isMut": true, - "isSigner": false + "name": "token_owner_account_b", + "writable": true }, { - "name": "tokenVaultA", - "isMut": true, - "isSigner": false + "name": "token_vault_a", + "writable": true }, { - "name": "tokenVaultB", - "isMut": true, - "isSigner": false + "name": "token_vault_b", + "writable": true }, { - "name": "tickArrayLower", - "isMut": true, - "isSigner": false + "name": "tick_array_lower", + "writable": true }, { - "name": "tickArrayUpper", - "isMut": true, - "isSigner": false + "name": "tick_array_upper", + "writable": true } ], "args": [ { - "name": "liquidityAmount", + "name": "liquidity_amount", "type": "u128" }, { - "name": "tokenMaxA", + "name": "token_max_a", "type": "u64" }, { - "name": "tokenMaxB", + "name": "token_max_b", "type": "u64" } ] }, { - "name": "decreaseLiquidity", + "name": "decrease_liquidity", + "discriminator": [160, 38, 208, 111, 104, 91, 44, 1], "accounts": [ { "name": "whirlpool", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "tokenProgram", - "isMut": false, - "isSigner": false + "name": "token_program" }, { - "name": "positionAuthority", - "isMut": false, - "isSigner": true + "name": "position_authority", + "signer": true }, { "name": "position", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "positionTokenAccount", - "isMut": false, - "isSigner": false + "name": "position_token_account" }, { - "name": "tokenOwnerAccountA", - "isMut": true, - "isSigner": false + "name": "token_owner_account_a", + "writable": true }, { - "name": "tokenOwnerAccountB", - "isMut": true, - "isSigner": false + "name": "token_owner_account_b", + "writable": true }, { - "name": "tokenVaultA", - "isMut": true, - "isSigner": false + "name": "token_vault_a", + "writable": true }, { - "name": "tokenVaultB", - "isMut": true, - "isSigner": false + "name": "token_vault_b", + "writable": true }, { - "name": "tickArrayLower", - "isMut": true, - "isSigner": false + "name": "tick_array_lower", + "writable": true }, { - "name": "tickArrayUpper", - "isMut": true, - "isSigner": false + "name": "tick_array_upper", + "writable": true } ], "args": [ { - "name": "liquidityAmount", + "name": "liquidity_amount", "type": "u128" }, { - "name": "tokenMinA", + "name": "token_min_a", "type": "u64" }, { - "name": "tokenMinB", + "name": "token_min_b", "type": "u64" } ] }, { - "name": "updateFeesAndRewards", + "name": "update_fees_and_rewards", + "discriminator": [154, 230, 250, 13, 236, 209, 75, 223], "accounts": [ { "name": "whirlpool", - "isMut": true, - "isSigner": false + "writable": true }, { "name": "position", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "tickArrayLower", - "isMut": false, - "isSigner": false + "name": "tick_array_lower" }, { - "name": "tickArrayUpper", - "isMut": false, - "isSigner": false + "name": "tick_array_upper" } ], "args": [] }, { - "name": "collectFees", + "name": "collect_fees", + "discriminator": [164, 152, 207, 99, 30, 186, 19, 182], "accounts": [ { - "name": "whirlpool", - "isMut": false, - "isSigner": false + "name": "whirlpool" }, { - "name": "positionAuthority", - "isMut": false, - "isSigner": true + "name": "position_authority", + "signer": true }, { "name": "position", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "positionTokenAccount", - "isMut": false, - "isSigner": false + "name": "position_token_account" }, { - "name": "tokenOwnerAccountA", - "isMut": true, - "isSigner": false + "name": "token_owner_account_a", + "writable": true }, { - "name": "tokenVaultA", - "isMut": true, - "isSigner": false + "name": "token_vault_a", + "writable": true }, { - "name": "tokenOwnerAccountB", - "isMut": true, - "isSigner": false + "name": "token_owner_account_b", + "writable": true }, { - "name": "tokenVaultB", - "isMut": true, - "isSigner": false + "name": "token_vault_b", + "writable": true }, { - "name": "tokenProgram", - "isMut": false, - "isSigner": false + "name": "token_program" } ], "args": [] }, { - "name": "collectReward", + "name": "collect_reward", + "discriminator": [70, 5, 132, 87, 86, 235, 177, 34], "accounts": [ { - "name": "whirlpool", - "isMut": false, - "isSigner": false + "name": "whirlpool" }, { - "name": "positionAuthority", - "isMut": false, - "isSigner": true + "name": "position_authority", + "signer": true }, { "name": "position", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "positionTokenAccount", - "isMut": false, - "isSigner": false + "name": "position_token_account" }, { - "name": "rewardOwnerAccount", - "isMut": true, - "isSigner": false + "name": "reward_owner_account", + "writable": true }, { - "name": "rewardVault", - "isMut": true, - "isSigner": false + "name": "reward_vault", + "writable": true }, { - "name": "tokenProgram", - "isMut": false, - "isSigner": false + "name": "token_program" } ], "args": [ { - "name": "rewardIndex", + "name": "reward_index", "type": "u8" } ] }, { - "name": "collectProtocolFees", + "name": "collect_protocol_fees", + "discriminator": [22, 67, 23, 98, 150, 178, 70, 220], "accounts": [ { - "name": "whirlpoolsConfig", - "isMut": false, - "isSigner": false + "name": "whirlpools_config" }, { "name": "whirlpool", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "collectProtocolFeesAuthority", - "isMut": false, - "isSigner": true + "name": "collect_protocol_fees_authority", + "signer": true }, { - "name": "tokenVaultA", - "isMut": true, - "isSigner": false + "name": "token_vault_a", + "writable": true }, { - "name": "tokenVaultB", - "isMut": true, - "isSigner": false + "name": "token_vault_b", + "writable": true }, { - "name": "tokenDestinationA", - "isMut": true, - "isSigner": false + "name": "token_destination_a", + "writable": true }, { - "name": "tokenDestinationB", - "isMut": true, - "isSigner": false + "name": "token_destination_b", + "writable": true }, { - "name": "tokenProgram", - "isMut": false, - "isSigner": false + "name": "token_program" } ], "args": [] }, { "name": "swap", + "discriminator": [248, 198, 158, 145, 225, 117, 135, 200], "accounts": [ { - "name": "tokenProgram", - "isMut": false, - "isSigner": false + "name": "token_program" }, { - "name": "tokenAuthority", - "isMut": false, - "isSigner": true + "name": "token_authority", + "signer": true }, { "name": "whirlpool", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "tokenOwnerAccountA", - "isMut": true, - "isSigner": false + "name": "token_owner_account_a", + "writable": true }, { - "name": "tokenVaultA", - "isMut": true, - "isSigner": false + "name": "token_vault_a", + "writable": true }, { - "name": "tokenOwnerAccountB", - "isMut": true, - "isSigner": false + "name": "token_owner_account_b", + "writable": true }, { - "name": "tokenVaultB", - "isMut": true, - "isSigner": false + "name": "token_vault_b", + "writable": true }, { - "name": "tickArray0", - "isMut": true, - "isSigner": false + "name": "tick_array0", + "writable": true }, { - "name": "tickArray1", - "isMut": true, - "isSigner": false + "name": "tick_array1", + "writable": true }, { - "name": "tickArray2", - "isMut": true, - "isSigner": false + "name": "tick_array2", + "writable": true }, { - "name": "oracle", - "isMut": false, - "isSigner": false + "name": "oracle" } ], "args": [ @@ -807,274 +680,241 @@ "type": "u64" }, { - "name": "otherAmountThreshold", + "name": "other_amount_threshold", "type": "u64" }, { - "name": "sqrtPriceLimit", + "name": "sqrt_price_limit", "type": "u128" }, { - "name": "amountSpecifiedIsInput", + "name": "amount_specified_is_input", "type": "bool" }, { - "name": "aToB", + "name": "a_to_b", "type": "bool" } ] }, { - "name": "closePosition", + "name": "close_position", + "discriminator": [123, 134, 81, 0, 49, 68, 98, 98], "accounts": [ { - "name": "positionAuthority", - "isMut": false, - "isSigner": true + "name": "position_authority", + "signer": true }, { "name": "receiver", - "isMut": true, - "isSigner": false + "writable": true }, { "name": "position", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "positionMint", - "isMut": true, - "isSigner": false + "name": "position_mint", + "writable": true }, { - "name": "positionTokenAccount", - "isMut": true, - "isSigner": false + "name": "position_token_account", + "writable": true }, { - "name": "tokenProgram", - "isMut": false, - "isSigner": false + "name": "token_program" } ], "args": [] }, { - "name": "setDefaultFeeRate", + "name": "set_default_fee_rate", + "discriminator": [118, 215, 214, 157, 182, 229, 208, 228], "accounts": [ { - "name": "whirlpoolsConfig", - "isMut": false, - "isSigner": false + "name": "whirlpools_config" }, { - "name": "feeTier", - "isMut": true, - "isSigner": false + "name": "fee_tier", + "writable": true }, { - "name": "feeAuthority", - "isMut": false, - "isSigner": true + "name": "fee_authority", + "signer": true } ], "args": [ { - "name": "defaultFeeRate", + "name": "default_fee_rate", "type": "u16" } ] }, { - "name": "setDefaultProtocolFeeRate", + "name": "set_default_protocol_fee_rate", + "discriminator": [107, 205, 249, 226, 151, 35, 86, 0], "accounts": [ { - "name": "whirlpoolsConfig", - "isMut": true, - "isSigner": false + "name": "whirlpools_config", + "writable": true }, { - "name": "feeAuthority", - "isMut": false, - "isSigner": true + "name": "fee_authority", + "signer": true } ], "args": [ { - "name": "defaultProtocolFeeRate", + "name": "default_protocol_fee_rate", "type": "u16" } ] }, { - "name": "setFeeRate", + "name": "set_fee_rate", + "discriminator": [53, 243, 137, 65, 8, 140, 158, 6], "accounts": [ { - "name": "whirlpoolsConfig", - "isMut": false, - "isSigner": false + "name": "whirlpools_config" }, { "name": "whirlpool", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "feeAuthority", - "isMut": false, - "isSigner": true + "name": "fee_authority", + "signer": true } ], "args": [ { - "name": "feeRate", + "name": "fee_rate", "type": "u16" } ] }, { - "name": "setProtocolFeeRate", + "name": "set_protocol_fee_rate", + "discriminator": [95, 7, 4, 50, 154, 79, 156, 131], "accounts": [ { - "name": "whirlpoolsConfig", - "isMut": false, - "isSigner": false + "name": "whirlpools_config" }, { "name": "whirlpool", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "feeAuthority", - "isMut": false, - "isSigner": true + "name": "fee_authority", + "signer": true } ], "args": [ { - "name": "protocolFeeRate", + "name": "protocol_fee_rate", "type": "u16" } ] }, { - "name": "setFeeAuthority", + "name": "set_fee_authority", + "discriminator": [31, 1, 50, 87, 237, 101, 97, 132], "accounts": [ { - "name": "whirlpoolsConfig", - "isMut": true, - "isSigner": false + "name": "whirlpools_config", + "writable": true }, { - "name": "feeAuthority", - "isMut": false, - "isSigner": true + "name": "fee_authority", + "signer": true }, { - "name": "newFeeAuthority", - "isMut": false, - "isSigner": false + "name": "new_fee_authority" } ], "args": [] }, { - "name": "setCollectProtocolFeesAuthority", + "name": "set_collect_protocol_fees_authority", + "discriminator": [34, 150, 93, 244, 139, 225, 233, 67], "accounts": [ { - "name": "whirlpoolsConfig", - "isMut": true, - "isSigner": false + "name": "whirlpools_config", + "writable": true }, { - "name": "collectProtocolFeesAuthority", - "isMut": false, - "isSigner": true + "name": "collect_protocol_fees_authority", + "signer": true }, { - "name": "newCollectProtocolFeesAuthority", - "isMut": false, - "isSigner": false + "name": "new_collect_protocol_fees_authority" } ], "args": [] }, { - "name": "setRewardAuthority", + "name": "set_reward_authority", + "discriminator": [34, 39, 183, 252, 83, 28, 85, 127], "accounts": [ { "name": "whirlpool", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "rewardAuthority", - "isMut": false, - "isSigner": true + "name": "reward_authority", + "signer": true }, { - "name": "newRewardAuthority", - "isMut": false, - "isSigner": false + "name": "new_reward_authority" } ], "args": [ { - "name": "rewardIndex", + "name": "reward_index", "type": "u8" } ] }, { - "name": "setRewardAuthorityBySuperAuthority", + "name": "set_reward_authority_by_super_authority", + "discriminator": [240, 154, 201, 198, 148, 93, 56, 25], "accounts": [ { - "name": "whirlpoolsConfig", - "isMut": false, - "isSigner": false + "name": "whirlpools_config" }, { "name": "whirlpool", - "isMut": true, - "isSigner": false + "writable": true }, { - "name": "rewardEmissionsSuperAuthority", - "isMut": false, - "isSigner": true + "name": "reward_emissions_super_authority", + "signer": true }, { - "name": "newRewardAuthority", - "isMut": false, - "isSigner": false + "name": "new_reward_authority" } ], "args": [ { - "name": "rewardIndex", + "name": "reward_index", "type": "u8" } ] }, { - "name": "setRewardEmissionsSuperAuthority", + "name": "set_reward_emissions_super_authority", + "discriminator": [207, 5, 200, 209, 122, 56, 82, 183], "accounts": [ { - "name": "whirlpoolsConfig", - "isMut": true, - "isSigner": false + "name": "whirlpools_config", + "writable": true }, { - "name": "rewardEmissionsSuperAuthority", - "isMut": false, - "isSigner": true + "name": "reward_emissions_super_authority", + "signer": true }, { - "name": "newRewardEmissionsSuperAuthority", - "isMut": false, - "isSigner": false + "name": "new_reward_emissions_super_authority" } ], "args": [] @@ -1083,217 +923,489 @@ "accounts": [ { "name": "WhirlpoolsConfig", + "discriminator": [157, 20, 49, 224, 217, 87, 193, 254] + }, + { + "name": "FeeTier", + "discriminator": [56, 75, 159, 76, 142, 68, 190, 105] + }, + { + "name": "Position", + "discriminator": [170, 188, 143, 228, 122, 64, 247, 208] + }, + { + "name": "TickArray", + "discriminator": [69, 97, 189, 190, 110, 7, 66, 187] + }, + { + "name": "Whirlpool", + "discriminator": [63, 149, 209, 12, 225, 128, 99, 9] + } + ], + "errors": [ + { + "code": 6000, + "name": "InvalidEnum", + "msg": "Enum value could not be converted" + }, + { + "code": 6001, + "name": "InvalidStartTick", + "msg": "Invalid start tick index provided." + }, + { + "code": 6002, + "name": "TickArrayExistInPool", + "msg": "Tick-array already exists in this whirlpool" + }, + { + "code": 6003, + "name": "TickArrayIndexOutofBounds", + "msg": "Attempt to search for a tick-array failed" + }, + { + "code": 6004, + "name": "InvalidTickSpacing", + "msg": "Tick-spacing is not supported" + }, + { + "code": 6005, + "name": "ClosePositionNotEmpty", + "msg": "Position is not empty It cannot be closed" + }, + { + "code": 6006, + "name": "DivideByZero", + "msg": "Unable to divide by zero" + }, + { + "code": 6007, + "name": "NumberCastError", + "msg": "Unable to cast number into BigInt" + }, + { + "code": 6008, + "name": "NumberDownCastError", + "msg": "Unable to down cast number" + }, + { + "code": 6009, + "name": "TickNotFound", + "msg": "Tick not found within tick array" + }, + { + "code": 6010, + "name": "InvalidTickIndex", + "msg": "Provided tick index is either out of bounds or uninitializable" + }, + { + "code": 6011, + "name": "SqrtPriceOutOfBounds", + "msg": "Provided sqrt price out of bounds" + }, + { + "code": 6012, + "name": "LiquidityZero", + "msg": "Liquidity amount must be greater than zero" + }, + { + "code": 6013, + "name": "LiquidityTooHigh", + "msg": "Liquidity amount must be less than i64::MAX" + }, + { + "code": 6014, + "name": "LiquidityOverflow", + "msg": "Liquidity overflow" + }, + { + "code": 6015, + "name": "LiquidityUnderflow", + "msg": "Liquidity underflow" + }, + { + "code": 6016, + "name": "LiquidityNetError", + "msg": "Tick liquidity net underflowed or overflowed" + }, + { + "code": 6017, + "name": "TokenMaxExceeded", + "msg": "Exceeded token max" + }, + { + "code": 6018, + "name": "TokenMinSubceeded", + "msg": "Did not meet token min" + }, + { + "code": 6019, + "name": "MissingOrInvalidDelegate", + "msg": "Position token account has a missing or invalid delegate" + }, + { + "code": 6020, + "name": "InvalidPositionTokenAmount", + "msg": "Position token amount must be 1" + }, + { + "code": 6021, + "name": "InvalidTimestampConversion", + "msg": "Timestamp should be convertible from i64 to u64" + }, + { + "code": 6022, + "name": "InvalidTimestamp", + "msg": "Timestamp should be greater than the last updated timestamp" + }, + { + "code": 6023, + "name": "InvalidTickArraySequence", + "msg": "Invalid tick array sequence provided for instruction." + }, + { + "code": 6024, + "name": "InvalidTokenMintOrder", + "msg": "Token Mint in wrong order" + }, + { + "code": 6025, + "name": "RewardNotInitialized", + "msg": "Reward not initialized" + }, + { + "code": 6026, + "name": "InvalidRewardIndex", + "msg": "Invalid reward index" + }, + { + "code": 6027, + "name": "RewardVaultAmountInsufficient", + "msg": "Reward vault requires amount to support emissions for at least one day" + }, + { + "code": 6028, + "name": "FeeRateMaxExceeded", + "msg": "Exceeded max fee rate" + }, + { + "code": 6029, + "name": "ProtocolFeeRateMaxExceeded", + "msg": "Exceeded max protocol fee rate" + }, + { + "code": 6030, + "name": "MultiplicationShiftRightOverflow", + "msg": "Multiplication with shift right overflow" + }, + { + "code": 6031, + "name": "MulDivOverflow", + "msg": "Muldiv overflow" + }, + { + "code": 6032, + "name": "MulDivInvalidInput", + "msg": "Invalid div_u256 input" + }, + { + "code": 6033, + "name": "MultiplicationOverflow", + "msg": "Multiplication overflow" + }, + { + "code": 6034, + "name": "InvalidSqrtPriceLimitDirection", + "msg": "Provided SqrtPriceLimit not in the same direction as the swap." + }, + { + "code": 6035, + "name": "ZeroTradableAmount", + "msg": "There are no tradable amount to swap." + }, + { + "code": 6036, + "name": "AmountOutBelowMinimum", + "msg": "Amount out below minimum threshold" + }, + { + "code": 6037, + "name": "AmountInAboveMaximum", + "msg": "Amount in above maximum threshold" + }, + { + "code": 6038, + "name": "TickArraySequenceInvalidIndex", + "msg": "Invalid index for tick array sequence" + }, + { + "code": 6039, + "name": "AmountCalcOverflow", + "msg": "Amount calculated overflows" + }, + { + "code": 6040, + "name": "AmountRemainingOverflow", + "msg": "Amount remaining overflows" + } + ], + "types": [ + { + "name": "OpenPositionBumps", "type": { "kind": "struct", "fields": [ { - "name": "feeAuthority", - "type": "publicKey" - }, - { - "name": "collectProtocolFeesAuthority", - "type": "publicKey" - }, - { - "name": "rewardEmissionsSuperAuthority", - "type": "publicKey" - }, - { - "name": "defaultProtocolFeeRate", - "type": "u16" + "name": "position_bump", + "type": "u8" } ] } }, { - "name": "FeeTier", + "name": "OpenPositionWithMetadataBumps", "type": { "kind": "struct", "fields": [ { - "name": "whirlpoolsConfig", - "type": "publicKey" - }, - { - "name": "tickSpacing", - "type": "u16" + "name": "position_bump", + "type": "u8" }, { - "name": "defaultFeeRate", - "type": "u16" + "name": "metadata_bump", + "type": "u8" } ] } }, { - "name": "Position", + "name": "PositionRewardInfo", "type": { "kind": "struct", "fields": [ { - "name": "whirlpool", - "type": "publicKey" - }, - { - "name": "positionMint", - "type": "publicKey" + "name": "growth_inside_checkpoint", + "type": "u128" }, { - "name": "liquidity", - "type": "u128" - }, + "name": "amount_owed", + "type": "u64" + } + ] + } + }, + { + "name": "Tick", + "type": { + "kind": "struct", + "fields": [ { - "name": "tickLowerIndex", - "type": "i32" + "name": "initialized", + "type": "bool" }, { - "name": "tickUpperIndex", - "type": "i32" + "name": "liquidity_net", + "type": "i128" }, { - "name": "feeGrowthCheckpointA", + "name": "liquidity_gross", "type": "u128" }, { - "name": "feeOwedA", - "type": "u64" - }, - { - "name": "feeGrowthCheckpointB", + "name": "fee_growth_outside_a", "type": "u128" }, { - "name": "feeOwedB", - "type": "u64" + "name": "fee_growth_outside_b", + "type": "u128" }, { - "name": "rewardInfos", + "name": "reward_growths_outside", "type": { - "array": [ - { - "defined": "PositionRewardInfo" - }, - 3 - ] + "array": ["u128", 3] } } ] } }, { - "name": "TickArray", + "name": "WhirlpoolRewardInfo", "type": { "kind": "struct", "fields": [ { - "name": "startTickIndex", - "type": "i32" + "name": "mint", + "type": "pubkey" }, { - "name": "ticks", - "type": { - "array": [ - { - "defined": "Tick" - }, - 88 - ] - } + "name": "vault", + "type": "pubkey" }, { - "name": "whirlpool", - "type": "publicKey" + "name": "authority", + "type": "pubkey" + }, + { + "name": "emissions_per_second_x64", + "type": "u128" + }, + { + "name": "growth_global_x64", + "type": "u128" } ] } }, { - "name": "Whirlpool", + "name": "WhirlpoolBumps", "type": { "kind": "struct", "fields": [ { - "name": "whirlpoolsConfig", - "type": "publicKey" + "name": "whirlpool_bump", + "type": "u8" + } + ] + } + }, + { + "name": "CurrIndex", + "type": { + "kind": "enum", + "variants": [ + { + "name": "Below" }, { - "name": "whirlpoolBump", - "type": { - "array": ["u8", 1] - } + "name": "Inside" }, { - "name": "tickSpacing", - "type": "u16" + "name": "Above" + } + ] + } + }, + { + "name": "TickLabel", + "type": { + "kind": "enum", + "variants": [ + { + "name": "Upper" }, { - "name": "tickSpacingSeed", - "type": { - "array": ["u8", 2] - } + "name": "Lower" + } + ] + } + }, + { + "name": "Direction", + "type": { + "kind": "enum", + "variants": [ + { + "name": "Left" }, { - "name": "feeRate", - "type": "u16" + "name": "Right" + } + ] + } + }, + { + "name": "WhirlpoolsConfig", + "type": { + "kind": "struct", + "fields": [ + { + "name": "fee_authority", + "type": "pubkey" }, { - "name": "protocolFeeRate", - "type": "u16" + "name": "collect_protocol_fees_authority", + "type": "pubkey" }, { - "name": "liquidity", - "type": "u128" + "name": "reward_emissions_super_authority", + "type": "pubkey" }, { - "name": "sqrtPrice", - "type": "u128" + "name": "default_protocol_fee_rate", + "type": "u16" + } + ] + } + }, + { + "name": "FeeTier", + "type": { + "kind": "struct", + "fields": [ + { + "name": "whirlpools_config", + "type": "pubkey" }, { - "name": "tickCurrentIndex", - "type": "i32" + "name": "tick_spacing", + "type": "u16" }, { - "name": "protocolFeeOwedA", - "type": "u64" + "name": "default_fee_rate", + "type": "u16" + } + ] + } + }, + { + "name": "Position", + "type": { + "kind": "struct", + "fields": [ + { + "name": "whirlpool", + "type": "pubkey" }, { - "name": "protocolFeeOwedB", - "type": "u64" + "name": "position_mint", + "type": "pubkey" }, { - "name": "tokenMintA", - "type": "publicKey" + "name": "liquidity", + "type": "u128" }, { - "name": "tokenVaultA", - "type": "publicKey" + "name": "tick_lower_index", + "type": "i32" }, { - "name": "feeGrowthGlobalA", - "type": "u128" + "name": "tick_upper_index", + "type": "i32" }, { - "name": "tokenMintB", - "type": "publicKey" + "name": "fee_growth_checkpoint_a", + "type": "u128" }, { - "name": "tokenVaultB", - "type": "publicKey" + "name": "fee_owed_a", + "type": "u64" }, { - "name": "feeGrowthGlobalB", + "name": "fee_growth_checkpoint_b", "type": "u128" }, { - "name": "rewardLastUpdatedTimestamp", + "name": "fee_owed_b", "type": "u64" }, { - "name": "rewardInfos", + "name": "reward_infos", "type": { "array": [ { - "defined": "WhirlpoolRewardInfo" + "defined": { + "name": "PositionRewardInfo" + } }, 3 ] @@ -1301,378 +1413,132 @@ } ] } - } - ], - "types": [ - { - "name": "OpenPositionBumps", - "type": { - "kind": "struct", - "fields": [ - { - "name": "positionBump", - "type": "u8" - } - ] - } }, { - "name": "OpenPositionWithMetadataBumps", + "name": "TickArray", "type": { "kind": "struct", "fields": [ { - "name": "positionBump", - "type": "u8" + "name": "start_tick_index", + "type": "i32" }, { - "name": "metadataBump", - "type": "u8" + "name": "ticks", + "type": { + "array": [ + { + "defined": { + "name": "Tick" + } + }, + 88 + ] + } + }, + { + "name": "whirlpool", + "type": "pubkey" } ] } }, { - "name": "PositionRewardInfo", + "name": "Whirlpool", "type": { "kind": "struct", "fields": [ { - "name": "growthInsideCheckpoint", - "type": "u128" + "name": "whirlpools_config", + "type": "pubkey" }, { - "name": "amountOwed", - "type": "u64" - } - ] - } - }, - { - "name": "Tick", - "type": { - "kind": "struct", - "fields": [ + "name": "whirlpool_bump", + "type": { + "array": ["u8", 1] + } + }, { - "name": "initialized", - "type": "bool" + "name": "tick_spacing", + "type": "u16" }, { - "name": "liquidityNet", - "type": "i128" + "name": "tick_spacing_seed", + "type": { + "array": ["u8", 2] + } }, { - "name": "liquidityGross", - "type": "u128" + "name": "fee_rate", + "type": "u16" + }, + { + "name": "protocol_fee_rate", + "type": "u16" }, { - "name": "feeGrowthOutsideA", + "name": "liquidity", "type": "u128" }, { - "name": "feeGrowthOutsideB", + "name": "sqrt_price", "type": "u128" }, { - "name": "rewardGrowthsOutside", - "type": { - "array": ["u128", 3] - } - } - ] - } - }, - { - "name": "WhirlpoolRewardInfo", - "type": { - "kind": "struct", - "fields": [ + "name": "tick_current_index", + "type": "i32" + }, { - "name": "mint", - "type": "publicKey" + "name": "protocol_fee_owed_a", + "type": "u64" }, { - "name": "vault", - "type": "publicKey" + "name": "protocol_fee_owed_b", + "type": "u64" }, { - "name": "authority", - "type": "publicKey" + "name": "token_mint_a", + "type": "pubkey" }, { - "name": "emissionsPerSecondX64", - "type": "u128" + "name": "token_vault_a", + "type": "pubkey" }, { - "name": "growthGlobalX64", + "name": "fee_growth_global_a", "type": "u128" - } - ] - } - }, - { - "name": "WhirlpoolBumps", - "type": { - "kind": "struct", - "fields": [ - { - "name": "whirlpoolBump", - "type": "u8" - } - ] - } - }, - { - "name": "CurrIndex", - "type": { - "kind": "enum", - "variants": [ - { - "name": "Below" }, { - "name": "Inside" + "name": "token_mint_b", + "type": "pubkey" }, { - "name": "Above" - } - ] - } - }, - { - "name": "TickLabel", - "type": { - "kind": "enum", - "variants": [ - { - "name": "Upper" + "name": "token_vault_b", + "type": "pubkey" }, { - "name": "Lower" - } - ] - } - }, - { - "name": "Direction", - "type": { - "kind": "enum", - "variants": [ + "name": "fee_growth_global_b", + "type": "u128" + }, { - "name": "Left" + "name": "reward_last_updated_timestamp", + "type": "u64" }, { - "name": "Right" + "name": "reward_infos", + "type": { + "array": [ + { + "defined": { + "name": "WhirlpoolRewardInfo" + } + }, + 3 + ] + } } ] } } - ], - "errors": [ - { - "code": 6000, - "name": "InvalidEnum", - "msg": "Enum value could not be converted" - }, - { - "code": 6001, - "name": "InvalidStartTick", - "msg": "Invalid start tick index provided." - }, - { - "code": 6002, - "name": "TickArrayExistInPool", - "msg": "Tick-array already exists in this whirlpool" - }, - { - "code": 6003, - "name": "TickArrayIndexOutofBounds", - "msg": "Attempt to search for a tick-array failed" - }, - { - "code": 6004, - "name": "InvalidTickSpacing", - "msg": "Tick-spacing is not supported" - }, - { - "code": 6005, - "name": "ClosePositionNotEmpty", - "msg": "Position is not empty It cannot be closed" - }, - { - "code": 6006, - "name": "DivideByZero", - "msg": "Unable to divide by zero" - }, - { - "code": 6007, - "name": "NumberCastError", - "msg": "Unable to cast number into BigInt" - }, - { - "code": 6008, - "name": "NumberDownCastError", - "msg": "Unable to down cast number" - }, - { - "code": 6009, - "name": "TickNotFound", - "msg": "Tick not found within tick array" - }, - { - "code": 6010, - "name": "InvalidTickIndex", - "msg": "Provided tick index is either out of bounds or uninitializable" - }, - { - "code": 6011, - "name": "SqrtPriceOutOfBounds", - "msg": "Provided sqrt price out of bounds" - }, - { - "code": 6012, - "name": "LiquidityZero", - "msg": "Liquidity amount must be greater than zero" - }, - { - "code": 6013, - "name": "LiquidityTooHigh", - "msg": "Liquidity amount must be less than i64::MAX" - }, - { - "code": 6014, - "name": "LiquidityOverflow", - "msg": "Liquidity overflow" - }, - { - "code": 6015, - "name": "LiquidityUnderflow", - "msg": "Liquidity underflow" - }, - { - "code": 6016, - "name": "LiquidityNetError", - "msg": "Tick liquidity net underflowed or overflowed" - }, - { - "code": 6017, - "name": "TokenMaxExceeded", - "msg": "Exceeded token max" - }, - { - "code": 6018, - "name": "TokenMinSubceeded", - "msg": "Did not meet token min" - }, - { - "code": 6019, - "name": "MissingOrInvalidDelegate", - "msg": "Position token account has a missing or invalid delegate" - }, - { - "code": 6020, - "name": "InvalidPositionTokenAmount", - "msg": "Position token amount must be 1" - }, - { - "code": 6021, - "name": "InvalidTimestampConversion", - "msg": "Timestamp should be convertible from i64 to u64" - }, - { - "code": 6022, - "name": "InvalidTimestamp", - "msg": "Timestamp should be greater than the last updated timestamp" - }, - { - "code": 6023, - "name": "InvalidTickArraySequence", - "msg": "Invalid tick array sequence provided for instruction." - }, - { - "code": 6024, - "name": "InvalidTokenMintOrder", - "msg": "Token Mint in wrong order" - }, - { - "code": 6025, - "name": "RewardNotInitialized", - "msg": "Reward not initialized" - }, - { - "code": 6026, - "name": "InvalidRewardIndex", - "msg": "Invalid reward index" - }, - { - "code": 6027, - "name": "RewardVaultAmountInsufficient", - "msg": "Reward vault requires amount to support emissions for at least one day" - }, - { - "code": 6028, - "name": "FeeRateMaxExceeded", - "msg": "Exceeded max fee rate" - }, - { - "code": 6029, - "name": "ProtocolFeeRateMaxExceeded", - "msg": "Exceeded max protocol fee rate" - }, - { - "code": 6030, - "name": "MultiplicationShiftRightOverflow", - "msg": "Multiplication with shift right overflow" - }, - { - "code": 6031, - "name": "MulDivOverflow", - "msg": "Muldiv overflow" - }, - { - "code": 6032, - "name": "MulDivInvalidInput", - "msg": "Invalid div_u256 input" - }, - { - "code": 6033, - "name": "MultiplicationOverflow", - "msg": "Multiplication overflow" - }, - { - "code": 6034, - "name": "InvalidSqrtPriceLimitDirection", - "msg": "Provided SqrtPriceLimit not in the same direction as the swap." - }, - { - "code": 6035, - "name": "ZeroTradableAmount", - "msg": "There are no tradable amount to swap." - }, - { - "code": 6036, - "name": "AmountOutBelowMinimum", - "msg": "Amount out below minimum threshold" - }, - { - "code": 6037, - "name": "AmountInAboveMaximum", - "msg": "Amount in above maximum threshold" - }, - { - "code": 6038, - "name": "TickArraySequenceInvalidIndex", - "msg": "Invalid index for tick array sequence" - }, - { - "code": 6039, - "name": "AmountCalcOverflow", - "msg": "Amount calculated overflows" - }, - { - "code": 6040, - "name": "AmountRemainingOverflow", - "msg": "Amount remaining overflows" - } ] } diff --git a/examples/whirlpools/src/lib.rs b/examples/whirlpools/src/lib.rs index 1e54e43..461ddf3 100644 --- a/examples/whirlpools/src/lib.rs +++ b/examples/whirlpools/src/lib.rs @@ -22,5 +22,3 @@ impl Default for state::TickArray { } } } - -declare_id!("whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc"); diff --git a/flake.lock b/flake.lock index 9f8b439..123b37c 100644 --- a/flake.lock +++ b/flake.lock @@ -1,12 +1,15 @@ { "nodes": { "flake-utils": { + "inputs": { + "systems": "systems" + }, "locked": { - "lastModified": 1659877975, - "narHash": "sha256-zllb8aq3YO3h8B/U0/J1WBgAL8EX5yWf5pMj3G0NAmc=", + "lastModified": 1731533236, + "narHash": "sha256-l0KFg5HjrsfsO/JpG+r7fRrqm12kzFHyUHqHCVpMMbI=", "owner": "numtide", "repo": "flake-utils", - "rev": "c0e246b9b83f637f4681389ecabcb2681b4f3af0", + "rev": "11707dc2f618dd54ca8739b309ec4fc024de578b", "type": "github" }, "original": { @@ -17,11 +20,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1664296838, - "narHash": "sha256-sJGqWJLby4+elLeEiwwIvj6wrY0Rg2USckKbPmXBZ7M=", + "lastModified": 1746576598, + "narHash": "sha256-FshoQvr6Aor5SnORVvh/ZdJ1Sa2U4ZrIMwKBX5k2wu0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "4dd035239719fc7992a4214934ecaf2a943d5ec0", + "rev": "b3582c75c7f21ce0b429898980eddbbf05c68e55", "type": "github" }, "original": { @@ -36,6 +39,21 @@ "flake-utils": "flake-utils", "nixpkgs": "nixpkgs" } + }, + "systems": { + "locked": { + "lastModified": 1681028828, + "narHash": "sha256-Vy1rq5AaRuLzOxct8nz4T6wlgyUR7zLU309k9mBC768=", + "owner": "nix-systems", + "repo": "default", + "rev": "da67096a3b9bf56a91d16901293e51ba5b49a27e", + "type": "github" + }, + "original": { + "owner": "nix-systems", + "repo": "default", + "type": "github" + } } }, "root": "root", diff --git a/flake.nix b/flake.nix index 8b8c4d8..b6aecbb 100644 --- a/flake.nix +++ b/flake.nix @@ -1,16 +1,34 @@ { - description = "Saber Vipers development environment."; + description = "Standard Solana development environment."; inputs = { nixpkgs.url = "github:NixOS/nixpkgs/nixpkgs-unstable"; flake-utils.url = "github:numtide/flake-utils"; }; - outputs = { self, nixpkgs, flake-utils, }: - flake-utils.lib.eachDefaultSystem (system: - let pkgs = nixpkgs.legacyPackages.${system}; in { - devShell = with pkgs; mkShell { - buildInputs = [ cargo-workspaces rustup ]; - }; - }); + outputs = + { + self, + nixpkgs, + flake-utils, + }: + flake-utils.lib.eachDefaultSystem ( + system: + let + pkgs = nixpkgs.legacyPackages.${system}; + in + { + formatter = pkgs.nixfmt-rfc-style; + devShell = + with pkgs; + mkShell { + buildInputs = [ + cargo-workspaces + rustup + anchor + cargo-expand + ]; + }; + } + ); } From bbc89c070042ca96fcf3369307b93bf37cd9a8d8 Mon Sep 17 00:00:00 2001 From: Ian Macalinao Date: Fri, 9 May 2025 17:13:58 +0800 Subject: [PATCH 2/6] remove old whirlpool crate, add kamino lend --- Cargo.lock | 18 +- .../anchor-generate-cpi-interface/src/lib.rs | 1 - crates/anchor-idl/src/instruction.rs | 22 +- .../{whirlpools => kamino-lend}/.gitignore | 0 .../{whirlpools => kamino-lend}/Cargo.toml | 4 +- examples/kamino-lend/README.md | 27 + examples/kamino-lend/idl.json | 4615 +++++++++++++++++ examples/kamino-lend/src/lib.rs | 10 + examples/whirlpools/README.md | 12 - examples/whirlpools/idl.json | 1544 ------ examples/whirlpools/src/lib.rs | 24 - 11 files changed, 4680 insertions(+), 1597 deletions(-) rename examples/{whirlpools => kamino-lend}/.gitignore (100%) rename examples/{whirlpools => kamino-lend}/Cargo.toml (83%) create mode 100644 examples/kamino-lend/README.md create mode 100644 examples/kamino-lend/idl.json create mode 100644 examples/kamino-lend/src/lib.rs delete mode 100644 examples/whirlpools/README.md delete mode 100644 examples/whirlpools/idl.json delete mode 100644 examples/whirlpools/src/lib.rs diff --git a/Cargo.lock b/Cargo.lock index 4368026..9578301 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -731,6 +731,15 @@ dependencies = [ "wasm-bindgen", ] +[[package]] +name = "kamino-lend" +version = "0.3.0" +dependencies = [ + "anchor-gen", + "anchor-lang", + "bytemuck", +] + [[package]] name = "keccak" version = "0.1.5" @@ -2169,15 +2178,6 @@ dependencies = [ "wasm-bindgen", ] -[[package]] -name = "whirlpools" -version = "0.3.0" -dependencies = [ - "anchor-gen", - "anchor-lang", - "bytemuck", -] - [[package]] name = "windows-targets" version = "0.52.6" diff --git a/crates/anchor-generate-cpi-interface/src/lib.rs b/crates/anchor-generate-cpi-interface/src/lib.rs index 78f80f8..a6260c2 100644 --- a/crates/anchor-generate-cpi-interface/src/lib.rs +++ b/crates/anchor-generate-cpi-interface/src/lib.rs @@ -29,7 +29,6 @@ use syn::parse_macro_input; /// /// ``` /// anchor_generate_cpi_interface::generate_cpi_interface!(idl_path = "../../examples/govern-cpi/idl.json"); -/// declare_id!("GjphYQcbP1m3FuDyCTUJf2mUMxKPE3j6feWU1rxvC7Ps"); /// # fn main() -> Result<()> { /// let _my_governor = GovernanceParameters { /// quorum_votes: 0, diff --git a/crates/anchor-idl/src/instruction.rs b/crates/anchor-idl/src/instruction.rs index 31fd766..d726b56 100644 --- a/crates/anchor-idl/src/instruction.rs +++ b/crates/anchor-idl/src/instruction.rs @@ -6,7 +6,7 @@ use quote::{format_ident, quote}; /// Generates a single instruction handler. pub fn generate_ix_handler(ix: &IdlInstruction) -> TokenStream { let ix_name = format_ident!("{}", ix.name.to_snake_case()); - let accounts_name = format_ident!("{}Instruction", ix.name.to_pascal_case()); + let accounts_name = format_ident!("{}", ix.name.to_pascal_case()); let args = ix .args @@ -45,18 +45,30 @@ pub fn generate_ix_handler(ix: &IdlInstruction) -> TokenStream { /// Generates instruction context structs. pub fn generate_ix_structs(ixs: &[IdlInstruction]) -> TokenStream { let defs = ixs.iter().map(|ix| { - let accounts_name = format_ident!("{}Instruction", ix.name.to_pascal_case()); + let accounts_name = format_ident!("{}", ix.name.to_pascal_case()); let (all_structs, all_fields) = crate::generate_account_fields(&ix.name.to_pascal_case(), &ix.accounts); + let struct_def = if ix.accounts.is_empty() { + quote! { + pub struct #accounts_name { + #all_fields + } + } + } else { + quote! { + pub struct #accounts_name<'info> { + #all_fields + } + } + }; + quote! { #all_structs #[derive(Accounts)] - pub struct #accounts_name<'info> { - #all_fields - } + #struct_def } }); quote! { diff --git a/examples/whirlpools/.gitignore b/examples/kamino-lend/.gitignore similarity index 100% rename from examples/whirlpools/.gitignore rename to examples/kamino-lend/.gitignore diff --git a/examples/whirlpools/Cargo.toml b/examples/kamino-lend/Cargo.toml similarity index 83% rename from examples/whirlpools/Cargo.toml rename to examples/kamino-lend/Cargo.toml index e8eb459..27c221c 100644 --- a/examples/whirlpools/Cargo.toml +++ b/examples/kamino-lend/Cargo.toml @@ -1,8 +1,8 @@ [package] -name = "whirlpools" +name = "kamino-lend" version = "0.3.0" edition = "2021" -description = "Autogenerated CPI client for the Orca Whirlpools program." +description = "Autogenerated CPI client for the Kamino Lend program." authors = ["Ian Macalinao "] repository = "https://github.com/saber-hq/anchor-gen" license = "Apache-2.0" diff --git a/examples/kamino-lend/README.md b/examples/kamino-lend/README.md new file mode 100644 index 0000000..bb6b559 --- /dev/null +++ b/examples/kamino-lend/README.md @@ -0,0 +1,27 @@ +# kamino-lend + +Autogenerated CPI client for the Kamino Lend program. + +CPI helpers for the [Kamino Lend](https://github.com/Kamino-Finance/klend) program. + +This crate was automatically generated by +[anchor-gen](https://github.com/saber-hq/anchor-gen), a crate for generating +Anchor CPI helpers from JSON IDLs. + +License: Apache-2.0 + +WARNING: the `refresh_reserves_batch` instruction is not included in the IDL because it has no accounts, breaking Anchor codegen. + +```json + { + "name": "refresh_reserves_batch", + "discriminator": [144, 110, 26, 103, 162, 204, 252, 147], + "accounts": [], + "args": [ + { + "name": "skip_price_updates", + "type": "bool" + } + ] + }, +``` diff --git a/examples/kamino-lend/idl.json b/examples/kamino-lend/idl.json new file mode 100644 index 0000000..d78682c --- /dev/null +++ b/examples/kamino-lend/idl.json @@ -0,0 +1,4615 @@ +{ + "address": "KLend2g3cP87fffoy8q1mQqGKjrxjC8boSyAYavgmjD", + "metadata": { + "name": "kamino_lending", + "version": "1.11.0", + "spec": "0.1.0" + }, + "instructions": [ + { + "name": "init_lending_market", + "discriminator": [34, 162, 116, 14, 101, 137, 94, 239], + "accounts": [ + { + "name": "lending_market_owner", + "writable": true, + "signer": true + }, + { + "name": "lending_market", + "writable": true + }, + { + "name": "lending_market_authority" + }, + { + "name": "system_program" + }, + { + "name": "rent" + } + ], + "args": [ + { + "name": "quote_currency", + "type": { + "array": ["u8", 32] + } + } + ] + }, + { + "name": "update_lending_market", + "discriminator": [209, 157, 53, 210, 97, 180, 31, 45], + "accounts": [ + { + "name": "lending_market_owner", + "signer": true + }, + { + "name": "lending_market", + "writable": true + } + ], + "args": [ + { + "name": "mode", + "type": "u64" + }, + { + "name": "value", + "type": { + "array": ["u8", 72] + } + } + ] + }, + { + "name": "update_lending_market_owner", + "discriminator": [118, 224, 10, 62, 196, 230, 184, 89], + "accounts": [ + { + "name": "lending_market_owner_cached", + "signer": true + }, + { + "name": "lending_market", + "writable": true + } + ], + "args": [] + }, + { + "name": "init_reserve", + "discriminator": [138, 245, 71, 225, 153, 4, 3, 43], + "accounts": [ + { + "name": "lending_market_owner", + "writable": true, + "signer": true + }, + { + "name": "lending_market" + }, + { + "name": "lending_market_authority" + }, + { + "name": "reserve", + "writable": true + }, + { + "name": "reserve_liquidity_mint" + }, + { + "name": "reserve_liquidity_supply", + "writable": true + }, + { + "name": "fee_receiver", + "writable": true + }, + { + "name": "reserve_collateral_mint", + "writable": true + }, + { + "name": "reserve_collateral_supply", + "writable": true + }, + { + "name": "initial_liquidity_source", + "writable": true + }, + { + "name": "rent" + }, + { + "name": "liquidity_token_program" + }, + { + "name": "collateral_token_program" + }, + { + "name": "system_program" + } + ], + "args": [] + }, + { + "name": "init_farms_for_reserve", + "discriminator": [218, 6, 62, 233, 1, 33, 232, 82], + "accounts": [ + { + "name": "lending_market_owner", + "writable": true, + "signer": true + }, + { + "name": "lending_market" + }, + { + "name": "lending_market_authority" + }, + { + "name": "reserve", + "writable": true + }, + { + "name": "farms_program" + }, + { + "name": "farms_global_config" + }, + { + "name": "farm_state", + "writable": true + }, + { + "name": "farms_vault_authority" + }, + { + "name": "rent" + }, + { + "name": "system_program" + } + ], + "args": [ + { + "name": "mode", + "type": "u8" + } + ] + }, + { + "name": "update_reserve_config", + "discriminator": [61, 148, 100, 70, 143, 107, 17, 13], + "accounts": [ + { + "name": "lending_market_owner", + "signer": true + }, + { + "name": "lending_market" + }, + { + "name": "reserve", + "writable": true + } + ], + "args": [ + { + "name": "mode", + "type": "u64" + }, + { + "name": "value", + "type": "bytes" + }, + { + "name": "skip_validation", + "type": "bool" + } + ] + }, + { + "name": "redeem_fees", + "discriminator": [215, 39, 180, 41, 173, 46, 248, 220], + "accounts": [ + { + "name": "reserve", + "writable": true + }, + { + "name": "reserve_liquidity_mint" + }, + { + "name": "reserve_liquidity_fee_receiver", + "writable": true + }, + { + "name": "reserve_supply_liquidity", + "writable": true + }, + { + "name": "lending_market" + }, + { + "name": "lending_market_authority" + }, + { + "name": "token_program" + } + ], + "args": [] + }, + { + "name": "withdraw_protocol_fee", + "discriminator": [158, 201, 158, 189, 33, 93, 162, 103], + "accounts": [ + { + "name": "lending_market_owner", + "signer": true + }, + { + "name": "lending_market" + }, + { + "name": "reserve" + }, + { + "name": "reserve_liquidity_mint" + }, + { + "name": "lending_market_authority" + }, + { + "name": "fee_vault", + "writable": true + }, + { + "name": "lending_market_owner_ata", + "writable": true + }, + { + "name": "token_program" + } + ], + "args": [ + { + "name": "amount", + "type": "u64" + } + ] + }, + { + "name": "socialize_loss", + "discriminator": [245, 75, 91, 0, 236, 97, 19, 3], + "accounts": [ + { + "name": "risk_council", + "signer": true + }, + { + "name": "obligation", + "writable": true + }, + { + "name": "lending_market" + }, + { + "name": "reserve", + "writable": true + }, + { + "name": "instruction_sysvar_account" + } + ], + "args": [ + { + "name": "liquidity_amount", + "type": "u64" + } + ] + }, + { + "name": "socialize_loss_v2", + "discriminator": [238, 95, 98, 220, 187, 40, 204, 154], + "accounts": [ + { + "name": "socialize_loss_accounts", + "accounts": [ + { + "name": "risk_council", + "signer": true + }, + { + "name": "obligation", + "writable": true + }, + { + "name": "lending_market" + }, + { + "name": "reserve", + "writable": true + }, + { + "name": "instruction_sysvar_account" + } + ] + }, + { + "name": "farms_accounts", + "accounts": [ + { + "name": "obligation_farm_user_state", + "writable": true, + "optional": true + }, + { + "name": "reserve_farm_state", + "writable": true, + "optional": true + } + ] + }, + { + "name": "lending_market_authority" + }, + { + "name": "farms_program" + } + ], + "args": [ + { + "name": "liquidity_amount", + "type": "u64" + } + ] + }, + { + "name": "mark_obligation_for_deleveraging", + "discriminator": [164, 35, 182, 19, 0, 116, 243, 127], + "accounts": [ + { + "name": "risk_council", + "signer": true + }, + { + "name": "obligation", + "writable": true + }, + { + "name": "lending_market" + } + ], + "args": [ + { + "name": "autodeleverage_target_ltv_pct", + "type": "u8" + } + ] + }, + { + "name": "refresh_reserve", + "discriminator": [2, 218, 138, 235, 79, 201, 25, 102], + "accounts": [ + { + "name": "reserve", + "writable": true + }, + { + "name": "lending_market" + }, + { + "name": "pyth_oracle", + "optional": true + }, + { + "name": "switchboard_price_oracle", + "optional": true + }, + { + "name": "switchboard_twap_oracle", + "optional": true + }, + { + "name": "scope_prices", + "optional": true + } + ], + "args": [] + }, + { + "name": "deposit_reserve_liquidity", + "discriminator": [169, 201, 30, 126, 6, 205, 102, 68], + "accounts": [ + { + "name": "owner", + "signer": true + }, + { + "name": "reserve", + "writable": true + }, + { + "name": "lending_market" + }, + { + "name": "lending_market_authority" + }, + { + "name": "reserve_liquidity_mint" + }, + { + "name": "reserve_liquidity_supply", + "writable": true + }, + { + "name": "reserve_collateral_mint", + "writable": true + }, + { + "name": "user_source_liquidity", + "writable": true + }, + { + "name": "user_destination_collateral", + "writable": true + }, + { + "name": "collateral_token_program" + }, + { + "name": "liquidity_token_program" + }, + { + "name": "instruction_sysvar_account" + } + ], + "args": [ + { + "name": "liquidity_amount", + "type": "u64" + } + ] + }, + { + "name": "redeem_reserve_collateral", + "discriminator": [234, 117, 181, 125, 185, 142, 220, 29], + "accounts": [ + { + "name": "owner", + "signer": true + }, + { + "name": "lending_market" + }, + { + "name": "reserve", + "writable": true + }, + { + "name": "lending_market_authority" + }, + { + "name": "reserve_liquidity_mint" + }, + { + "name": "reserve_collateral_mint", + "writable": true + }, + { + "name": "reserve_liquidity_supply", + "writable": true + }, + { + "name": "user_source_collateral", + "writable": true + }, + { + "name": "user_destination_liquidity", + "writable": true + }, + { + "name": "collateral_token_program" + }, + { + "name": "liquidity_token_program" + }, + { + "name": "instruction_sysvar_account" + } + ], + "args": [ + { + "name": "collateral_amount", + "type": "u64" + } + ] + }, + { + "name": "init_obligation", + "discriminator": [251, 10, 231, 76, 27, 11, 159, 96], + "accounts": [ + { + "name": "obligation_owner", + "signer": true + }, + { + "name": "fee_payer", + "writable": true, + "signer": true + }, + { + "name": "obligation", + "writable": true + }, + { + "name": "lending_market" + }, + { + "name": "seed1_account" + }, + { + "name": "seed2_account" + }, + { + "name": "owner_user_metadata" + }, + { + "name": "rent" + }, + { + "name": "system_program" + } + ], + "args": [ + { + "name": "args", + "type": { + "defined": { + "name": "InitObligationArgs" + } + } + } + ] + }, + { + "name": "init_obligation_farms_for_reserve", + "discriminator": [136, 63, 15, 186, 211, 152, 168, 164], + "accounts": [ + { + "name": "payer", + "writable": true, + "signer": true + }, + { + "name": "owner" + }, + { + "name": "obligation", + "writable": true + }, + { + "name": "lending_market_authority" + }, + { + "name": "reserve", + "writable": true + }, + { + "name": "reserve_farm_state", + "writable": true + }, + { + "name": "obligation_farm", + "writable": true + }, + { + "name": "lending_market" + }, + { + "name": "farms_program" + }, + { + "name": "rent" + }, + { + "name": "system_program" + } + ], + "args": [ + { + "name": "mode", + "type": "u8" + } + ] + }, + { + "name": "refresh_obligation_farms_for_reserve", + "discriminator": [140, 144, 253, 21, 10, 74, 248, 3], + "accounts": [ + { + "name": "crank", + "signer": true + }, + { + "name": "base_accounts", + "accounts": [ + { + "name": "obligation" + }, + { + "name": "lending_market_authority" + }, + { + "name": "reserve" + }, + { + "name": "reserve_farm_state", + "writable": true + }, + { + "name": "obligation_farm_user_state", + "writable": true + }, + { + "name": "lending_market" + } + ] + }, + { + "name": "farms_program" + }, + { + "name": "rent" + }, + { + "name": "system_program" + } + ], + "args": [ + { + "name": "mode", + "type": "u8" + } + ] + }, + { + "name": "refresh_obligation", + "discriminator": [33, 132, 147, 228, 151, 192, 72, 89], + "accounts": [ + { + "name": "lending_market" + }, + { + "name": "obligation", + "writable": true + } + ], + "args": [] + }, + { + "name": "deposit_obligation_collateral", + "discriminator": [108, 209, 4, 72, 21, 22, 118, 133], + "accounts": [ + { + "name": "owner", + "signer": true + }, + { + "name": "obligation", + "writable": true + }, + { + "name": "lending_market" + }, + { + "name": "deposit_reserve", + "writable": true + }, + { + "name": "reserve_destination_collateral", + "writable": true + }, + { + "name": "user_source_collateral", + "writable": true + }, + { + "name": "token_program" + }, + { + "name": "instruction_sysvar_account" + } + ], + "args": [ + { + "name": "collateral_amount", + "type": "u64" + } + ] + }, + { + "name": "deposit_obligation_collateral_v2", + "discriminator": [137, 145, 151, 94, 167, 113, 4, 145], + "accounts": [ + { + "name": "deposit_accounts", + "accounts": [ + { + "name": "owner", + "signer": true + }, + { + "name": "obligation", + "writable": true + }, + { + "name": "lending_market" + }, + { + "name": "deposit_reserve", + "writable": true + }, + { + "name": "reserve_destination_collateral", + "writable": true + }, + { + "name": "user_source_collateral", + "writable": true + }, + { + "name": "token_program" + }, + { + "name": "instruction_sysvar_account" + } + ] + }, + { + "name": "lending_market_authority" + }, + { + "name": "farms_accounts", + "accounts": [ + { + "name": "obligation_farm_user_state", + "writable": true, + "optional": true + }, + { + "name": "reserve_farm_state", + "writable": true, + "optional": true + } + ] + }, + { + "name": "farms_program" + } + ], + "args": [ + { + "name": "collateral_amount", + "type": "u64" + } + ] + }, + { + "name": "withdraw_obligation_collateral", + "discriminator": [37, 116, 205, 103, 243, 192, 92, 198], + "accounts": [ + { + "name": "owner", + "signer": true + }, + { + "name": "obligation", + "writable": true + }, + { + "name": "lending_market" + }, + { + "name": "lending_market_authority" + }, + { + "name": "withdraw_reserve", + "writable": true + }, + { + "name": "reserve_source_collateral", + "writable": true + }, + { + "name": "user_destination_collateral", + "writable": true + }, + { + "name": "token_program" + }, + { + "name": "instruction_sysvar_account" + } + ], + "args": [ + { + "name": "collateral_amount", + "type": "u64" + } + ] + }, + { + "name": "withdraw_obligation_collateral_v2", + "discriminator": [202, 249, 117, 114, 231, 192, 47, 138], + "accounts": [ + { + "name": "withdraw_accounts", + "accounts": [ + { + "name": "owner", + "signer": true + }, + { + "name": "obligation", + "writable": true + }, + { + "name": "lending_market" + }, + { + "name": "lending_market_authority" + }, + { + "name": "withdraw_reserve", + "writable": true + }, + { + "name": "reserve_source_collateral", + "writable": true + }, + { + "name": "user_destination_collateral", + "writable": true + }, + { + "name": "token_program" + }, + { + "name": "instruction_sysvar_account" + } + ] + }, + { + "name": "farms_accounts", + "accounts": [ + { + "name": "obligation_farm_user_state", + "writable": true, + "optional": true + }, + { + "name": "reserve_farm_state", + "writable": true, + "optional": true + } + ] + }, + { + "name": "farms_program" + } + ], + "args": [ + { + "name": "collateral_amount", + "type": "u64" + } + ] + }, + { + "name": "borrow_obligation_liquidity", + "discriminator": [121, 127, 18, 204, 73, 245, 225, 65], + "accounts": [ + { + "name": "owner", + "signer": true + }, + { + "name": "obligation", + "writable": true + }, + { + "name": "lending_market" + }, + { + "name": "lending_market_authority" + }, + { + "name": "borrow_reserve", + "writable": true + }, + { + "name": "borrow_reserve_liquidity_mint" + }, + { + "name": "reserve_source_liquidity", + "writable": true + }, + { + "name": "borrow_reserve_liquidity_fee_receiver", + "writable": true + }, + { + "name": "user_destination_liquidity", + "writable": true + }, + { + "name": "referrer_token_state", + "writable": true, + "optional": true + }, + { + "name": "token_program" + }, + { + "name": "instruction_sysvar_account" + } + ], + "args": [ + { + "name": "liquidity_amount", + "type": "u64" + } + ] + }, + { + "name": "borrow_obligation_liquidity_v2", + "discriminator": [161, 128, 143, 245, 171, 199, 194, 6], + "accounts": [ + { + "name": "borrow_accounts", + "accounts": [ + { + "name": "owner", + "signer": true + }, + { + "name": "obligation", + "writable": true + }, + { + "name": "lending_market" + }, + { + "name": "lending_market_authority" + }, + { + "name": "borrow_reserve", + "writable": true + }, + { + "name": "borrow_reserve_liquidity_mint" + }, + { + "name": "reserve_source_liquidity", + "writable": true + }, + { + "name": "borrow_reserve_liquidity_fee_receiver", + "writable": true + }, + { + "name": "user_destination_liquidity", + "writable": true + }, + { + "name": "referrer_token_state", + "writable": true, + "optional": true + }, + { + "name": "token_program" + }, + { + "name": "instruction_sysvar_account" + } + ] + }, + { + "name": "farms_accounts", + "accounts": [ + { + "name": "obligation_farm_user_state", + "writable": true, + "optional": true + }, + { + "name": "reserve_farm_state", + "writable": true, + "optional": true + } + ] + }, + { + "name": "farms_program" + } + ], + "args": [ + { + "name": "liquidity_amount", + "type": "u64" + } + ] + }, + { + "name": "repay_obligation_liquidity", + "discriminator": [145, 178, 13, 225, 76, 240, 147, 72], + "accounts": [ + { + "name": "owner", + "signer": true + }, + { + "name": "obligation", + "writable": true + }, + { + "name": "lending_market" + }, + { + "name": "repay_reserve", + "writable": true + }, + { + "name": "reserve_liquidity_mint" + }, + { + "name": "reserve_destination_liquidity", + "writable": true + }, + { + "name": "user_source_liquidity", + "writable": true + }, + { + "name": "token_program" + }, + { + "name": "instruction_sysvar_account" + } + ], + "args": [ + { + "name": "liquidity_amount", + "type": "u64" + } + ] + }, + { + "name": "repay_obligation_liquidity_v2", + "discriminator": [116, 174, 213, 76, 180, 53, 210, 144], + "accounts": [ + { + "name": "repay_accounts", + "accounts": [ + { + "name": "owner", + "signer": true + }, + { + "name": "obligation", + "writable": true + }, + { + "name": "lending_market" + }, + { + "name": "repay_reserve", + "writable": true + }, + { + "name": "reserve_liquidity_mint" + }, + { + "name": "reserve_destination_liquidity", + "writable": true + }, + { + "name": "user_source_liquidity", + "writable": true + }, + { + "name": "token_program" + }, + { + "name": "instruction_sysvar_account" + } + ] + }, + { + "name": "farms_accounts", + "accounts": [ + { + "name": "obligation_farm_user_state", + "writable": true, + "optional": true + }, + { + "name": "reserve_farm_state", + "writable": true, + "optional": true + } + ] + }, + { + "name": "lending_market_authority" + }, + { + "name": "farms_program" + } + ], + "args": [ + { + "name": "liquidity_amount", + "type": "u64" + } + ] + }, + { + "name": "repay_and_withdraw_and_redeem", + "discriminator": [2, 54, 152, 3, 148, 96, 109, 218], + "accounts": [ + { + "name": "repay_accounts", + "accounts": [ + { + "name": "owner", + "signer": true + }, + { + "name": "obligation", + "writable": true + }, + { + "name": "lending_market" + }, + { + "name": "repay_reserve", + "writable": true + }, + { + "name": "reserve_liquidity_mint" + }, + { + "name": "reserve_destination_liquidity", + "writable": true + }, + { + "name": "user_source_liquidity", + "writable": true + }, + { + "name": "token_program" + }, + { + "name": "instruction_sysvar_account" + } + ] + }, + { + "name": "withdraw_accounts", + "accounts": [ + { + "name": "owner", + "writable": true, + "signer": true + }, + { + "name": "obligation", + "writable": true + }, + { + "name": "lending_market" + }, + { + "name": "lending_market_authority" + }, + { + "name": "withdraw_reserve", + "writable": true + }, + { + "name": "reserve_liquidity_mint" + }, + { + "name": "reserve_source_collateral", + "writable": true + }, + { + "name": "reserve_collateral_mint", + "writable": true + }, + { + "name": "reserve_liquidity_supply", + "writable": true + }, + { + "name": "user_destination_liquidity", + "writable": true + }, + { + "name": "placeholder_user_destination_collateral", + "optional": true + }, + { + "name": "collateral_token_program" + }, + { + "name": "liquidity_token_program" + }, + { + "name": "instruction_sysvar_account" + } + ] + }, + { + "name": "collateral_farms_accounts", + "accounts": [ + { + "name": "obligation_farm_user_state", + "writable": true, + "optional": true + }, + { + "name": "reserve_farm_state", + "writable": true, + "optional": true + } + ] + }, + { + "name": "debt_farms_accounts", + "accounts": [ + { + "name": "obligation_farm_user_state", + "writable": true, + "optional": true + }, + { + "name": "reserve_farm_state", + "writable": true, + "optional": true + } + ] + }, + { + "name": "farms_program" + } + ], + "args": [ + { + "name": "repay_amount", + "type": "u64" + }, + { + "name": "withdraw_collateral_amount", + "type": "u64" + } + ] + }, + { + "name": "deposit_and_withdraw", + "discriminator": [141, 153, 39, 15, 64, 61, 88, 84], + "accounts": [ + { + "name": "deposit_accounts", + "accounts": [ + { + "name": "owner", + "writable": true, + "signer": true + }, + { + "name": "obligation", + "writable": true + }, + { + "name": "lending_market" + }, + { + "name": "lending_market_authority" + }, + { + "name": "reserve", + "writable": true + }, + { + "name": "reserve_liquidity_mint" + }, + { + "name": "reserve_liquidity_supply", + "writable": true + }, + { + "name": "reserve_collateral_mint", + "writable": true + }, + { + "name": "reserve_destination_deposit_collateral", + "writable": true + }, + { + "name": "user_source_liquidity", + "writable": true + }, + { + "name": "placeholder_user_destination_collateral", + "optional": true + }, + { + "name": "collateral_token_program" + }, + { + "name": "liquidity_token_program" + }, + { + "name": "instruction_sysvar_account" + } + ] + }, + { + "name": "withdraw_accounts", + "accounts": [ + { + "name": "owner", + "writable": true, + "signer": true + }, + { + "name": "obligation", + "writable": true + }, + { + "name": "lending_market" + }, + { + "name": "lending_market_authority" + }, + { + "name": "withdraw_reserve", + "writable": true + }, + { + "name": "reserve_liquidity_mint" + }, + { + "name": "reserve_source_collateral", + "writable": true + }, + { + "name": "reserve_collateral_mint", + "writable": true + }, + { + "name": "reserve_liquidity_supply", + "writable": true + }, + { + "name": "user_destination_liquidity", + "writable": true + }, + { + "name": "placeholder_user_destination_collateral", + "optional": true + }, + { + "name": "collateral_token_program" + }, + { + "name": "liquidity_token_program" + }, + { + "name": "instruction_sysvar_account" + } + ] + }, + { + "name": "deposit_farms_accounts", + "accounts": [ + { + "name": "obligation_farm_user_state", + "writable": true, + "optional": true + }, + { + "name": "reserve_farm_state", + "writable": true, + "optional": true + } + ] + }, + { + "name": "withdraw_farms_accounts", + "accounts": [ + { + "name": "obligation_farm_user_state", + "writable": true, + "optional": true + }, + { + "name": "reserve_farm_state", + "writable": true, + "optional": true + } + ] + }, + { + "name": "farms_program" + } + ], + "args": [ + { + "name": "liquidity_amount", + "type": "u64" + }, + { + "name": "withdraw_collateral_amount", + "type": "u64" + } + ] + }, + { + "name": "deposit_reserve_liquidity_and_obligation_collateral", + "discriminator": [129, 199, 4, 2, 222, 39, 26, 46], + "accounts": [ + { + "name": "owner", + "writable": true, + "signer": true + }, + { + "name": "obligation", + "writable": true + }, + { + "name": "lending_market" + }, + { + "name": "lending_market_authority" + }, + { + "name": "reserve", + "writable": true + }, + { + "name": "reserve_liquidity_mint" + }, + { + "name": "reserve_liquidity_supply", + "writable": true + }, + { + "name": "reserve_collateral_mint", + "writable": true + }, + { + "name": "reserve_destination_deposit_collateral", + "writable": true + }, + { + "name": "user_source_liquidity", + "writable": true + }, + { + "name": "placeholder_user_destination_collateral", + "optional": true + }, + { + "name": "collateral_token_program" + }, + { + "name": "liquidity_token_program" + }, + { + "name": "instruction_sysvar_account" + } + ], + "args": [ + { + "name": "liquidity_amount", + "type": "u64" + } + ] + }, + { + "name": "deposit_reserve_liquidity_and_obligation_collateral_v2", + "discriminator": [216, 224, 191, 27, 204, 151, 102, 175], + "accounts": [ + { + "name": "deposit_accounts", + "accounts": [ + { + "name": "owner", + "writable": true, + "signer": true + }, + { + "name": "obligation", + "writable": true + }, + { + "name": "lending_market" + }, + { + "name": "lending_market_authority" + }, + { + "name": "reserve", + "writable": true + }, + { + "name": "reserve_liquidity_mint" + }, + { + "name": "reserve_liquidity_supply", + "writable": true + }, + { + "name": "reserve_collateral_mint", + "writable": true + }, + { + "name": "reserve_destination_deposit_collateral", + "writable": true + }, + { + "name": "user_source_liquidity", + "writable": true + }, + { + "name": "placeholder_user_destination_collateral", + "optional": true + }, + { + "name": "collateral_token_program" + }, + { + "name": "liquidity_token_program" + }, + { + "name": "instruction_sysvar_account" + } + ] + }, + { + "name": "farms_accounts", + "accounts": [ + { + "name": "obligation_farm_user_state", + "writable": true, + "optional": true + }, + { + "name": "reserve_farm_state", + "writable": true, + "optional": true + } + ] + }, + { + "name": "farms_program" + } + ], + "args": [ + { + "name": "liquidity_amount", + "type": "u64" + } + ] + }, + { + "name": "withdraw_obligation_collateral_and_redeem_reserve_collateral", + "discriminator": [75, 93, 93, 220, 34, 150, 218, 196], + "accounts": [ + { + "name": "owner", + "writable": true, + "signer": true + }, + { + "name": "obligation", + "writable": true + }, + { + "name": "lending_market" + }, + { + "name": "lending_market_authority" + }, + { + "name": "withdraw_reserve", + "writable": true + }, + { + "name": "reserve_liquidity_mint" + }, + { + "name": "reserve_source_collateral", + "writable": true + }, + { + "name": "reserve_collateral_mint", + "writable": true + }, + { + "name": "reserve_liquidity_supply", + "writable": true + }, + { + "name": "user_destination_liquidity", + "writable": true + }, + { + "name": "placeholder_user_destination_collateral", + "optional": true + }, + { + "name": "collateral_token_program" + }, + { + "name": "liquidity_token_program" + }, + { + "name": "instruction_sysvar_account" + } + ], + "args": [ + { + "name": "collateral_amount", + "type": "u64" + } + ] + }, + { + "name": "withdraw_obligation_collateral_and_redeem_reserve_collateral_v2", + "discriminator": [235, 52, 119, 152, 149, 197, 20, 7], + "accounts": [ + { + "name": "withdraw_accounts", + "accounts": [ + { + "name": "owner", + "writable": true, + "signer": true + }, + { + "name": "obligation", + "writable": true + }, + { + "name": "lending_market" + }, + { + "name": "lending_market_authority" + }, + { + "name": "withdraw_reserve", + "writable": true + }, + { + "name": "reserve_liquidity_mint" + }, + { + "name": "reserve_source_collateral", + "writable": true + }, + { + "name": "reserve_collateral_mint", + "writable": true + }, + { + "name": "reserve_liquidity_supply", + "writable": true + }, + { + "name": "user_destination_liquidity", + "writable": true + }, + { + "name": "placeholder_user_destination_collateral", + "optional": true + }, + { + "name": "collateral_token_program" + }, + { + "name": "liquidity_token_program" + }, + { + "name": "instruction_sysvar_account" + } + ] + }, + { + "name": "farms_accounts", + "accounts": [ + { + "name": "obligation_farm_user_state", + "writable": true, + "optional": true + }, + { + "name": "reserve_farm_state", + "writable": true, + "optional": true + } + ] + }, + { + "name": "farms_program" + } + ], + "args": [ + { + "name": "collateral_amount", + "type": "u64" + } + ] + }, + { + "name": "liquidate_obligation_and_redeem_reserve_collateral", + "discriminator": [177, 71, 154, 188, 226, 133, 74, 55], + "accounts": [ + { + "name": "liquidator", + "signer": true + }, + { + "name": "obligation", + "writable": true + }, + { + "name": "lending_market" + }, + { + "name": "lending_market_authority" + }, + { + "name": "repay_reserve", + "writable": true + }, + { + "name": "repay_reserve_liquidity_mint" + }, + { + "name": "repay_reserve_liquidity_supply", + "writable": true + }, + { + "name": "withdraw_reserve", + "writable": true + }, + { + "name": "withdraw_reserve_liquidity_mint" + }, + { + "name": "withdraw_reserve_collateral_mint", + "writable": true + }, + { + "name": "withdraw_reserve_collateral_supply", + "writable": true + }, + { + "name": "withdraw_reserve_liquidity_supply", + "writable": true + }, + { + "name": "withdraw_reserve_liquidity_fee_receiver", + "writable": true + }, + { + "name": "user_source_liquidity", + "writable": true + }, + { + "name": "user_destination_collateral", + "writable": true + }, + { + "name": "user_destination_liquidity", + "writable": true + }, + { + "name": "collateral_token_program" + }, + { + "name": "repay_liquidity_token_program" + }, + { + "name": "withdraw_liquidity_token_program" + }, + { + "name": "instruction_sysvar_account" + } + ], + "args": [ + { + "name": "liquidity_amount", + "type": "u64" + }, + { + "name": "min_acceptable_received_liquidity_amount", + "type": "u64" + }, + { + "name": "max_allowed_ltv_override_percent", + "type": "u64" + } + ] + }, + { + "name": "liquidate_obligation_and_redeem_reserve_collateral_v2", + "discriminator": [162, 161, 35, 143, 30, 187, 185, 103], + "accounts": [ + { + "name": "liquidation_accounts", + "accounts": [ + { + "name": "liquidator", + "signer": true + }, + { + "name": "obligation", + "writable": true + }, + { + "name": "lending_market" + }, + { + "name": "lending_market_authority" + }, + { + "name": "repay_reserve", + "writable": true + }, + { + "name": "repay_reserve_liquidity_mint" + }, + { + "name": "repay_reserve_liquidity_supply", + "writable": true + }, + { + "name": "withdraw_reserve", + "writable": true + }, + { + "name": "withdraw_reserve_liquidity_mint" + }, + { + "name": "withdraw_reserve_collateral_mint", + "writable": true + }, + { + "name": "withdraw_reserve_collateral_supply", + "writable": true + }, + { + "name": "withdraw_reserve_liquidity_supply", + "writable": true + }, + { + "name": "withdraw_reserve_liquidity_fee_receiver", + "writable": true + }, + { + "name": "user_source_liquidity", + "writable": true + }, + { + "name": "user_destination_collateral", + "writable": true + }, + { + "name": "user_destination_liquidity", + "writable": true + }, + { + "name": "collateral_token_program" + }, + { + "name": "repay_liquidity_token_program" + }, + { + "name": "withdraw_liquidity_token_program" + }, + { + "name": "instruction_sysvar_account" + } + ] + }, + { + "name": "collateral_farms_accounts", + "accounts": [ + { + "name": "obligation_farm_user_state", + "writable": true, + "optional": true + }, + { + "name": "reserve_farm_state", + "writable": true, + "optional": true + } + ] + }, + { + "name": "debt_farms_accounts", + "accounts": [ + { + "name": "obligation_farm_user_state", + "writable": true, + "optional": true + }, + { + "name": "reserve_farm_state", + "writable": true, + "optional": true + } + ] + }, + { + "name": "farms_program" + } + ], + "args": [ + { + "name": "liquidity_amount", + "type": "u64" + }, + { + "name": "min_acceptable_received_liquidity_amount", + "type": "u64" + }, + { + "name": "max_allowed_ltv_override_percent", + "type": "u64" + } + ] + }, + { + "name": "flash_repay_reserve_liquidity", + "discriminator": [185, 117, 0, 203, 96, 245, 180, 186], + "accounts": [ + { + "name": "user_transfer_authority", + "signer": true + }, + { + "name": "lending_market_authority" + }, + { + "name": "lending_market" + }, + { + "name": "reserve", + "writable": true + }, + { + "name": "reserve_liquidity_mint" + }, + { + "name": "reserve_destination_liquidity", + "writable": true + }, + { + "name": "user_source_liquidity", + "writable": true + }, + { + "name": "reserve_liquidity_fee_receiver", + "writable": true + }, + { + "name": "referrer_token_state", + "writable": true, + "optional": true + }, + { + "name": "referrer_account", + "writable": true, + "optional": true + }, + { + "name": "sysvar_info" + }, + { + "name": "token_program" + } + ], + "args": [ + { + "name": "liquidity_amount", + "type": "u64" + }, + { + "name": "borrow_instruction_index", + "type": "u8" + } + ] + }, + { + "name": "flash_borrow_reserve_liquidity", + "discriminator": [135, 231, 52, 167, 7, 52, 212, 193], + "accounts": [ + { + "name": "user_transfer_authority", + "signer": true + }, + { + "name": "lending_market_authority" + }, + { + "name": "lending_market" + }, + { + "name": "reserve", + "writable": true + }, + { + "name": "reserve_liquidity_mint" + }, + { + "name": "reserve_source_liquidity", + "writable": true + }, + { + "name": "user_destination_liquidity", + "writable": true + }, + { + "name": "reserve_liquidity_fee_receiver", + "writable": true + }, + { + "name": "referrer_token_state", + "writable": true, + "optional": true + }, + { + "name": "referrer_account", + "writable": true, + "optional": true + }, + { + "name": "sysvar_info" + }, + { + "name": "token_program" + } + ], + "args": [ + { + "name": "liquidity_amount", + "type": "u64" + } + ] + }, + { + "name": "request_elevation_group", + "discriminator": [36, 119, 251, 129, 34, 240, 7, 147], + "accounts": [ + { + "name": "owner", + "signer": true + }, + { + "name": "obligation", + "writable": true + }, + { + "name": "lending_market" + } + ], + "args": [ + { + "name": "elevation_group", + "type": "u8" + } + ] + }, + { + "name": "init_referrer_token_state", + "discriminator": [116, 45, 66, 148, 58, 13, 218, 115], + "accounts": [ + { + "name": "payer", + "writable": true, + "signer": true + }, + { + "name": "lending_market" + }, + { + "name": "reserve" + }, + { + "name": "referrer" + }, + { + "name": "referrer_token_state", + "writable": true + }, + { + "name": "rent" + }, + { + "name": "system_program" + } + ], + "args": [] + }, + { + "name": "init_user_metadata", + "discriminator": [117, 169, 176, 69, 197, 23, 15, 162], + "accounts": [ + { + "name": "owner", + "signer": true + }, + { + "name": "fee_payer", + "writable": true, + "signer": true + }, + { + "name": "user_metadata", + "writable": true + }, + { + "name": "referrer_user_metadata", + "optional": true + }, + { + "name": "rent" + }, + { + "name": "system_program" + } + ], + "args": [ + { + "name": "user_lookup_table", + "type": "pubkey" + } + ] + }, + { + "name": "withdraw_referrer_fees", + "discriminator": [171, 118, 121, 201, 233, 140, 23, 228], + "accounts": [ + { + "name": "referrer", + "writable": true, + "signer": true + }, + { + "name": "referrer_token_state", + "writable": true + }, + { + "name": "reserve", + "writable": true + }, + { + "name": "reserve_liquidity_mint" + }, + { + "name": "reserve_supply_liquidity", + "writable": true + }, + { + "name": "referrer_token_account", + "writable": true + }, + { + "name": "lending_market" + }, + { + "name": "lending_market_authority" + }, + { + "name": "token_program" + } + ], + "args": [] + }, + { + "name": "init_referrer_state_and_short_url", + "discriminator": [165, 19, 25, 127, 100, 55, 31, 90], + "accounts": [ + { + "name": "referrer", + "writable": true, + "signer": true + }, + { + "name": "referrer_state", + "writable": true + }, + { + "name": "referrer_short_url", + "writable": true + }, + { + "name": "referrer_user_metadata" + }, + { + "name": "rent" + }, + { + "name": "system_program" + } + ], + "args": [ + { + "name": "short_url", + "type": "string" + } + ] + }, + { + "name": "delete_referrer_state_and_short_url", + "discriminator": [153, 185, 99, 28, 228, 179, 187, 150], + "accounts": [ + { + "name": "referrer", + "writable": true, + "signer": true + }, + { + "name": "referrer_state", + "writable": true + }, + { + "name": "short_url", + "writable": true + }, + { + "name": "rent" + }, + { + "name": "system_program" + } + ], + "args": [] + }, + { + "name": "idl_missing_types", + "discriminator": [130, 80, 38, 153, 80, 212, 182, 253], + "accounts": [ + { + "name": "lending_market_owner", + "signer": true + }, + { + "name": "lending_market" + }, + { + "name": "reserve", + "writable": true + } + ], + "args": [ + { + "name": "reserve_farm_kind", + "type": { + "defined": { + "name": "ReserveFarmKind" + } + } + }, + { + "name": "asset_tier", + "type": { + "defined": { + "name": "AssetTier" + } + } + }, + { + "name": "fee_calculation", + "type": { + "defined": { + "name": "FeeCalculation" + } + } + }, + { + "name": "reserve_status", + "type": { + "defined": { + "name": "ReserveStatus" + } + } + }, + { + "name": "update_config_mode", + "type": { + "defined": { + "name": "UpdateConfigMode" + } + } + }, + { + "name": "update_lending_market_config_value", + "type": { + "defined": { + "name": "UpdateLendingMarketConfigValue" + } + } + }, + { + "name": "update_lending_market_config_mode", + "type": { + "defined": { + "name": "UpdateLendingMarketMode" + } + } + } + ] + } + ], + "accounts": [ + { + "name": "UserState", + "discriminator": [72, 177, 85, 249, 76, 167, 186, 126] + }, + { + "name": "LendingMarket", + "discriminator": [246, 114, 50, 98, 72, 157, 28, 120] + }, + { + "name": "Obligation", + "discriminator": [168, 206, 141, 106, 88, 76, 172, 167] + }, + { + "name": "ReferrerState", + "discriminator": [194, 81, 217, 103, 12, 19, 12, 66] + }, + { + "name": "ReferrerTokenState", + "discriminator": [39, 15, 208, 77, 32, 195, 105, 56] + }, + { + "name": "ShortUrl", + "discriminator": [28, 89, 174, 25, 226, 124, 126, 212] + }, + { + "name": "UserMetadata", + "discriminator": [157, 214, 220, 235, 98, 135, 171, 28] + }, + { + "name": "Reserve", + "discriminator": [43, 242, 204, 202, 26, 247, 59, 127] + } + ], + "errors": [ + { + "code": 6000, + "name": "InvalidMarketAuthority", + "msg": "Market authority is invalid" + }, + { + "code": 6001, + "name": "InvalidMarketOwner", + "msg": "Market owner is invalid" + }, + { + "code": 6002, + "name": "InvalidAccountOwner", + "msg": "Input account owner is not the program address" + }, + { + "code": 6003, + "name": "InvalidAmount", + "msg": "Input amount is invalid" + }, + { + "code": 6004, + "name": "InvalidConfig", + "msg": "Input config value is invalid" + }, + { + "code": 6005, + "name": "InvalidSigner", + "msg": "Input account must be a signer" + }, + { + "code": 6006, + "name": "InvalidAccountInput", + "msg": "Invalid account input" + }, + { + "code": 6007, + "name": "MathOverflow", + "msg": "Math operation overflow" + }, + { + "code": 6008, + "name": "InsufficientLiquidity", + "msg": "Insufficient liquidity available" + }, + { + "code": 6009, + "name": "ReserveStale", + "msg": "Reserve state needs to be refreshed" + }, + { + "code": 6010, + "name": "WithdrawTooSmall", + "msg": "Withdraw amount too small" + }, + { + "code": 6011, + "name": "WithdrawTooLarge", + "msg": "Withdraw amount too large" + }, + { + "code": 6012, + "name": "BorrowTooSmall", + "msg": "Borrow amount too small to receive liquidity after fees" + }, + { + "code": 6013, + "name": "BorrowTooLarge", + "msg": "Borrow amount too large for deposited collateral" + }, + { + "code": 6014, + "name": "RepayTooSmall", + "msg": "Repay amount too small to transfer liquidity" + }, + { + "code": 6015, + "name": "LiquidationTooSmall", + "msg": "Liquidation amount too small to receive collateral" + }, + { + "code": 6016, + "name": "ObligationHealthy", + "msg": "Cannot liquidate healthy obligations" + }, + { + "code": 6017, + "name": "ObligationStale", + "msg": "Obligation state needs to be refreshed" + }, + { + "code": 6018, + "name": "ObligationReserveLimit", + "msg": "Obligation reserve limit exceeded" + }, + { + "code": 6019, + "name": "InvalidObligationOwner", + "msg": "Obligation owner is invalid" + }, + { + "code": 6020, + "name": "ObligationDepositsEmpty", + "msg": "Obligation deposits are empty" + }, + { + "code": 6021, + "name": "ObligationBorrowsEmpty", + "msg": "Obligation borrows are empty" + }, + { + "code": 6022, + "name": "ObligationDepositsZero", + "msg": "Obligation deposits have zero value" + }, + { + "code": 6023, + "name": "ObligationBorrowsZero", + "msg": "Obligation borrows have zero value" + }, + { + "code": 6024, + "name": "InvalidObligationCollateral", + "msg": "Invalid obligation collateral" + }, + { + "code": 6025, + "name": "InvalidObligationLiquidity", + "msg": "Invalid obligation liquidity" + }, + { + "code": 6026, + "name": "ObligationCollateralEmpty", + "msg": "Obligation collateral is empty" + }, + { + "code": 6027, + "name": "ObligationLiquidityEmpty", + "msg": "Obligation liquidity is empty" + }, + { + "code": 6028, + "name": "NegativeInterestRate", + "msg": "Interest rate is negative" + }, + { + "code": 6029, + "name": "InvalidOracleConfig", + "msg": "Input oracle config is invalid" + }, + { + "code": 6030, + "name": "InsufficientProtocolFeesToRedeem", + "msg": "Insufficient protocol fees to claim or no liquidity available" + }, + { + "code": 6031, + "name": "FlashBorrowCpi", + "msg": "No cpi flash borrows allowed" + }, + { + "code": 6032, + "name": "NoFlashRepayFound", + "msg": "No corresponding repay found for flash borrow" + }, + { + "code": 6033, + "name": "InvalidFlashRepay", + "msg": "Invalid repay found" + }, + { + "code": 6034, + "name": "FlashRepayCpi", + "msg": "No cpi flash repays allowed" + }, + { + "code": 6035, + "name": "MultipleFlashBorrows", + "msg": "Multiple flash borrows not allowed in the same transaction" + }, + { + "code": 6036, + "name": "FlashLoansDisabled", + "msg": "Flash loans are disabled for this reserve" + }, + { + "code": 6037, + "name": "SwitchboardV2Error", + "msg": "Switchboard error" + }, + { + "code": 6038, + "name": "CouldNotDeserializeScope", + "msg": "Cannot deserialize the scope price account" + }, + { + "code": 6039, + "name": "PriceTooOld", + "msg": "Price too old" + }, + { + "code": 6040, + "name": "PriceTooDivergentFromTwap", + "msg": "Price too divergent from twap" + }, + { + "code": 6041, + "name": "InvalidTwapPrice", + "msg": "Invalid twap price" + }, + { + "code": 6042, + "name": "GlobalEmergencyMode", + "msg": "Emergency mode is enabled" + }, + { + "code": 6043, + "name": "InvalidFlag", + "msg": "Invalid lending market config" + }, + { + "code": 6044, + "name": "PriceNotValid", + "msg": "Price is not valid" + }, + { + "code": 6045, + "name": "PriceIsBiggerThanHeuristic", + "msg": "Price is bigger than allowed by heuristic" + }, + { + "code": 6046, + "name": "PriceIsLowerThanHeuristic", + "msg": "Price lower than allowed by heuristic" + }, + { + "code": 6047, + "name": "PriceIsZero", + "msg": "Price is zero" + }, + { + "code": 6048, + "name": "PriceConfidenceTooWide", + "msg": "Price confidence too wide" + }, + { + "code": 6049, + "name": "IntegerOverflow", + "msg": "Conversion between integers failed" + }, + { + "code": 6050, + "name": "NoFarmForReserve", + "msg": "This reserve does not have a farm" + }, + { + "code": 6051, + "name": "IncorrectInstructionInPosition", + "msg": "Wrong instruction at expected position" + }, + { + "code": 6052, + "name": "NoPriceFound", + "msg": "No price found" + }, + { + "code": 6053, + "name": "InvalidTwapConfig", + "msg": "Invalid Twap configuration: Twap is enabled but one of the enabled price doesn't have a twap" + }, + { + "code": 6054, + "name": "InvalidPythPriceAccount", + "msg": "Pyth price account does not match configuration" + }, + { + "code": 6055, + "name": "InvalidSwitchboardAccount", + "msg": "Switchboard account(s) do not match configuration" + }, + { + "code": 6056, + "name": "InvalidScopePriceAccount", + "msg": "Scope price account does not match configuration" + }, + { + "code": 6057, + "name": "ObligationCollateralLtvZero", + "msg": "The obligation has one collateral with an LTV set to 0. Withdraw it before withdrawing other collaterals" + }, + { + "code": 6058, + "name": "InvalidObligationSeedsValue", + "msg": "Seeds must be default pubkeys for tag 0, and mint addresses for tag 1 or 2" + }, + { + "code": 6059, + "name": "DeprecatedInvalidObligationId", + "msg": "[DEPRECATED] Obligation id must be 0" + }, + { + "code": 6060, + "name": "InvalidBorrowRateCurvePoint", + "msg": "Invalid borrow rate curve point" + }, + { + "code": 6061, + "name": "InvalidUtilizationRate", + "msg": "Invalid utilization rate" + }, + { + "code": 6062, + "name": "CannotSocializeObligationWithCollateral", + "msg": "Obligation hasn't been fully liquidated and debt cannot be socialized." + }, + { + "code": 6063, + "name": "ObligationEmpty", + "msg": "Obligation has no borrows or deposits." + }, + { + "code": 6064, + "name": "WithdrawalCapReached", + "msg": "Withdrawal cap is reached" + }, + { + "code": 6065, + "name": "LastTimestampGreaterThanCurrent", + "msg": "The last interval start timestamp is greater than the current timestamp" + }, + { + "code": 6066, + "name": "LiquidationRewardTooSmall", + "msg": "The reward amount is less than the minimum acceptable received liquidity" + }, + { + "code": 6067, + "name": "IsolatedAssetTierViolation", + "msg": "Isolated Asset Tier Violation" + }, + { + "code": 6068, + "name": "InconsistentElevationGroup", + "msg": "The obligation's elevation group and the reserve's are not the same" + }, + { + "code": 6069, + "name": "InvalidElevationGroup", + "msg": "The elevation group chosen for the reserve does not exist in the lending market" + }, + { + "code": 6070, + "name": "InvalidElevationGroupConfig", + "msg": "The elevation group updated has wrong parameters set" + }, + { + "code": 6071, + "name": "UnhealthyElevationGroupLtv", + "msg": "The current obligation must have most or all its debt repaid before changing the elevation group" + }, + { + "code": 6072, + "name": "ElevationGroupNewLoansDisabled", + "msg": "Elevation group does not accept any new loans or any new borrows/withdrawals" + }, + { + "code": 6073, + "name": "ReserveDeprecated", + "msg": "Reserve was deprecated, no longer usable" + }, + { + "code": 6074, + "name": "ReferrerAccountNotInitialized", + "msg": "Referrer account not initialized" + }, + { + "code": 6075, + "name": "ReferrerAccountMintMissmatch", + "msg": "Referrer account mint does not match the operation reserve mint" + }, + { + "code": 6076, + "name": "ReferrerAccountWrongAddress", + "msg": "Referrer account address is not a valid program address" + }, + { + "code": 6077, + "name": "ReferrerAccountReferrerMissmatch", + "msg": "Referrer account referrer does not match the owner referrer" + }, + { + "code": 6078, + "name": "ReferrerAccountMissing", + "msg": "Referrer account missing for obligation with referrer" + }, + { + "code": 6079, + "name": "InsufficientReferralFeesToRedeem", + "msg": "Insufficient referral fees to claim or no liquidity available" + }, + { + "code": 6080, + "name": "CpiDisabled", + "msg": "CPI disabled for this instruction" + }, + { + "code": 6081, + "name": "ShortUrlNotAsciiAlphanumeric", + "msg": "Referrer short_url is not ascii alphanumeric" + }, + { + "code": 6082, + "name": "ReserveObsolete", + "msg": "Reserve is marked as obsolete" + }, + { + "code": 6083, + "name": "ElevationGroupAlreadyActivated", + "msg": "Obligation already part of the same elevation group" + }, + { + "code": 6084, + "name": "ObligationInDeprecatedReserve", + "msg": "Obligation has a deposit in a deprecated reserve" + }, + { + "code": 6085, + "name": "ReferrerStateOwnerMismatch", + "msg": "Referrer state owner does not match the given signer" + }, + { + "code": 6086, + "name": "UserMetadataOwnerAlreadySet", + "msg": "User metadata owner is already set" + }, + { + "code": 6087, + "name": "CollateralNonLiquidatable", + "msg": "This collateral cannot be liquidated (LTV set to 0)" + }, + { + "code": 6088, + "name": "BorrowingDisabled", + "msg": "Borrowing is disabled" + }, + { + "code": 6089, + "name": "BorrowLimitExceeded", + "msg": "Cannot borrow above borrow limit" + }, + { + "code": 6090, + "name": "DepositLimitExceeded", + "msg": "Cannot deposit above deposit limit" + }, + { + "code": 6091, + "name": "BorrowingDisabledOutsideElevationGroup", + "msg": "Reserve does not accept any new borrows outside elevation group" + }, + { + "code": 6092, + "name": "NetValueRemainingTooSmall", + "msg": "Net value remaining too small" + }, + { + "code": 6093, + "name": "WorseLTVBlocked", + "msg": "Cannot get the obligation in a worse position" + }, + { + "code": 6094, + "name": "LiabilitiesBiggerThanAssets", + "msg": "Cannot have more liabilities than assets in a position" + }, + { + "code": 6095, + "name": "ReserveTokenBalanceMismatch", + "msg": "Reserve state and token account cannot drift" + }, + { + "code": 6096, + "name": "ReserveVaultBalanceMismatch", + "msg": "Reserve token account has been unexpectedly modified" + }, + { + "code": 6097, + "name": "ReserveAccountingMismatch", + "msg": "Reserve internal state accounting has been unexpectedly modified" + }, + { + "code": 6098, + "name": "BorrowingAboveUtilizationRateDisabled", + "msg": "Borrowing above set utilization rate is disabled" + }, + { + "code": 6099, + "name": "LiquidationBorrowFactorPriority", + "msg": "Liquidation must prioritize the debt with the highest borrow factor" + }, + { + "code": 6100, + "name": "LiquidationLowestLTVPriority", + "msg": "Liquidation must prioritize the collateral with the lowest LTV" + }, + { + "code": 6101, + "name": "ElevationGroupBorrowLimitExceeded", + "msg": "Elevation group borrow limit exceeded" + }, + { + "code": 6102, + "name": "ElevationGroupWithoutDebtReserve", + "msg": "The elevation group does not have a debt reserve defined" + }, + { + "code": 6103, + "name": "ElevationGroupMaxCollateralReserveZero", + "msg": "The elevation group does not allow any collateral reserves" + }, + { + "code": 6104, + "name": "ElevationGroupHasAnotherDebtReserve", + "msg": "In elevation group attempt to borrow from a reserve that is not the debt reserve" + }, + { + "code": 6105, + "name": "ElevationGroupDebtReserveAsCollateral", + "msg": "The elevation group's debt reserve cannot be used as a collateral reserve" + }, + { + "code": 6106, + "name": "ObligationCollateralExceedsElevationGroupLimit", + "msg": "Obligation have more collateral than the maximum allowed by the elevation group" + }, + { + "code": 6107, + "name": "ObligationElevationGroupMultipleDebtReserve", + "msg": "Obligation is an elevation group but have more than one debt reserve" + }, + { + "code": 6108, + "name": "UnsupportedTokenExtension", + "msg": "Mint has a token (2022) extension that is not supported" + }, + { + "code": 6109, + "name": "InvalidTokenAccount", + "msg": "Can't have an spl token mint with a t22 account" + }, + { + "code": 6110, + "name": "DepositDisabledOutsideElevationGroup", + "msg": "Can't deposit into this reserve outside elevation group" + }, + { + "code": 6111, + "name": "CannotCalculateReferralAmountDueToSlotsMismatch", + "msg": "Cannot calculate referral amount due to slots mismatch" + }, + { + "code": 6112, + "name": "ObligationOwnersMustMatch", + "msg": "Obligation owners must match" + }, + { + "code": 6113, + "name": "ObligationsMustMatch", + "msg": "Obligations must match" + }, + { + "code": 6114, + "name": "LendingMarketsMustMatch", + "msg": "Lending markets must match" + }, + { + "code": 6115, + "name": "ObligationCurrentlyMarkedForDeleveraging", + "msg": "Obligation is already marked for deleveraging" + }, + { + "code": 6116, + "name": "MaximumWithdrawValueZero", + "msg": "Maximum withdrawable value of this collateral is zero, LTV needs improved" + }, + { + "code": 6117, + "name": "ZeroMaxLtvAssetsInDeposits", + "msg": "No max LTV 0 assets allowed in deposits for repay and withdraw" + }, + { + "code": 6118, + "name": "MinLtvAssetsPriority", + "msg": "The operation must prioritize the collateral with the lowest LTV" + }, + { + "code": 6119, + "name": "WorseLTVThanUnhealthyLTV", + "msg": "Cannot get the obligation liquidatable" + }, + { + "code": 6120, + "name": "FarmAccountsMissing", + "msg": "Farm accounts to refresh are missing" + }, + { + "code": 6121, + "name": "RepayTooSmallForFullLiquidation", + "msg": "Repay amount is too small to satisfy the mandatory full liquidation" + }, + { + "code": 6122, + "name": "InsufficientRepayAmount", + "msg": "Liquidator provided repay amount lower than required by liquidation rules" + } + ], + "types": [ + { + "name": "UpdateConfigMode", + "type": { + "kind": "enum", + "variants": [ + { + "name": "UpdateLoanToValuePct" + }, + { + "name": "UpdateMaxLiquidationBonusBps" + }, + { + "name": "UpdateLiquidationThresholdPct" + }, + { + "name": "UpdateProtocolLiquidationFee" + }, + { + "name": "UpdateProtocolTakeRate" + }, + { + "name": "UpdateFeesBorrowFee" + }, + { + "name": "UpdateFeesFlashLoanFee" + }, + { + "name": "UpdateFeesReferralFeeBps" + }, + { + "name": "UpdateDepositLimit" + }, + { + "name": "UpdateBorrowLimit" + }, + { + "name": "UpdateTokenInfoLowerHeuristic" + }, + { + "name": "UpdateTokenInfoUpperHeuristic" + }, + { + "name": "UpdateTokenInfoExpHeuristic" + }, + { + "name": "UpdateTokenInfoTwapDivergence" + }, + { + "name": "UpdateTokenInfoScopeTwap" + }, + { + "name": "UpdateTokenInfoScopeChain" + }, + { + "name": "UpdateTokenInfoName" + }, + { + "name": "UpdateTokenInfoPriceMaxAge" + }, + { + "name": "UpdateTokenInfoTwapMaxAge" + }, + { + "name": "UpdateScopePriceFeed" + }, + { + "name": "UpdatePythPrice" + }, + { + "name": "UpdateSwitchboardFeed" + }, + { + "name": "UpdateSwitchboardTwapFeed" + }, + { + "name": "UpdateBorrowRateCurve" + }, + { + "name": "UpdateEntireReserveConfig" + }, + { + "name": "UpdateDebtWithdrawalCap" + }, + { + "name": "UpdateDepositWithdrawalCap" + }, + { + "name": "UpdateDebtWithdrawalCapCurrentTotal" + }, + { + "name": "UpdateDepositWithdrawalCapCurrentTotal" + }, + { + "name": "UpdateBadDebtLiquidationBonusBps" + }, + { + "name": "UpdateMinLiquidationBonusBps" + }, + { + "name": "UpdateDeleveragingMarginCallPeriod" + }, + { + "name": "UpdateBorrowFactor" + }, + { + "name": "UpdateAssetTier" + }, + { + "name": "UpdateElevationGroup" + }, + { + "name": "UpdateDeleveragingThresholdDecreaseBpsPerDay" + }, + { + "name": "DeprecatedUpdateMultiplierSideBoost" + }, + { + "name": "DeprecatedUpdateMultiplierTagBoost" + }, + { + "name": "UpdateReserveStatus" + }, + { + "name": "UpdateFarmCollateral" + }, + { + "name": "UpdateFarmDebt" + }, + { + "name": "UpdateDisableUsageAsCollateralOutsideEmode" + }, + { + "name": "UpdateBlockBorrowingAboveUtilizationPct" + }, + { + "name": "UpdateBlockPriceUsage" + }, + { + "name": "UpdateBorrowLimitOutsideElevationGroup" + }, + { + "name": "UpdateBorrowLimitsInElevationGroupAgainstThisReserve" + }, + { + "name": "UpdateHostFixedInterestRateBps" + }, + { + "name": "UpdateAutodeleverageEnabled" + }, + { + "name": "UpdateDeleveragingBonusIncreaseBpsPerDay" + } + ] + } + }, + { + "name": "UpdateLendingMarketConfigValue", + "type": { + "kind": "enum", + "variants": [ + { + "name": "Bool", + "fields": ["bool"] + }, + { + "name": "U8", + "fields": ["u8"] + }, + { + "name": "U8Array", + "fields": [ + { + "array": ["u8", 8] + } + ] + }, + { + "name": "U16", + "fields": ["u16"] + }, + { + "name": "U64", + "fields": ["u64"] + }, + { + "name": "U128", + "fields": ["u128"] + }, + { + "name": "Pubkey", + "fields": ["pubkey"] + }, + { + "name": "ElevationGroup", + "fields": [ + { + "defined": { + "name": "ElevationGroup" + } + } + ] + }, + { + "name": "Name", + "fields": [ + { + "array": ["u8", 32] + } + ] + } + ] + } + }, + { + "name": "UpdateLendingMarketMode", + "type": { + "kind": "enum", + "variants": [ + { + "name": "UpdateOwner" + }, + { + "name": "UpdateEmergencyMode" + }, + { + "name": "UpdateLiquidationCloseFactor" + }, + { + "name": "UpdateLiquidationMaxValue" + }, + { + "name": "DeprecatedUpdateGlobalUnhealthyBorrow" + }, + { + "name": "UpdateGlobalAllowedBorrow" + }, + { + "name": "UpdateRiskCouncil" + }, + { + "name": "UpdateMinFullLiquidationThreshold" + }, + { + "name": "UpdateInsolvencyRiskLtv" + }, + { + "name": "UpdateElevationGroup" + }, + { + "name": "UpdateReferralFeeBps" + }, + { + "name": "DeprecatedUpdateMultiplierPoints" + }, + { + "name": "UpdatePriceRefreshTriggerToMaxAgePct" + }, + { + "name": "UpdateAutodeleverageEnabled" + }, + { + "name": "UpdateBorrowingDisabled" + }, + { + "name": "UpdateMinNetValueObligationPostAction" + }, + { + "name": "UpdateMinValueLtvSkipPriorityLiqCheck" + }, + { + "name": "UpdateMinValueBfSkipPriorityLiqCheck" + }, + { + "name": "UpdatePaddingFields" + }, + { + "name": "UpdateName" + }, + { + "name": "UpdateIndividualAutodeleverageMarginCallPeriodSecs" + }, + { + "name": "UpdateInitialDepositAmount" + } + ] + } + }, + { + "name": "LastUpdate", + "type": { + "kind": "struct", + "fields": [ + { + "name": "slot", + "type": "u64" + }, + { + "name": "stale", + "type": "u8" + }, + { + "name": "price_status", + "type": "u8" + }, + { + "name": "placeholder", + "type": { + "array": ["u8", 6] + } + } + ] + } + }, + { + "name": "ElevationGroup", + "type": { + "kind": "struct", + "fields": [ + { + "name": "max_liquidation_bonus_bps", + "type": "u16" + }, + { + "name": "id", + "type": "u8" + }, + { + "name": "ltv_pct", + "type": "u8" + }, + { + "name": "liquidation_threshold_pct", + "type": "u8" + }, + { + "name": "allow_new_loans", + "type": "u8" + }, + { + "name": "max_reserves_as_collateral", + "type": "u8" + }, + { + "name": "padding0", + "type": "u8" + }, + { + "name": "debt_reserve", + "type": "pubkey" + }, + { + "name": "padding1", + "type": { + "array": ["u64", 4] + } + } + ] + } + }, + { + "name": "InitObligationArgs", + "type": { + "kind": "struct", + "fields": [ + { + "name": "tag", + "type": "u8" + }, + { + "name": "id", + "type": "u8" + } + ] + } + }, + { + "name": "ObligationCollateral", + "type": { + "kind": "struct", + "fields": [ + { + "name": "deposit_reserve", + "type": "pubkey" + }, + { + "name": "deposited_amount", + "type": "u64" + }, + { + "name": "market_value_sf", + "type": "u128" + }, + { + "name": "borrowed_amount_against_this_collateral_in_elevation_group", + "type": "u64" + }, + { + "name": "padding", + "type": { + "array": ["u64", 9] + } + } + ] + } + }, + { + "name": "ObligationLiquidity", + "type": { + "kind": "struct", + "fields": [ + { + "name": "borrow_reserve", + "type": "pubkey" + }, + { + "name": "cumulative_borrow_rate_bsf", + "type": { + "defined": { + "name": "BigFractionBytes" + } + } + }, + { + "name": "padding", + "type": "u64" + }, + { + "name": "borrowed_amount_sf", + "type": "u128" + }, + { + "name": "market_value_sf", + "type": "u128" + }, + { + "name": "borrow_factor_adjusted_market_value_sf", + "type": "u128" + }, + { + "name": "borrowed_amount_outside_elevation_groups", + "type": "u64" + }, + { + "name": "padding2", + "type": { + "array": ["u64", 7] + } + } + ] + } + }, + { + "name": "AssetTier", + "type": { + "kind": "enum", + "variants": [ + { + "name": "Regular" + }, + { + "name": "IsolatedCollateral" + }, + { + "name": "IsolatedDebt" + } + ] + } + }, + { + "name": "BigFractionBytes", + "type": { + "kind": "struct", + "fields": [ + { + "name": "value", + "type": { + "array": ["u64", 4] + } + }, + { + "name": "padding", + "type": { + "array": ["u64", 2] + } + } + ] + } + }, + { + "name": "FeeCalculation", + "type": { + "kind": "enum", + "variants": [ + { + "name": "Exclusive" + }, + { + "name": "Inclusive" + } + ] + } + }, + { + "name": "ReserveCollateral", + "type": { + "kind": "struct", + "fields": [ + { + "name": "mint_pubkey", + "type": "pubkey" + }, + { + "name": "mint_total_supply", + "type": "u64" + }, + { + "name": "supply_vault", + "type": "pubkey" + }, + { + "name": "padding1", + "type": { + "array": ["u128", 32] + } + }, + { + "name": "padding2", + "type": { + "array": ["u128", 32] + } + } + ] + } + }, + { + "name": "ReserveConfig", + "type": { + "kind": "struct", + "fields": [ + { + "name": "status", + "type": "u8" + }, + { + "name": "asset_tier", + "type": "u8" + }, + { + "name": "host_fixed_interest_rate_bps", + "type": "u16" + }, + { + "name": "reserved2", + "type": { + "array": ["u8", 2] + } + }, + { + "name": "reserved3", + "type": { + "array": ["u8", 8] + } + }, + { + "name": "protocol_take_rate_pct", + "type": "u8" + }, + { + "name": "protocol_liquidation_fee_pct", + "type": "u8" + }, + { + "name": "loan_to_value_pct", + "type": "u8" + }, + { + "name": "liquidation_threshold_pct", + "type": "u8" + }, + { + "name": "min_liquidation_bonus_bps", + "type": "u16" + }, + { + "name": "max_liquidation_bonus_bps", + "type": "u16" + }, + { + "name": "bad_debt_liquidation_bonus_bps", + "type": "u16" + }, + { + "name": "deleveraging_margin_call_period_secs", + "type": "u64" + }, + { + "name": "deleveraging_threshold_decrease_bps_per_day", + "type": "u64" + }, + { + "name": "fees", + "type": { + "defined": { + "name": "ReserveFees" + } + } + }, + { + "name": "borrow_rate_curve", + "type": { + "defined": { + "name": "BorrowRateCurve" + } + } + }, + { + "name": "borrow_factor_pct", + "type": "u64" + }, + { + "name": "deposit_limit", + "type": "u64" + }, + { + "name": "borrow_limit", + "type": "u64" + }, + { + "name": "token_info", + "type": { + "defined": { + "name": "TokenInfo" + } + } + }, + { + "name": "deposit_withdrawal_cap", + "type": { + "defined": { + "name": "WithdrawalCaps" + } + } + }, + { + "name": "debt_withdrawal_cap", + "type": { + "defined": { + "name": "WithdrawalCaps" + } + } + }, + { + "name": "elevation_groups", + "type": { + "array": ["u8", 20] + } + }, + { + "name": "disable_usage_as_coll_outside_emode", + "type": "u8" + }, + { + "name": "utilization_limit_block_borrowing_above_pct", + "type": "u8" + }, + { + "name": "autodeleverage_enabled", + "type": "u8" + }, + { + "name": "reserved1", + "type": { + "array": ["u8", 1] + } + }, + { + "name": "borrow_limit_outside_elevation_group", + "type": "u64" + }, + { + "name": "borrow_limit_against_this_collateral_in_elevation_group", + "type": { + "array": ["u64", 32] + } + }, + { + "name": "deleveraging_bonus_increase_bps_per_day", + "type": "u64" + } + ] + } + }, + { + "name": "ReserveFarmKind", + "type": { + "kind": "enum", + "variants": [ + { + "name": "Collateral" + }, + { + "name": "Debt" + } + ] + } + }, + { + "name": "ReserveFees", + "type": { + "kind": "struct", + "fields": [ + { + "name": "borrow_fee_sf", + "type": "u64" + }, + { + "name": "flash_loan_fee_sf", + "type": "u64" + }, + { + "name": "padding", + "type": { + "array": ["u8", 8] + } + } + ] + } + }, + { + "name": "ReserveLiquidity", + "type": { + "kind": "struct", + "fields": [ + { + "name": "mint_pubkey", + "type": "pubkey" + }, + { + "name": "supply_vault", + "type": "pubkey" + }, + { + "name": "fee_vault", + "type": "pubkey" + }, + { + "name": "available_amount", + "type": "u64" + }, + { + "name": "borrowed_amount_sf", + "type": "u128" + }, + { + "name": "market_price_sf", + "type": "u128" + }, + { + "name": "market_price_last_updated_ts", + "type": "u64" + }, + { + "name": "mint_decimals", + "type": "u64" + }, + { + "name": "deposit_limit_crossed_timestamp", + "type": "u64" + }, + { + "name": "borrow_limit_crossed_timestamp", + "type": "u64" + }, + { + "name": "cumulative_borrow_rate_bsf", + "type": { + "defined": { + "name": "BigFractionBytes" + } + } + }, + { + "name": "accumulated_protocol_fees_sf", + "type": "u128" + }, + { + "name": "accumulated_referrer_fees_sf", + "type": "u128" + }, + { + "name": "pending_referrer_fees_sf", + "type": "u128" + }, + { + "name": "absolute_referral_rate_sf", + "type": "u128" + }, + { + "name": "token_program", + "type": "pubkey" + }, + { + "name": "padding2", + "type": { + "array": ["u64", 51] + } + }, + { + "name": "padding3", + "type": { + "array": ["u128", 32] + } + } + ] + } + }, + { + "name": "ReserveStatus", + "type": { + "kind": "enum", + "variants": [ + { + "name": "Active" + }, + { + "name": "Obsolete" + }, + { + "name": "Hidden" + } + ] + } + }, + { + "name": "WithdrawalCaps", + "type": { + "kind": "struct", + "fields": [ + { + "name": "config_capacity", + "type": "i64" + }, + { + "name": "current_total", + "type": "i64" + }, + { + "name": "last_interval_start_timestamp", + "type": "u64" + }, + { + "name": "config_interval_length_seconds", + "type": "u64" + } + ] + } + }, + { + "name": "PriceHeuristic", + "type": { + "kind": "struct", + "fields": [ + { + "name": "lower", + "type": "u64" + }, + { + "name": "upper", + "type": "u64" + }, + { + "name": "exp", + "type": "u64" + } + ] + } + }, + { + "name": "PythConfiguration", + "type": { + "kind": "struct", + "fields": [ + { + "name": "price", + "type": "pubkey" + } + ] + } + }, + { + "name": "ScopeConfiguration", + "type": { + "kind": "struct", + "fields": [ + { + "name": "price_feed", + "type": "pubkey" + }, + { + "name": "price_chain", + "type": { + "array": ["u16", 4] + } + }, + { + "name": "twap_chain", + "type": { + "array": ["u16", 4] + } + } + ] + } + }, + { + "name": "SwitchboardConfiguration", + "type": { + "kind": "struct", + "fields": [ + { + "name": "price_aggregator", + "type": "pubkey" + }, + { + "name": "twap_aggregator", + "type": "pubkey" + } + ] + } + }, + { + "name": "TokenInfo", + "type": { + "kind": "struct", + "fields": [ + { + "name": "name", + "type": { + "array": ["u8", 32] + } + }, + { + "name": "heuristic", + "type": { + "defined": { + "name": "PriceHeuristic" + } + } + }, + { + "name": "max_twap_divergence_bps", + "type": "u64" + }, + { + "name": "max_age_price_seconds", + "type": "u64" + }, + { + "name": "max_age_twap_seconds", + "type": "u64" + }, + { + "name": "scope_configuration", + "type": { + "defined": { + "name": "ScopeConfiguration" + } + } + }, + { + "name": "switchboard_configuration", + "type": { + "defined": { + "name": "SwitchboardConfiguration" + } + } + }, + { + "name": "pyth_configuration", + "type": { + "defined": { + "name": "PythConfiguration" + } + } + }, + { + "name": "block_price_usage", + "type": "u8" + }, + { + "name": "reserved", + "type": { + "array": ["u8", 7] + } + }, + { + "name": "padding", + "type": { + "array": ["u64", 19] + } + } + ] + } + }, + { + "name": "BorrowRateCurve", + "type": { + "kind": "struct", + "fields": [ + { + "name": "points", + "type": { + "array": [ + { + "defined": { + "name": "CurvePoint" + } + }, + 11 + ] + } + } + ] + } + }, + { + "name": "CurvePoint", + "type": { + "kind": "struct", + "fields": [ + { + "name": "utilization_rate_bps", + "type": "u32" + }, + { + "name": "borrow_rate_bps", + "type": "u32" + } + ] + } + }, + { + "name": "UserState", + "type": { + "kind": "struct", + "fields": [ + { + "name": "user_id", + "type": "u64" + }, + { + "name": "farm_state", + "type": "pubkey" + }, + { + "name": "owner", + "type": "pubkey" + }, + { + "name": "is_farm_delegated", + "type": "u8" + }, + { + "name": "padding0", + "type": { + "array": ["u8", 7] + } + }, + { + "name": "rewards_tally_scaled", + "type": { + "array": ["u128", 10] + } + }, + { + "name": "rewards_issued_unclaimed", + "type": { + "array": ["u64", 10] + } + }, + { + "name": "last_claim_ts", + "type": { + "array": ["u64", 10] + } + }, + { + "name": "active_stake_scaled", + "type": "u128" + }, + { + "name": "pending_deposit_stake_scaled", + "type": "u128" + }, + { + "name": "pending_deposit_stake_ts", + "type": "u64" + }, + { + "name": "pending_withdrawal_unstake_scaled", + "type": "u128" + }, + { + "name": "pending_withdrawal_unstake_ts", + "type": "u64" + }, + { + "name": "bump", + "type": "u64" + }, + { + "name": "delegatee", + "type": "pubkey" + }, + { + "name": "last_stake_ts", + "type": "u64" + }, + { + "name": "padding1", + "type": { + "array": ["u64", 50] + } + } + ] + } + }, + { + "name": "LendingMarket", + "type": { + "kind": "struct", + "fields": [ + { + "name": "version", + "type": "u64" + }, + { + "name": "bump_seed", + "type": "u64" + }, + { + "name": "lending_market_owner", + "type": "pubkey" + }, + { + "name": "lending_market_owner_cached", + "type": "pubkey" + }, + { + "name": "quote_currency", + "type": { + "array": ["u8", 32] + } + }, + { + "name": "referral_fee_bps", + "type": "u16" + }, + { + "name": "emergency_mode", + "type": "u8" + }, + { + "name": "autodeleverage_enabled", + "type": "u8" + }, + { + "name": "borrow_disabled", + "type": "u8" + }, + { + "name": "price_refresh_trigger_to_max_age_pct", + "type": "u8" + }, + { + "name": "liquidation_max_debt_close_factor_pct", + "type": "u8" + }, + { + "name": "insolvency_risk_unhealthy_ltv_pct", + "type": "u8" + }, + { + "name": "min_full_liquidation_value_threshold", + "type": "u64" + }, + { + "name": "max_liquidatable_debt_market_value_at_once", + "type": "u64" + }, + { + "name": "reserved0", + "type": { + "array": ["u8", 8] + } + }, + { + "name": "global_allowed_borrow_value", + "type": "u64" + }, + { + "name": "risk_council", + "type": "pubkey" + }, + { + "name": "reserved1", + "type": { + "array": ["u8", 8] + } + }, + { + "name": "elevation_groups", + "type": { + "array": [ + { + "defined": { + "name": "ElevationGroup" + } + }, + 32 + ] + } + }, + { + "name": "elevation_group_padding", + "type": { + "array": ["u64", 90] + } + }, + { + "name": "min_net_value_in_obligation_sf", + "type": "u128" + }, + { + "name": "min_value_skip_liquidation_ltv_checks", + "type": "u64" + }, + { + "name": "name", + "type": { + "array": ["u8", 32] + } + }, + { + "name": "min_value_skip_liquidation_bf_checks", + "type": "u64" + }, + { + "name": "individual_autodeleverage_margin_call_period_secs", + "type": "u64" + }, + { + "name": "min_initial_deposit_amount", + "type": "u64" + }, + { + "name": "padding1", + "type": { + "array": ["u64", 170] + } + } + ] + } + }, + { + "name": "Obligation", + "type": { + "kind": "struct", + "fields": [ + { + "name": "tag", + "type": "u64" + }, + { + "name": "last_update", + "type": { + "defined": { + "name": "LastUpdate" + } + } + }, + { + "name": "lending_market", + "type": "pubkey" + }, + { + "name": "owner", + "type": "pubkey" + }, + { + "name": "deposits", + "type": { + "array": [ + { + "defined": { + "name": "ObligationCollateral" + } + }, + 8 + ] + } + }, + { + "name": "lowest_reserve_deposit_liquidation_ltv", + "type": "u64" + }, + { + "name": "deposited_value_sf", + "type": "u128" + }, + { + "name": "borrows", + "type": { + "array": [ + { + "defined": { + "name": "ObligationLiquidity" + } + }, + 5 + ] + } + }, + { + "name": "borrow_factor_adjusted_debt_value_sf", + "type": "u128" + }, + { + "name": "borrowed_assets_market_value_sf", + "type": "u128" + }, + { + "name": "allowed_borrow_value_sf", + "type": "u128" + }, + { + "name": "unhealthy_borrow_value_sf", + "type": "u128" + }, + { + "name": "deposits_asset_tiers", + "type": { + "array": ["u8", 8] + } + }, + { + "name": "borrows_asset_tiers", + "type": { + "array": ["u8", 5] + } + }, + { + "name": "elevation_group", + "type": "u8" + }, + { + "name": "num_of_obsolete_reserves", + "type": "u8" + }, + { + "name": "has_debt", + "type": "u8" + }, + { + "name": "referrer", + "type": "pubkey" + }, + { + "name": "borrowing_disabled", + "type": "u8" + }, + { + "name": "autodeleverage_target_ltv_pct", + "type": "u8" + }, + { + "name": "lowest_reserve_deposit_max_ltv_pct", + "type": "u8" + }, + { + "name": "reserved", + "type": { + "array": ["u8", 5] + } + }, + { + "name": "highest_borrow_factor_pct", + "type": "u64" + }, + { + "name": "autodeleverage_margin_call_started_timestamp", + "type": "u64" + }, + { + "name": "padding3", + "type": { + "array": ["u64", 125] + } + } + ] + } + }, + { + "name": "ReferrerState", + "type": { + "kind": "struct", + "fields": [ + { + "name": "short_url", + "type": "pubkey" + }, + { + "name": "owner", + "type": "pubkey" + } + ] + } + }, + { + "name": "ReferrerTokenState", + "type": { + "kind": "struct", + "fields": [ + { + "name": "referrer", + "type": "pubkey" + }, + { + "name": "mint", + "type": "pubkey" + }, + { + "name": "amount_unclaimed_sf", + "type": "u128" + }, + { + "name": "amount_cumulative_sf", + "type": "u128" + }, + { + "name": "bump", + "type": "u64" + }, + { + "name": "padding", + "type": { + "array": ["u64", 31] + } + } + ] + } + }, + { + "name": "ShortUrl", + "type": { + "kind": "struct", + "fields": [ + { + "name": "referrer", + "type": "pubkey" + }, + { + "name": "short_url", + "type": "string" + } + ] + } + }, + { + "name": "UserMetadata", + "type": { + "kind": "struct", + "fields": [ + { + "name": "referrer", + "type": "pubkey" + }, + { + "name": "bump", + "type": "u64" + }, + { + "name": "user_lookup_table", + "type": "pubkey" + }, + { + "name": "owner", + "type": "pubkey" + }, + { + "name": "padding1", + "type": { + "array": ["u64", 51] + } + }, + { + "name": "padding2", + "type": { + "array": ["u64", 64] + } + } + ] + } + }, + { + "name": "Reserve", + "type": { + "kind": "struct", + "fields": [ + { + "name": "version", + "type": "u64" + }, + { + "name": "last_update", + "type": { + "defined": { + "name": "LastUpdate" + } + } + }, + { + "name": "lending_market", + "type": "pubkey" + }, + { + "name": "farm_collateral", + "type": "pubkey" + }, + { + "name": "farm_debt", + "type": "pubkey" + }, + { + "name": "liquidity", + "type": { + "defined": { + "name": "ReserveLiquidity" + } + } + }, + { + "name": "reserve_liquidity_padding", + "type": { + "array": ["u64", 150] + } + }, + { + "name": "collateral", + "type": { + "defined": { + "name": "ReserveCollateral" + } + } + }, + { + "name": "reserve_collateral_padding", + "type": { + "array": ["u64", 150] + } + }, + { + "name": "config", + "type": { + "defined": { + "name": "ReserveConfig" + } + } + }, + { + "name": "config_padding", + "type": { + "array": ["u64", 116] + } + }, + { + "name": "borrowed_amount_outside_elevation_group", + "type": "u64" + }, + { + "name": "borrowed_amounts_against_this_reserve_in_elevation_groups", + "type": { + "array": ["u64", 32] + } + }, + { + "name": "padding", + "type": { + "array": ["u64", 207] + } + } + ] + } + } + ] +} diff --git a/examples/kamino-lend/src/lib.rs b/examples/kamino-lend/src/lib.rs new file mode 100644 index 0000000..1b1afc8 --- /dev/null +++ b/examples/kamino-lend/src/lib.rs @@ -0,0 +1,10 @@ +//! Autogenerated CPI client for the Kamino Lend program. +//! +//! CPI helpers for the [Kamino Lend](https://github.com/Kamino-Finance/klend) +//! program. +//! +//! This crate was automatically generated by +//! [anchor-gen](https://github.com/saber-hq/anchor-gen), a crate for generating +//! Anchor CPI helpers from JSON IDLs. + +anchor_gen::generate_cpi_interface!(idl_path = "idl.json"); diff --git a/examples/whirlpools/README.md b/examples/whirlpools/README.md deleted file mode 100644 index 44a8621..0000000 --- a/examples/whirlpools/README.md +++ /dev/null @@ -1,12 +0,0 @@ -# whirlpools - -Autogenerated CPI client for the Orca Whirlpools program. - -CPI helpers for the [Orca Whirlpools](https://github.com/orca-so/whirlpools) -program. - -This crate was automatically generated by -[anchor-gen](https://github.com/saber-hq/anchor-gen), a crate for generating -Anchor CPI helpers from JSON IDLs. - -License: Apache-2.0 diff --git a/examples/whirlpools/idl.json b/examples/whirlpools/idl.json deleted file mode 100644 index 00c46be..0000000 --- a/examples/whirlpools/idl.json +++ /dev/null @@ -1,1544 +0,0 @@ -{ - "address": "whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc", - "metadata": { - "name": "whirlpool", - "version": "0.1.0", - "spec": "0.1.0" - }, - "instructions": [ - { - "name": "initialize_config", - "discriminator": [208, 127, 21, 1, 194, 190, 196, 70], - "accounts": [ - { - "name": "config", - "writable": true, - "signer": true - }, - { - "name": "funder", - "writable": true, - "signer": true - }, - { - "name": "system_program" - } - ], - "args": [ - { - "name": "fee_authority", - "type": "pubkey" - }, - { - "name": "collect_protocol_fees_authority", - "type": "pubkey" - }, - { - "name": "reward_emissions_super_authority", - "type": "pubkey" - }, - { - "name": "default_protocol_fee_rate", - "type": "u16" - } - ] - }, - { - "name": "initialize_pool", - "discriminator": [95, 180, 10, 172, 84, 174, 232, 40], - "accounts": [ - { - "name": "whirlpools_config" - }, - { - "name": "token_mint_a" - }, - { - "name": "token_mint_b" - }, - { - "name": "funder", - "writable": true, - "signer": true - }, - { - "name": "whirlpool", - "writable": true - }, - { - "name": "token_vault_a", - "writable": true, - "signer": true - }, - { - "name": "token_vault_b", - "writable": true, - "signer": true - }, - { - "name": "fee_tier" - }, - { - "name": "token_program" - }, - { - "name": "system_program" - }, - { - "name": "rent" - } - ], - "args": [ - { - "name": "bumps", - "type": { - "defined": { - "name": "WhirlpoolBumps" - } - } - }, - { - "name": "tick_spacing", - "type": "u16" - }, - { - "name": "initial_sqrt_price", - "type": "u128" - } - ] - }, - { - "name": "initialize_tick_array", - "discriminator": [11, 188, 193, 214, 141, 91, 149, 184], - "accounts": [ - { - "name": "whirlpool" - }, - { - "name": "funder", - "writable": true, - "signer": true - }, - { - "name": "tick_array", - "writable": true - }, - { - "name": "system_program" - } - ], - "args": [ - { - "name": "start_tick_index", - "type": "i32" - } - ] - }, - { - "name": "initialize_fee_tier", - "discriminator": [183, 74, 156, 160, 112, 2, 42, 30], - "accounts": [ - { - "name": "config" - }, - { - "name": "fee_tier", - "writable": true - }, - { - "name": "funder", - "writable": true, - "signer": true - }, - { - "name": "fee_authority", - "signer": true - }, - { - "name": "system_program" - } - ], - "args": [ - { - "name": "tick_spacing", - "type": "u16" - }, - { - "name": "default_fee_rate", - "type": "u16" - } - ] - }, - { - "name": "initialize_reward", - "discriminator": [95, 135, 192, 196, 242, 129, 230, 68], - "accounts": [ - { - "name": "reward_authority", - "signer": true - }, - { - "name": "funder", - "writable": true, - "signer": true - }, - { - "name": "whirlpool", - "writable": true - }, - { - "name": "reward_mint" - }, - { - "name": "reward_vault", - "writable": true, - "signer": true - }, - { - "name": "token_program" - }, - { - "name": "system_program" - }, - { - "name": "rent" - } - ], - "args": [ - { - "name": "reward_index", - "type": "u8" - } - ] - }, - { - "name": "set_reward_emissions", - "discriminator": [13, 197, 86, 168, 109, 176, 27, 244], - "accounts": [ - { - "name": "whirlpool", - "writable": true - }, - { - "name": "reward_authority", - "signer": true - }, - { - "name": "reward_vault" - } - ], - "args": [ - { - "name": "reward_index", - "type": "u8" - }, - { - "name": "emissions_per_second_x64", - "type": "u128" - } - ] - }, - { - "name": "open_position", - "discriminator": [135, 128, 47, 77, 15, 152, 240, 49], - "accounts": [ - { - "name": "funder", - "writable": true, - "signer": true - }, - { - "name": "owner" - }, - { - "name": "position", - "writable": true - }, - { - "name": "position_mint", - "writable": true, - "signer": true - }, - { - "name": "position_token_account", - "writable": true - }, - { - "name": "whirlpool" - }, - { - "name": "token_program" - }, - { - "name": "system_program" - }, - { - "name": "rent" - }, - { - "name": "associated_token_program" - } - ], - "args": [ - { - "name": "bumps", - "type": { - "defined": { - "name": "OpenPositionBumps" - } - } - }, - { - "name": "tick_lower_index", - "type": "i32" - }, - { - "name": "tick_upper_index", - "type": "i32" - } - ] - }, - { - "name": "open_position_with_metadata", - "discriminator": [242, 29, 134, 48, 58, 110, 14, 60], - "accounts": [ - { - "name": "funder", - "writable": true, - "signer": true - }, - { - "name": "owner" - }, - { - "name": "position", - "writable": true - }, - { - "name": "position_mint", - "writable": true, - "signer": true - }, - { - "name": "position_metadata_account", - "writable": true - }, - { - "name": "position_token_account", - "writable": true - }, - { - "name": "whirlpool" - }, - { - "name": "token_program" - }, - { - "name": "system_program" - }, - { - "name": "rent" - }, - { - "name": "associated_token_program" - }, - { - "name": "metadata_program" - }, - { - "name": "metadata_update_auth" - } - ], - "args": [ - { - "name": "bumps", - "type": { - "defined": { - "name": "OpenPositionWithMetadataBumps" - } - } - }, - { - "name": "tick_lower_index", - "type": "i32" - }, - { - "name": "tick_upper_index", - "type": "i32" - } - ] - }, - { - "name": "increase_liquidity", - "discriminator": [46, 156, 243, 118, 13, 205, 251, 178], - "accounts": [ - { - "name": "whirlpool", - "writable": true - }, - { - "name": "token_program" - }, - { - "name": "position_authority", - "signer": true - }, - { - "name": "position", - "writable": true - }, - { - "name": "position_token_account" - }, - { - "name": "token_owner_account_a", - "writable": true - }, - { - "name": "token_owner_account_b", - "writable": true - }, - { - "name": "token_vault_a", - "writable": true - }, - { - "name": "token_vault_b", - "writable": true - }, - { - "name": "tick_array_lower", - "writable": true - }, - { - "name": "tick_array_upper", - "writable": true - } - ], - "args": [ - { - "name": "liquidity_amount", - "type": "u128" - }, - { - "name": "token_max_a", - "type": "u64" - }, - { - "name": "token_max_b", - "type": "u64" - } - ] - }, - { - "name": "decrease_liquidity", - "discriminator": [160, 38, 208, 111, 104, 91, 44, 1], - "accounts": [ - { - "name": "whirlpool", - "writable": true - }, - { - "name": "token_program" - }, - { - "name": "position_authority", - "signer": true - }, - { - "name": "position", - "writable": true - }, - { - "name": "position_token_account" - }, - { - "name": "token_owner_account_a", - "writable": true - }, - { - "name": "token_owner_account_b", - "writable": true - }, - { - "name": "token_vault_a", - "writable": true - }, - { - "name": "token_vault_b", - "writable": true - }, - { - "name": "tick_array_lower", - "writable": true - }, - { - "name": "tick_array_upper", - "writable": true - } - ], - "args": [ - { - "name": "liquidity_amount", - "type": "u128" - }, - { - "name": "token_min_a", - "type": "u64" - }, - { - "name": "token_min_b", - "type": "u64" - } - ] - }, - { - "name": "update_fees_and_rewards", - "discriminator": [154, 230, 250, 13, 236, 209, 75, 223], - "accounts": [ - { - "name": "whirlpool", - "writable": true - }, - { - "name": "position", - "writable": true - }, - { - "name": "tick_array_lower" - }, - { - "name": "tick_array_upper" - } - ], - "args": [] - }, - { - "name": "collect_fees", - "discriminator": [164, 152, 207, 99, 30, 186, 19, 182], - "accounts": [ - { - "name": "whirlpool" - }, - { - "name": "position_authority", - "signer": true - }, - { - "name": "position", - "writable": true - }, - { - "name": "position_token_account" - }, - { - "name": "token_owner_account_a", - "writable": true - }, - { - "name": "token_vault_a", - "writable": true - }, - { - "name": "token_owner_account_b", - "writable": true - }, - { - "name": "token_vault_b", - "writable": true - }, - { - "name": "token_program" - } - ], - "args": [] - }, - { - "name": "collect_reward", - "discriminator": [70, 5, 132, 87, 86, 235, 177, 34], - "accounts": [ - { - "name": "whirlpool" - }, - { - "name": "position_authority", - "signer": true - }, - { - "name": "position", - "writable": true - }, - { - "name": "position_token_account" - }, - { - "name": "reward_owner_account", - "writable": true - }, - { - "name": "reward_vault", - "writable": true - }, - { - "name": "token_program" - } - ], - "args": [ - { - "name": "reward_index", - "type": "u8" - } - ] - }, - { - "name": "collect_protocol_fees", - "discriminator": [22, 67, 23, 98, 150, 178, 70, 220], - "accounts": [ - { - "name": "whirlpools_config" - }, - { - "name": "whirlpool", - "writable": true - }, - { - "name": "collect_protocol_fees_authority", - "signer": true - }, - { - "name": "token_vault_a", - "writable": true - }, - { - "name": "token_vault_b", - "writable": true - }, - { - "name": "token_destination_a", - "writable": true - }, - { - "name": "token_destination_b", - "writable": true - }, - { - "name": "token_program" - } - ], - "args": [] - }, - { - "name": "swap", - "discriminator": [248, 198, 158, 145, 225, 117, 135, 200], - "accounts": [ - { - "name": "token_program" - }, - { - "name": "token_authority", - "signer": true - }, - { - "name": "whirlpool", - "writable": true - }, - { - "name": "token_owner_account_a", - "writable": true - }, - { - "name": "token_vault_a", - "writable": true - }, - { - "name": "token_owner_account_b", - "writable": true - }, - { - "name": "token_vault_b", - "writable": true - }, - { - "name": "tick_array0", - "writable": true - }, - { - "name": "tick_array1", - "writable": true - }, - { - "name": "tick_array2", - "writable": true - }, - { - "name": "oracle" - } - ], - "args": [ - { - "name": "amount", - "type": "u64" - }, - { - "name": "other_amount_threshold", - "type": "u64" - }, - { - "name": "sqrt_price_limit", - "type": "u128" - }, - { - "name": "amount_specified_is_input", - "type": "bool" - }, - { - "name": "a_to_b", - "type": "bool" - } - ] - }, - { - "name": "close_position", - "discriminator": [123, 134, 81, 0, 49, 68, 98, 98], - "accounts": [ - { - "name": "position_authority", - "signer": true - }, - { - "name": "receiver", - "writable": true - }, - { - "name": "position", - "writable": true - }, - { - "name": "position_mint", - "writable": true - }, - { - "name": "position_token_account", - "writable": true - }, - { - "name": "token_program" - } - ], - "args": [] - }, - { - "name": "set_default_fee_rate", - "discriminator": [118, 215, 214, 157, 182, 229, 208, 228], - "accounts": [ - { - "name": "whirlpools_config" - }, - { - "name": "fee_tier", - "writable": true - }, - { - "name": "fee_authority", - "signer": true - } - ], - "args": [ - { - "name": "default_fee_rate", - "type": "u16" - } - ] - }, - { - "name": "set_default_protocol_fee_rate", - "discriminator": [107, 205, 249, 226, 151, 35, 86, 0], - "accounts": [ - { - "name": "whirlpools_config", - "writable": true - }, - { - "name": "fee_authority", - "signer": true - } - ], - "args": [ - { - "name": "default_protocol_fee_rate", - "type": "u16" - } - ] - }, - { - "name": "set_fee_rate", - "discriminator": [53, 243, 137, 65, 8, 140, 158, 6], - "accounts": [ - { - "name": "whirlpools_config" - }, - { - "name": "whirlpool", - "writable": true - }, - { - "name": "fee_authority", - "signer": true - } - ], - "args": [ - { - "name": "fee_rate", - "type": "u16" - } - ] - }, - { - "name": "set_protocol_fee_rate", - "discriminator": [95, 7, 4, 50, 154, 79, 156, 131], - "accounts": [ - { - "name": "whirlpools_config" - }, - { - "name": "whirlpool", - "writable": true - }, - { - "name": "fee_authority", - "signer": true - } - ], - "args": [ - { - "name": "protocol_fee_rate", - "type": "u16" - } - ] - }, - { - "name": "set_fee_authority", - "discriminator": [31, 1, 50, 87, 237, 101, 97, 132], - "accounts": [ - { - "name": "whirlpools_config", - "writable": true - }, - { - "name": "fee_authority", - "signer": true - }, - { - "name": "new_fee_authority" - } - ], - "args": [] - }, - { - "name": "set_collect_protocol_fees_authority", - "discriminator": [34, 150, 93, 244, 139, 225, 233, 67], - "accounts": [ - { - "name": "whirlpools_config", - "writable": true - }, - { - "name": "collect_protocol_fees_authority", - "signer": true - }, - { - "name": "new_collect_protocol_fees_authority" - } - ], - "args": [] - }, - { - "name": "set_reward_authority", - "discriminator": [34, 39, 183, 252, 83, 28, 85, 127], - "accounts": [ - { - "name": "whirlpool", - "writable": true - }, - { - "name": "reward_authority", - "signer": true - }, - { - "name": "new_reward_authority" - } - ], - "args": [ - { - "name": "reward_index", - "type": "u8" - } - ] - }, - { - "name": "set_reward_authority_by_super_authority", - "discriminator": [240, 154, 201, 198, 148, 93, 56, 25], - "accounts": [ - { - "name": "whirlpools_config" - }, - { - "name": "whirlpool", - "writable": true - }, - { - "name": "reward_emissions_super_authority", - "signer": true - }, - { - "name": "new_reward_authority" - } - ], - "args": [ - { - "name": "reward_index", - "type": "u8" - } - ] - }, - { - "name": "set_reward_emissions_super_authority", - "discriminator": [207, 5, 200, 209, 122, 56, 82, 183], - "accounts": [ - { - "name": "whirlpools_config", - "writable": true - }, - { - "name": "reward_emissions_super_authority", - "signer": true - }, - { - "name": "new_reward_emissions_super_authority" - } - ], - "args": [] - } - ], - "accounts": [ - { - "name": "WhirlpoolsConfig", - "discriminator": [157, 20, 49, 224, 217, 87, 193, 254] - }, - { - "name": "FeeTier", - "discriminator": [56, 75, 159, 76, 142, 68, 190, 105] - }, - { - "name": "Position", - "discriminator": [170, 188, 143, 228, 122, 64, 247, 208] - }, - { - "name": "TickArray", - "discriminator": [69, 97, 189, 190, 110, 7, 66, 187] - }, - { - "name": "Whirlpool", - "discriminator": [63, 149, 209, 12, 225, 128, 99, 9] - } - ], - "errors": [ - { - "code": 6000, - "name": "InvalidEnum", - "msg": "Enum value could not be converted" - }, - { - "code": 6001, - "name": "InvalidStartTick", - "msg": "Invalid start tick index provided." - }, - { - "code": 6002, - "name": "TickArrayExistInPool", - "msg": "Tick-array already exists in this whirlpool" - }, - { - "code": 6003, - "name": "TickArrayIndexOutofBounds", - "msg": "Attempt to search for a tick-array failed" - }, - { - "code": 6004, - "name": "InvalidTickSpacing", - "msg": "Tick-spacing is not supported" - }, - { - "code": 6005, - "name": "ClosePositionNotEmpty", - "msg": "Position is not empty It cannot be closed" - }, - { - "code": 6006, - "name": "DivideByZero", - "msg": "Unable to divide by zero" - }, - { - "code": 6007, - "name": "NumberCastError", - "msg": "Unable to cast number into BigInt" - }, - { - "code": 6008, - "name": "NumberDownCastError", - "msg": "Unable to down cast number" - }, - { - "code": 6009, - "name": "TickNotFound", - "msg": "Tick not found within tick array" - }, - { - "code": 6010, - "name": "InvalidTickIndex", - "msg": "Provided tick index is either out of bounds or uninitializable" - }, - { - "code": 6011, - "name": "SqrtPriceOutOfBounds", - "msg": "Provided sqrt price out of bounds" - }, - { - "code": 6012, - "name": "LiquidityZero", - "msg": "Liquidity amount must be greater than zero" - }, - { - "code": 6013, - "name": "LiquidityTooHigh", - "msg": "Liquidity amount must be less than i64::MAX" - }, - { - "code": 6014, - "name": "LiquidityOverflow", - "msg": "Liquidity overflow" - }, - { - "code": 6015, - "name": "LiquidityUnderflow", - "msg": "Liquidity underflow" - }, - { - "code": 6016, - "name": "LiquidityNetError", - "msg": "Tick liquidity net underflowed or overflowed" - }, - { - "code": 6017, - "name": "TokenMaxExceeded", - "msg": "Exceeded token max" - }, - { - "code": 6018, - "name": "TokenMinSubceeded", - "msg": "Did not meet token min" - }, - { - "code": 6019, - "name": "MissingOrInvalidDelegate", - "msg": "Position token account has a missing or invalid delegate" - }, - { - "code": 6020, - "name": "InvalidPositionTokenAmount", - "msg": "Position token amount must be 1" - }, - { - "code": 6021, - "name": "InvalidTimestampConversion", - "msg": "Timestamp should be convertible from i64 to u64" - }, - { - "code": 6022, - "name": "InvalidTimestamp", - "msg": "Timestamp should be greater than the last updated timestamp" - }, - { - "code": 6023, - "name": "InvalidTickArraySequence", - "msg": "Invalid tick array sequence provided for instruction." - }, - { - "code": 6024, - "name": "InvalidTokenMintOrder", - "msg": "Token Mint in wrong order" - }, - { - "code": 6025, - "name": "RewardNotInitialized", - "msg": "Reward not initialized" - }, - { - "code": 6026, - "name": "InvalidRewardIndex", - "msg": "Invalid reward index" - }, - { - "code": 6027, - "name": "RewardVaultAmountInsufficient", - "msg": "Reward vault requires amount to support emissions for at least one day" - }, - { - "code": 6028, - "name": "FeeRateMaxExceeded", - "msg": "Exceeded max fee rate" - }, - { - "code": 6029, - "name": "ProtocolFeeRateMaxExceeded", - "msg": "Exceeded max protocol fee rate" - }, - { - "code": 6030, - "name": "MultiplicationShiftRightOverflow", - "msg": "Multiplication with shift right overflow" - }, - { - "code": 6031, - "name": "MulDivOverflow", - "msg": "Muldiv overflow" - }, - { - "code": 6032, - "name": "MulDivInvalidInput", - "msg": "Invalid div_u256 input" - }, - { - "code": 6033, - "name": "MultiplicationOverflow", - "msg": "Multiplication overflow" - }, - { - "code": 6034, - "name": "InvalidSqrtPriceLimitDirection", - "msg": "Provided SqrtPriceLimit not in the same direction as the swap." - }, - { - "code": 6035, - "name": "ZeroTradableAmount", - "msg": "There are no tradable amount to swap." - }, - { - "code": 6036, - "name": "AmountOutBelowMinimum", - "msg": "Amount out below minimum threshold" - }, - { - "code": 6037, - "name": "AmountInAboveMaximum", - "msg": "Amount in above maximum threshold" - }, - { - "code": 6038, - "name": "TickArraySequenceInvalidIndex", - "msg": "Invalid index for tick array sequence" - }, - { - "code": 6039, - "name": "AmountCalcOverflow", - "msg": "Amount calculated overflows" - }, - { - "code": 6040, - "name": "AmountRemainingOverflow", - "msg": "Amount remaining overflows" - } - ], - "types": [ - { - "name": "OpenPositionBumps", - "type": { - "kind": "struct", - "fields": [ - { - "name": "position_bump", - "type": "u8" - } - ] - } - }, - { - "name": "OpenPositionWithMetadataBumps", - "type": { - "kind": "struct", - "fields": [ - { - "name": "position_bump", - "type": "u8" - }, - { - "name": "metadata_bump", - "type": "u8" - } - ] - } - }, - { - "name": "PositionRewardInfo", - "type": { - "kind": "struct", - "fields": [ - { - "name": "growth_inside_checkpoint", - "type": "u128" - }, - { - "name": "amount_owed", - "type": "u64" - } - ] - } - }, - { - "name": "Tick", - "type": { - "kind": "struct", - "fields": [ - { - "name": "initialized", - "type": "bool" - }, - { - "name": "liquidity_net", - "type": "i128" - }, - { - "name": "liquidity_gross", - "type": "u128" - }, - { - "name": "fee_growth_outside_a", - "type": "u128" - }, - { - "name": "fee_growth_outside_b", - "type": "u128" - }, - { - "name": "reward_growths_outside", - "type": { - "array": ["u128", 3] - } - } - ] - } - }, - { - "name": "WhirlpoolRewardInfo", - "type": { - "kind": "struct", - "fields": [ - { - "name": "mint", - "type": "pubkey" - }, - { - "name": "vault", - "type": "pubkey" - }, - { - "name": "authority", - "type": "pubkey" - }, - { - "name": "emissions_per_second_x64", - "type": "u128" - }, - { - "name": "growth_global_x64", - "type": "u128" - } - ] - } - }, - { - "name": "WhirlpoolBumps", - "type": { - "kind": "struct", - "fields": [ - { - "name": "whirlpool_bump", - "type": "u8" - } - ] - } - }, - { - "name": "CurrIndex", - "type": { - "kind": "enum", - "variants": [ - { - "name": "Below" - }, - { - "name": "Inside" - }, - { - "name": "Above" - } - ] - } - }, - { - "name": "TickLabel", - "type": { - "kind": "enum", - "variants": [ - { - "name": "Upper" - }, - { - "name": "Lower" - } - ] - } - }, - { - "name": "Direction", - "type": { - "kind": "enum", - "variants": [ - { - "name": "Left" - }, - { - "name": "Right" - } - ] - } - }, - { - "name": "WhirlpoolsConfig", - "type": { - "kind": "struct", - "fields": [ - { - "name": "fee_authority", - "type": "pubkey" - }, - { - "name": "collect_protocol_fees_authority", - "type": "pubkey" - }, - { - "name": "reward_emissions_super_authority", - "type": "pubkey" - }, - { - "name": "default_protocol_fee_rate", - "type": "u16" - } - ] - } - }, - { - "name": "FeeTier", - "type": { - "kind": "struct", - "fields": [ - { - "name": "whirlpools_config", - "type": "pubkey" - }, - { - "name": "tick_spacing", - "type": "u16" - }, - { - "name": "default_fee_rate", - "type": "u16" - } - ] - } - }, - { - "name": "Position", - "type": { - "kind": "struct", - "fields": [ - { - "name": "whirlpool", - "type": "pubkey" - }, - { - "name": "position_mint", - "type": "pubkey" - }, - { - "name": "liquidity", - "type": "u128" - }, - { - "name": "tick_lower_index", - "type": "i32" - }, - { - "name": "tick_upper_index", - "type": "i32" - }, - { - "name": "fee_growth_checkpoint_a", - "type": "u128" - }, - { - "name": "fee_owed_a", - "type": "u64" - }, - { - "name": "fee_growth_checkpoint_b", - "type": "u128" - }, - { - "name": "fee_owed_b", - "type": "u64" - }, - { - "name": "reward_infos", - "type": { - "array": [ - { - "defined": { - "name": "PositionRewardInfo" - } - }, - 3 - ] - } - } - ] - } - }, - { - "name": "TickArray", - "type": { - "kind": "struct", - "fields": [ - { - "name": "start_tick_index", - "type": "i32" - }, - { - "name": "ticks", - "type": { - "array": [ - { - "defined": { - "name": "Tick" - } - }, - 88 - ] - } - }, - { - "name": "whirlpool", - "type": "pubkey" - } - ] - } - }, - { - "name": "Whirlpool", - "type": { - "kind": "struct", - "fields": [ - { - "name": "whirlpools_config", - "type": "pubkey" - }, - { - "name": "whirlpool_bump", - "type": { - "array": ["u8", 1] - } - }, - { - "name": "tick_spacing", - "type": "u16" - }, - { - "name": "tick_spacing_seed", - "type": { - "array": ["u8", 2] - } - }, - { - "name": "fee_rate", - "type": "u16" - }, - { - "name": "protocol_fee_rate", - "type": "u16" - }, - { - "name": "liquidity", - "type": "u128" - }, - { - "name": "sqrt_price", - "type": "u128" - }, - { - "name": "tick_current_index", - "type": "i32" - }, - { - "name": "protocol_fee_owed_a", - "type": "u64" - }, - { - "name": "protocol_fee_owed_b", - "type": "u64" - }, - { - "name": "token_mint_a", - "type": "pubkey" - }, - { - "name": "token_vault_a", - "type": "pubkey" - }, - { - "name": "fee_growth_global_a", - "type": "u128" - }, - { - "name": "token_mint_b", - "type": "pubkey" - }, - { - "name": "token_vault_b", - "type": "pubkey" - }, - { - "name": "fee_growth_global_b", - "type": "u128" - }, - { - "name": "reward_last_updated_timestamp", - "type": "u64" - }, - { - "name": "reward_infos", - "type": { - "array": [ - { - "defined": { - "name": "WhirlpoolRewardInfo" - } - }, - 3 - ] - } - } - ] - } - } - ] -} diff --git a/examples/whirlpools/src/lib.rs b/examples/whirlpools/src/lib.rs deleted file mode 100644 index 461ddf3..0000000 --- a/examples/whirlpools/src/lib.rs +++ /dev/null @@ -1,24 +0,0 @@ -//! Autogenerated CPI client for the Orca Whirlpools program. -//! -//! CPI helpers for the [Orca Whirlpools](https://github.com/orca-so/whirlpools) -//! program. -//! -//! This crate was automatically generated by -//! [anchor-gen](https://github.com/saber-hq/anchor-gen), a crate for generating -//! Anchor CPI helpers from JSON IDLs. - -anchor_gen::generate_cpi_interface!( - idl_path = "idl.json", - zero_copy(TickArray, Tick), - packed(TickArray, Tick) -); - -impl Default for state::TickArray { - fn default() -> Self { - Self { - start_tick_index: Default::default(), - ticks: [Default::default(); 88], - whirlpool: Default::default(), - } - } -} From 2a040943c4c34c7b62a8c1559ae4abe2d941993f Mon Sep 17 00:00:00 2001 From: Ian Macalinao Date: Fri, 9 May 2025 17:15:58 +0800 Subject: [PATCH 3/6] switch to rust 1.86 --- .github/workflows/release.yml | 2 +- .github/workflows/rust.yml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 48d4de4..69414ce 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -8,7 +8,7 @@ on: env: CARGO_TERM_COLOR: always - RUST_TOOLCHAIN: "1.61.0" + RUST_TOOLCHAIN: "1.86.0" jobs: release: diff --git a/.github/workflows/rust.yml b/.github/workflows/rust.yml index 3a0d34f..652fc44 100644 --- a/.github/workflows/rust.yml +++ b/.github/workflows/rust.yml @@ -8,7 +8,7 @@ on: env: CARGO_TERM_COLOR: always - RUST_TOOLCHAIN: "1.61.0" + RUST_TOOLCHAIN: "1.86.0" jobs: lint: From 53ebfe6cd31492cdad316d3a1bd1ef6961b284bb Mon Sep 17 00:00:00 2001 From: Ian Macalinao Date: Fri, 9 May 2025 17:17:34 +0800 Subject: [PATCH 4/6] clippy fix --- crates/anchor-idl/src/typedef.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/crates/anchor-idl/src/typedef.rs b/crates/anchor-idl/src/typedef.rs index 99052dd..aea7e75 100644 --- a/crates/anchor-idl/src/typedef.rs +++ b/crates/anchor-idl/src/typedef.rs @@ -28,7 +28,7 @@ pub fn get_defined_fields_list_properties( IdlDefinedFields::Tuple(ff) => ff.clone(), }) .collect::>(); - get_type_list_properties(defs, &*types) + get_type_list_properties(defs, &types) } pub fn get_field_list_properties(defs: &[IdlTypeDef], fields: &[IdlField]) -> FieldListProperties { From ccdd1579e904d21c76f2d74829b7e3d5fa9c7d41 Mon Sep 17 00:00:00 2001 From: Ian Macalinao Date: Fri, 9 May 2025 17:22:06 +0800 Subject: [PATCH 5/6] fix clippy warnings --- Cargo.lock | 4 ---- examples/govern-cpi/Cargo.toml | 1 + examples/kamino-lend/Cargo.toml | 2 +- examples/kamino-lend/src/lib.rs | 2 ++ examples/marinade-cpi/Cargo.toml | 1 + 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index 9578301..1adf544 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -418,9 +418,6 @@ name = "bytemuck" version = "1.23.0" source = "registry+https://github.com/rust-lang/crates.io-index" checksum = "9134a6ef01ce4b366b50689c94f82c14bc72bc5d0386829828a2e2752ef7958c" -dependencies = [ - "bytemuck_derive", -] [[package]] name = "bytemuck_derive" @@ -737,7 +734,6 @@ version = "0.3.0" dependencies = [ "anchor-gen", "anchor-lang", - "bytemuck", ] [[package]] diff --git a/examples/govern-cpi/Cargo.toml b/examples/govern-cpi/Cargo.toml index 2492bbd..5f876d0 100644 --- a/examples/govern-cpi/Cargo.toml +++ b/examples/govern-cpi/Cargo.toml @@ -10,6 +10,7 @@ keywords = ["solana", "anchor"] [features] default = ["cpi"] +anchor-debug = [] no-entrypoint = [] no-idl = [] no-log-ix-name = [] diff --git a/examples/kamino-lend/Cargo.toml b/examples/kamino-lend/Cargo.toml index 27c221c..28302f4 100644 --- a/examples/kamino-lend/Cargo.toml +++ b/examples/kamino-lend/Cargo.toml @@ -10,6 +10,7 @@ keywords = ["solana", "anchor"] [features] default = ["cpi"] +anchor-debug = [] no-entrypoint = [] no-idl = [] no-log-ix-name = [] @@ -18,4 +19,3 @@ cpi = ["no-entrypoint"] [dependencies] anchor-gen = { version = "0.3.0", path = "../../crates/anchor-gen" } anchor-lang = ">=0.20" -bytemuck = { version = "1.23", features = ["derive", "min_const_generics"] } diff --git a/examples/kamino-lend/src/lib.rs b/examples/kamino-lend/src/lib.rs index 1b1afc8..e7cc97f 100644 --- a/examples/kamino-lend/src/lib.rs +++ b/examples/kamino-lend/src/lib.rs @@ -7,4 +7,6 @@ //! [anchor-gen](https://github.com/saber-hq/anchor-gen), a crate for generating //! Anchor CPI helpers from JSON IDLs. +#![allow(clippy::too_many_arguments)] + anchor_gen::generate_cpi_interface!(idl_path = "idl.json"); diff --git a/examples/marinade-cpi/Cargo.toml b/examples/marinade-cpi/Cargo.toml index 79c472e..81c4966 100644 --- a/examples/marinade-cpi/Cargo.toml +++ b/examples/marinade-cpi/Cargo.toml @@ -10,6 +10,7 @@ keywords = ["solana", "anchor"] [features] default = ["cpi"] +anchor-debug = [] no-entrypoint = [] no-idl = [] no-log-ix-name = [] From a29fd21d42102e025789123faed64f74498309e7 Mon Sep 17 00:00:00 2001 From: Ian Macalinao Date: Fri, 9 May 2025 17:25:45 +0800 Subject: [PATCH 6/6] update readme --- README.md | 4 +++- crates/anchor-gen/README.md | 21 +++++++++++++++++++++ crates/anchor-gen/src/lib.rs | 2 ++ flake.nix | 1 + 4 files changed, 27 insertions(+), 1 deletion(-) create mode 100644 crates/anchor-gen/README.md diff --git a/README.md b/README.md index 3a6e6db..bc341e2 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ Generates a crate for cross-program invocations to an Anchor program from a JSON In a new crate, write: -```rust +```skip anchor_gen::generate_cpi_crate!("../../examples/govern-cpi/idl.json"); declare_id!("GjphYQcbP1m3FuDyCTUJf2mUMxKPE3j6feWU1rxvC7Ps"); @@ -16,4 +16,6 @@ This will generate a fully functional Rust CPI client for your IDL. More examples can be found in the [examples/](https://github.com/saber-hq/anchor-gen/tree/master/examples) directory. +Note: This does not work on legacy IDLs. To migrate a legacy IDL, use `anchor idl convert idl.json`. + License: Apache-2.0 diff --git a/crates/anchor-gen/README.md b/crates/anchor-gen/README.md new file mode 100644 index 0000000..bc341e2 --- /dev/null +++ b/crates/anchor-gen/README.md @@ -0,0 +1,21 @@ +# anchor-gen + +Generates a crate for cross-program invocations to an Anchor program from a JSON IDL. + +## Usage + +In a new crate, write: + +```skip +anchor_gen::generate_cpi_crate!("../../examples/govern-cpi/idl.json"); + +declare_id!("GjphYQcbP1m3FuDyCTUJf2mUMxKPE3j6feWU1rxvC7Ps"); +``` + +This will generate a fully functional Rust CPI client for your IDL. + +More examples can be found in the [examples/](https://github.com/saber-hq/anchor-gen/tree/master/examples) directory. + +Note: This does not work on legacy IDLs. To migrate a legacy IDL, use `anchor idl convert idl.json`. + +License: Apache-2.0 diff --git a/crates/anchor-gen/src/lib.rs b/crates/anchor-gen/src/lib.rs index 94b2fb2..e67a1c5 100644 --- a/crates/anchor-gen/src/lib.rs +++ b/crates/anchor-gen/src/lib.rs @@ -13,6 +13,8 @@ //! This will generate a fully functional Rust CPI client for your IDL. //! //! More examples can be found in the [examples/](https://github.com/saber-hq/anchor-gen/tree/master/examples) directory. +//! +//! Note: This does not work on legacy IDLs. To migrate a legacy IDL, use `anchor idl convert idl.json`. pub use anchor_generate_cpi_crate::generate_cpi_crate; pub use anchor_generate_cpi_interface::generate_cpi_interface; diff --git a/flake.nix b/flake.nix index b6aecbb..59f3694 100644 --- a/flake.nix +++ b/flake.nix @@ -27,6 +27,7 @@ rustup anchor cargo-expand + cargo-readme ]; }; }