numbat_wasm_debug/api/
endpoint_finish_api_mock.rs1use crate::TxContext;
2use numbat_wasm::api::{BigIntApi, EndpointFinishApi, Handle, ManagedBufferApi};
3use num_bigint::{BigInt, BigUint};
4
5impl EndpointFinishApi for TxContext {
8 fn finish_slice_u8(&self, slice: &[u8]) {
9 let mut v = vec![0u8; slice.len()];
10 v.copy_from_slice(slice);
11 let mut tx_output = self.tx_output_cell.borrow_mut();
12 tx_output.result.result_values.push(v)
13 }
14
15 fn finish_big_int_raw(&self, handle: Handle) {
16 let bi_bytes = self.bi_get_signed_bytes(handle);
17 let mut tx_output = self.tx_output_cell.borrow_mut();
18 tx_output.result.result_values.push(bi_bytes.into_vec());
19 }
20
21 fn finish_big_uint_raw(&self, handle: Handle) {
22 let bu_bytes = self.bi_get_unsigned_bytes(handle);
23 let mut tx_output = self.tx_output_cell.borrow_mut();
24 tx_output.result.result_values.push(bu_bytes.into_vec());
25 }
26
27 fn finish_managed_buffer_raw(&self, handle: Handle) {
28 let bytes = self.mb_to_boxed_bytes(handle);
29 self.finish_slice_u8(bytes.as_slice());
30 }
31
32 fn finish_i64(&self, value: i64) {
33 if value == 0 {
34 self.finish_slice_u8(&[]);
35 } else {
36 self.finish_slice_u8(BigInt::from(value).to_signed_bytes_be().as_slice());
37 }
38 }
39
40 fn finish_u64(&self, value: u64) {
41 if value == 0 {
42 self.finish_slice_u8(&[]);
43 } else {
44 self.finish_slice_u8(BigUint::from(value).to_bytes_be().as_slice());
45 }
46 }
47}