Browse Source

sdk/js-query: add signaturesToEvmStruct utility

Evan Gray 1 year ago
parent
commit
d8011bc6e8
2 changed files with 11 additions and 0 deletions
  1. 2 0
      sdk/js-query/CHANGELOG.md
  2. 9 0
      sdk/js-query/src/query/utils.ts

+ 2 - 0
sdk/js-query/CHANGELOG.md

@@ -1,5 +1,7 @@
 ## 0.0.8
 ## 0.0.8
 
 
+Add signaturesToEvmStruct utility
+
 Fix SolanaAccount mock for minContextSlot and dataSliceOffset == 0
 Fix SolanaAccount mock for minContextSlot and dataSliceOffset == 0
 
 
 ## 0.0.7
 ## 0.0.7

+ 9 - 0
sdk/js-query/src/query/utils.ts

@@ -24,6 +24,15 @@ export function coalesceUint8Array(b: string | Uint8Array): Uint8Array {
   return typeof b === "string" ? hexToUint8Array(b) : b;
   return typeof b === "string" ? hexToUint8Array(b) : b;
 }
 }
 
 
+export function signaturesToEvmStruct(signatures: string[]) {
+  return signatures.map((s) => ({
+    r: `0x${s.substring(0, 64)}`,
+    s: `0x${s.substring(64, 128)}`,
+    v: `0x${(parseInt(s.substring(128, 130), 16) + 27).toString(16)}`,
+    guardianIndex: `0x${s.substring(130, 132)}`,
+  }));
+}
+
 /**
 /**
  * @param key Private key used to sign `data`
  * @param key Private key used to sign `data`
  * @param data Data for signing
  * @param data Data for signing