enhanced-address-info.ts 1.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. import { Buffer } from 'node:buffer';
  2. import * as borsh from 'borsh';
  3. export class EnhancedAddressInfo {
  4. name: string;
  5. house_number: number;
  6. street: string;
  7. city: string;
  8. state: string;
  9. zip: number;
  10. constructor(props: {
  11. name: string;
  12. house_number: number;
  13. street: string;
  14. city: string;
  15. state: string;
  16. zip: number;
  17. }) {
  18. this.name = props.name;
  19. this.house_number = props.house_number;
  20. this.street = props.street;
  21. this.city = props.city;
  22. this.state = props.state;
  23. this.zip = props.zip;
  24. }
  25. toBase58() {
  26. return borsh.serialize(EnhancedAddressInfoSchema, this).toString();
  27. }
  28. toBuffer() {
  29. return Buffer.from(borsh.serialize(EnhancedAddressInfoSchema, this));
  30. }
  31. static fromBuffer(buffer: Buffer) {
  32. return borsh.deserialize(EnhancedAddressInfoSchema, EnhancedAddressInfo, buffer);
  33. }
  34. }
  35. export const EnhancedAddressInfoSchema = new Map([
  36. [
  37. EnhancedAddressInfo,
  38. {
  39. kind: 'struct',
  40. fields: [
  41. ['name', 'string'],
  42. ['house_number', 'u8'],
  43. ['street', 'string'],
  44. ['city', 'string'],
  45. ['state', 'string'],
  46. ['zip', 'u32'],
  47. ],
  48. },
  49. ],
  50. ]);