nut07.rs 2.0 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788
  1. use std::ops::Deref;
  2. use cdk::nuts::{CheckStateRequest, CheckStateResponse, ProofState, State};
  3. use wasm_bindgen::prelude::*;
  4. #[wasm_bindgen(js_name = State)]
  5. pub enum JsState {
  6. Spent,
  7. Unspent,
  8. Pending,
  9. Reserved,
  10. }
  11. impl From<State> for JsState {
  12. fn from(inner: State) -> JsState {
  13. match inner {
  14. State::Spent => JsState::Spent,
  15. State::Unspent => JsState::Unspent,
  16. State::Pending => JsState::Pending,
  17. State::Reserved => JsState::Reserved,
  18. }
  19. }
  20. }
  21. impl From<JsState> for State {
  22. fn from(inner: JsState) -> State {
  23. match inner {
  24. JsState::Spent => State::Spent,
  25. JsState::Unspent => State::Unspent,
  26. JsState::Pending => State::Pending,
  27. JsState::Reserved => State::Reserved,
  28. }
  29. }
  30. }
  31. #[wasm_bindgen(js_name = CheckStateRequest)]
  32. pub struct JsCheckStateRequest {
  33. inner: CheckStateRequest,
  34. }
  35. impl Deref for JsCheckStateRequest {
  36. type Target = CheckStateRequest;
  37. fn deref(&self) -> &Self::Target {
  38. &self.inner
  39. }
  40. }
  41. impl From<CheckStateRequest> for JsCheckStateRequest {
  42. fn from(inner: CheckStateRequest) -> JsCheckStateRequest {
  43. JsCheckStateRequest { inner }
  44. }
  45. }
  46. #[wasm_bindgen(js_name = ProofState)]
  47. pub struct JsProofState {
  48. inner: ProofState,
  49. }
  50. impl Deref for JsProofState {
  51. type Target = ProofState;
  52. fn deref(&self) -> &Self::Target {
  53. &self.inner
  54. }
  55. }
  56. impl From<ProofState> for JsProofState {
  57. fn from(inner: ProofState) -> JsProofState {
  58. JsProofState { inner }
  59. }
  60. }
  61. #[wasm_bindgen(js_name = CheckStateResponse)]
  62. pub struct JsCheckStateResponse {
  63. inner: CheckStateResponse,
  64. }
  65. impl Deref for JsCheckStateResponse {
  66. type Target = CheckStateResponse;
  67. fn deref(&self) -> &Self::Target {
  68. &self.inner
  69. }
  70. }
  71. impl From<CheckStateResponse> for JsCheckStateResponse {
  72. fn from(inner: CheckStateResponse) -> JsCheckStateResponse {
  73. JsCheckStateResponse { inner }
  74. }
  75. }