when building for the first time:
```
error: failed to run custom build command for `hidapi v1.2.5`
Caused by:
process didn't exit successfully: `solana-program-library/target/debug/build/hidapi-81175f45ee69e1c2/build-script-build` (exit code: 101)
--- stdout
cargo:rerun-if-env-changed=LIBUDEV_NO_PKG_CONFIG
cargo:rerun-if-env-changed=PKG_CONFIG
cargo:rerun-if-env-changed=LIBUDEV_STATIC
cargo:rerun-if-env-changed=LIBUDEV_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_STATIC
cargo:rerun-if-env-changed=PKG_CONFIG_ALL_DYNAMIC
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_PATH_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_PATH
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_LIBDIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64-unknown-linux-gnu
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR_x86_64_unknown_linux_gnu
cargo:rerun-if-env-changed=HOST_PKG_CONFIG_SYSROOT_DIR
cargo:rerun-if-env-changed=PKG_CONFIG_SYSROOT_DIR
--- stderr
thread 'main' panicked at 'Unable to find libudev: Failure { command: "\"pkg-config\" \"--libs\" \"--cflags\" \"libudev\"", output: Output { status: ExitStatus(ExitStatus(256)), stdout: "", stderr: "Package libudev was not found in the pkg-config search path.\nPerhaps you should add the directory containing `libudev.pc\'\nto the PKG_CONFIG_PATH environment variable\nNo package \'libudev\' found\n" } }', ~/.cargo/registry/src/github.com-1ecc6299db9ec823/hidapi-1.2.5/build.rs:53:54
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace
warning: build failed, waiting for other jobs to finish...
error: build failed
```
`P_{margin}=iRP` didn't make sense, as P isn't defined, and i is already defined as the price (from the oracle).
the references doc contains `P_{margin}=iR`, so I assume this is a typo.
* stake-pool: Use checked_ceil_div for withdraw calc
When a stake account is totally removed from a stake pool by the
manager, there's a chance that the operation would not take enough of
the manager's pool tokens by 1 due to truncation.
Do a ceiling division instead, and refactor ceiling division into the
math library.
* Use new function name on CLI
* Cargo fmt
* oracle pair init
* update
* updates
* progress
* update
* update
* progress
* builds
* update
* progress
* update
* copy pasta
* Refactor and add Instruction serializing/deserializing
* Add pack/unpack for Pool struct
* Implement InitPool instruction
* Add unit test and refactor InitPool instruction
* Minor changes
* Add using deposing token mint decimals in pass and fail mints
* Add Deposit instruction processing
* Add test for Deposit instruction
* Add Withdraw instruction processing
* Add test for Withdraw instruction
* Add Decide instruction with test
* Changes in Withdraw instruciton and add time travel to Decide instruction test
* Fix clippy warning
* Fix warning with if operator
* Fix clippy warnings
* Update libs version and minor fixes
* Minor changes
* Add user_transfer_authority to withdraw instruction and other minor changes
* Fix clippy warns
* Change return value after serialization
* Update tokio and solana-program-test libs version
Co-authored-by: Anatoly Yakovenko <anatoly@solana.com>
* Return clear error message if auth type is incompatible with account
* Report real current authority
* Prevent reauth of owner's ATA
* Fix typo, messaging improvements
Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>
Co-authored-by: Trent Nelson <trent.a.b.nelson@gmail.com>
* Swap token/account to prep for display changes
* Refactor accounts parsing for deterministic order and to batch by mint
* Add Aux tags and gc alert
* Hide account addresses for non-verbose returns
* Review nits
* Set balance display len dynamically
* Bump solana version to reduce Account parse failures
* Fix aux width