@starknetfoundation/krusty-kms-wasm 0.9.6 → 0.10.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1179,6 +1179,11 @@ export function deriveOzAccountAddress(public_key_x: string, class_hash: string,
1179
1179
  */
1180
1180
  export function derivePublicKey(mnemonic: string, address_index: number, account_index: number, passphrase?: string | null): WasmPublicKey;
1181
1181
 
1182
+ /**
1183
+ * Derive a chain- and pool-scoped STRK20 viewing key.
1184
+ */
1185
+ export function deriveScopedStrk20ViewingKey(private_key: string, chain_id: string, pool_address: string): string;
1186
+
1182
1187
  /**
1183
1188
  * Derive a Starknet account keypair from mnemonic (coin type 9004).
1184
1189
  *
@@ -1310,6 +1315,13 @@ export function encryptPrivateKey(private_key_hex: string, password: string, scr
1310
1315
  */
1311
1316
  export function encryptWithKey(plaintext: string, key_hex: string): WasmEncryptedPayload;
1312
1317
 
1318
+ /**
1319
+ * Verify and fold a hardware-produced Stark signature into a scoped viewing key.
1320
+ *
1321
+ * `public_key` must be the expected signer's Stark public-key x-coordinate.
1322
+ */
1323
+ export function foldStrk20ViewingKey(public_key: string, message_hash: string, r: string, s: string): string;
1324
+
1313
1325
  /**
1314
1326
  * Generate a compact summary of candidate addresses grouped by derivation index.
1315
1327
  *
@@ -1535,6 +1547,11 @@ export function isValidStarkPrivateKey(hex_str: string): boolean;
1535
1547
  */
1536
1548
  export function nostrPublicKey(private_key: string): string;
1537
1549
 
1550
+ /**
1551
+ * Opens a NIP-59 gift wrap without exposing the derived Nostr private key.
1552
+ */
1553
+ export function openNostrApplicationData(mnemonic: string, address_index: number, account_index: number, passphrase: string | null | undefined, event_json: string): string;
1554
+
1538
1555
  /**
1539
1556
  * Compute the Pedersen hash of two field elements.
1540
1557
  *
@@ -1706,11 +1723,21 @@ export function starkPublicKey(private_key: string): string;
1706
1723
  */
1707
1724
  export function starknetKeccak(data: string, encoding?: string | null): string;
1708
1725
 
1726
+ /**
1727
+ * Return the hash a hardware signer must sign for a scoped viewing key.
1728
+ */
1729
+ export function strk20ViewingKeyMessageHash(chain_id: string, pool_address: string): string;
1730
+
1709
1731
  /**
1710
1732
  * Validate a mnemonic phrase.
1711
1733
  */
1712
1734
  export function validateMnemonic(mnemonic: string): boolean;
1713
1735
 
1736
+ /**
1737
+ * Creates a NIP-59 gift wrap without exposing the derived Nostr private key.
1738
+ */
1739
+ export function wrapNostrApplicationData(mnemonic: string, address_index: number, account_index: number, passphrase: string | null | undefined, recipient_public_key: string, identifier: string, content: string): string;
1740
+
1714
1741
  export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
1715
1742
 
1716
1743
  export interface InitOutput {
@@ -2046,14 +2073,33 @@ export interface InitOutput {
2046
2073
  readonly __wbg_set_wasmstarkxonlykeypair_private_key: (a: number, b: number, c: number) => void;
2047
2074
  readonly __wbg_set_wasmstarkxonlykeypair_public_key_x: (a: number, b: number, c: number) => void;
2048
2075
  readonly __wbg_set_wasmstarkxonlypublickey_public_key_x: (a: number, b: number, c: number) => void;
2076
+ readonly deriveNostrKeypair: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
2077
+ readonly deriveNostrPublicKey: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
2078
+ readonly __wbg_wasmaccount_free: (a: number, b: number) => void;
2079
+ readonly deriveScopedStrk20ViewingKey: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
2080
+ readonly deriveStrk20ViewingKey: (a: number, b: number) => [number, number, number, number];
2081
+ readonly foldStrk20ViewingKey: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
2082
+ readonly getSelectorFromName: (a: number, b: number) => [number, number, number, number];
2083
+ readonly pedersenHash: (a: number, b: number, c: number, d: number) => [number, number, number, number];
2084
+ readonly pedersenHashMany: (a: number, b: number) => [number, number, number, number];
2085
+ readonly starknetKeccak: (a: number, b: number, c: number, d: number) => [number, number, number, number];
2086
+ readonly strk20ViewingKeyMessageHash: (a: number, b: number, c: number, d: number) => [number, number, number, number];
2087
+ readonly wasmaccount_contractAddress: (a: number) => [number, number];
2088
+ readonly wasmaccount_decryptBalance: (a: number, b: number, c: number, d: bigint) => [number, number, number, number];
2089
+ readonly wasmaccount_decryptToPoint: (a: number, b: number) => [number, number, number];
2090
+ readonly wasmaccount_fromMnemonic: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number];
2091
+ readonly wasmaccount_fromPrivateKey: (a: number, b: number, c: number, d: number) => [number, number, number];
2092
+ readonly wasmaccount_getState: (a: number) => number;
2093
+ readonly wasmaccount_hasSufficientBalance: (a: number, b: number, c: number) => [number, number, number];
2094
+ readonly wasmaccount_ownerPublicKeyHex: (a: number) => [number, number, number, number];
2095
+ readonly wasmaccount_totalBalance: (a: number) => [number, number, number, number];
2096
+ readonly wasmaccount_updateState: (a: number, b: number) => [number, number];
2049
2097
  readonly deserializePublicKey: (a: number, b: number) => [number, number, number];
2050
2098
  readonly getBuildInfo: () => any;
2051
2099
  readonly getGenerator: () => number;
2052
- readonly getSelectorFromName: (a: number, b: number) => [number, number, number, number];
2053
2100
  readonly getVersion: () => [number, number];
2054
2101
  readonly init: () => void;
2055
- readonly pedersenHash: (a: number, b: number, c: number, d: number) => [number, number, number, number];
2056
- readonly pedersenHashMany: (a: number, b: number) => [number, number, number, number];
2102
+ readonly nostrPublicKey: (a: number, b: number) => [number, number, number, number];
2057
2103
  readonly pointAdd: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number];
2058
2104
  readonly poseidonHash: (a: number, b: number, c: number, d: number) => [number, number, number, number];
2059
2105
  readonly poseidonHashMany: (a: number, b: number) => [number, number, number, number];
@@ -2061,48 +2107,35 @@ export interface InitOutput {
2061
2107
  readonly scalarMul: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
2062
2108
  readonly scalarMulGenerator: (a: number, b: number) => [number, number, number];
2063
2109
  readonly serializePublicKey: (a: number, b: number, c: number, d: number) => [number, number, number, number];
2064
- readonly starknetKeccak: (a: number, b: number, c: number, d: number) => [number, number, number, number];
2110
+ readonly signNostrEventId: (a: number, b: number, c: number, d: number) => [number, number, number];
2111
+ readonly signNostrMessage: (a: number, b: number, c: number, d: number) => [number, number, number];
2112
+ readonly signStarkHash: (a: number, b: number, c: number, d: number) => [number, number, number];
2113
+ readonly starkPublicKey: (a: number, b: number) => [number, number, number, number];
2065
2114
  readonly calculateContractAddress: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
2066
2115
  readonly deriveArgentAccountAddress: (a: number, b: number, c: number, d: number) => [number, number, number, number];
2116
+ readonly deriveBraavosAccountAddress: (a: number, b: number, c: number, d: number) => [number, number, number, number];
2117
+ readonly deriveOzAccountAddress: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
2118
+ readonly getAccountClassHashes: () => [number, number];
2119
+ readonly openNostrApplicationData: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
2120
+ readonly wrapNostrApplicationData: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => [number, number, number, number];
2067
2121
  readonly deriveArgentLegacyKeypair: (a: number, b: number, c: number, d: number) => [number, number, number];
2068
2122
  readonly deriveArgentLegacyPublicKey: (a: number, b: number, c: number, d: number) => [number, number, number];
2069
- readonly deriveBraavosAccountAddress: (a: number, b: number, c: number, d: number) => [number, number, number, number];
2123
+ readonly deriveDiscoveryKeypairs: (a: number, b: number, c: number) => [number, number, number, number];
2124
+ readonly deriveDiscoveryKeypairsWithSecrets: (a: number, b: number, c: number) => [number, number, number, number];
2070
2125
  readonly deriveKeypair: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
2071
- readonly deriveNostrKeypair: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
2072
- readonly deriveNostrPublicKey: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
2073
- readonly deriveOzAccountAddress: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
2074
2126
  readonly derivePublicKey: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
2075
2127
  readonly deriveStarknetKeypair: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
2076
2128
  readonly deriveStarknetPublicKey: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
2129
+ readonly discoverAccountsFromMnemonic: (a: number, b: number, c: number) => [number, number, number, number];
2130
+ readonly discoverAccountsFromMnemonicWithSecrets: (a: number, b: number, c: number) => [number, number, number, number];
2131
+ readonly generateAccountAddresses: (a: number, b: number, c: number) => [number, number, number, number];
2132
+ readonly generateAccountCandidates: (a: number, b: number, c: number) => [number, number, number, number];
2133
+ readonly generateAccountCandidatesWithSecrets: (a: number, b: number, c: number) => [number, number, number, number];
2077
2134
  readonly generateMnemonic: (a: number) => [number, number, number, number];
2078
- readonly getAccountClassHashes: () => [number, number];
2079
2135
  readonly getNostrCoinType: () => number;
2080
2136
  readonly getStarknetCoinType: () => number;
2081
2137
  readonly getTongoCoinType: () => number;
2082
2138
  readonly validateMnemonic: (a: number, b: number) => number;
2083
- readonly computeDeclareTransactionHashV2: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => [number, number, number, number];
2084
- readonly computeDeclareTransactionHashV3: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: any, n: number, o: number, p: number, q: number, r: number, s: number) => [number, number, number, number];
2085
- readonly computeDeployAccountTransactionHashV1: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number) => [number, number, number, number];
2086
- readonly computeDeployAccountTransactionHashV3: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: any, p: number, q: number, r: number, s: number) => [number, number, number, number];
2087
- readonly computeInvokeTransactionHashV1: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number, number, number];
2088
- readonly computeInvokeTransactionHashV3: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: any, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number) => [number, number, number, number];
2089
- readonly computeTypedDataMessageHash: (a: number, b: number, c: number, d: number) => [number, number, number, number];
2090
- readonly __wbg_wasmaccount_free: (a: number, b: number) => void;
2091
- readonly deriveStrk20ViewingKey: (a: number, b: number) => [number, number, number, number];
2092
- readonly grindKey: (a: number, b: number) => [number, number, number, number];
2093
- readonly isValidFelt: (a: number, b: number) => number;
2094
- readonly isValidStarkPrivateKey: (a: number, b: number) => number;
2095
- readonly randomBytesHex: (a: number) => [number, number, number, number];
2096
- readonly wasmaccount_contractAddress: (a: number) => [number, number];
2097
- readonly wasmaccount_decryptBalance: (a: number, b: number, c: number, d: bigint) => [number, number, number, number];
2098
- readonly wasmaccount_decryptToPoint: (a: number, b: number) => [number, number, number];
2099
- readonly wasmaccount_fromMnemonic: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number];
2100
- readonly wasmaccount_fromPrivateKey: (a: number, b: number, c: number, d: number) => [number, number, number];
2101
- readonly wasmaccount_getState: (a: number) => number;
2102
- readonly wasmaccount_hasSufficientBalance: (a: number, b: number, c: number) => [number, number, number];
2103
- readonly wasmaccount_ownerPublicKeyHex: (a: number) => [number, number, number, number];
2104
- readonly wasmaccount_totalBalance: (a: number) => [number, number, number, number];
2105
- readonly wasmaccount_updateState: (a: number, b: number) => [number, number];
2106
2139
  readonly __wbg_get_wasmencryptedkey_encryptedKey: (a: number) => [number, number];
2107
2140
  readonly __wbg_get_wasmencryptedkey_nonce: (a: number) => [number, number];
2108
2141
  readonly __wbg_get_wasmencryptedkey_salt: (a: number) => [number, number];
@@ -2111,33 +2144,32 @@ export interface InitOutput {
2111
2144
  readonly __wbg_set_wasmencryptedkey_salt: (a: number, b: number, c: number) => void;
2112
2145
  readonly __wbg_wasmencryptedkey_free: (a: number, b: number) => void;
2113
2146
  readonly __wbg_wasmencryptedpayload_free: (a: number, b: number) => void;
2114
- readonly compileCalls: (a: number, b: number) => [number, number, number, number];
2115
- readonly decodeShortString: (a: number, b: number) => [number, number, number, number];
2116
2147
  readonly decryptEthersKeystore: (a: number, b: number, c: number, d: number) => [number, number, number, number];
2117
2148
  readonly decryptKeystore: (a: number, b: number, c: number, d: number) => [number, number, number, number];
2118
2149
  readonly decryptPrivateKey: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number, number];
2119
2150
  readonly decryptWithKey: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
2120
- readonly encodeFelt: (a: number, b: number) => [number, number, number, number];
2121
- readonly encodeShortString: (a: number, b: number) => [number, number, number, number];
2122
2151
  readonly encryptKeystore: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
2123
2152
  readonly encryptPrivateKey: (a: number, b: number, c: number, d: number, e: number) => [number, number, number];
2124
2153
  readonly encryptWithKey: (a: number, b: number, c: number, d: number) => [number, number, number];
2154
+ readonly grindKey: (a: number, b: number) => [number, number, number, number];
2155
+ readonly isValidFelt: (a: number, b: number) => number;
2156
+ readonly isValidStarkPrivateKey: (a: number, b: number) => number;
2157
+ readonly randomBytesHex: (a: number) => [number, number, number, number];
2125
2158
  readonly __wbg_get_wasmencryptedpayload_ciphertext: (a: number) => [number, number];
2126
2159
  readonly __wbg_get_wasmencryptedpayload_nonce: (a: number) => [number, number];
2127
2160
  readonly __wbg_set_wasmencryptedpayload_ciphertext: (a: number, b: number, c: number) => void;
2128
2161
  readonly __wbg_set_wasmencryptedpayload_nonce: (a: number, b: number, c: number) => void;
2129
- readonly deriveDiscoveryKeypairs: (a: number, b: number, c: number) => [number, number, number, number];
2130
- readonly deriveDiscoveryKeypairsWithSecrets: (a: number, b: number, c: number) => [number, number, number, number];
2131
- readonly discoverAccountsFromMnemonic: (a: number, b: number, c: number) => [number, number, number, number];
2132
- readonly discoverAccountsFromMnemonicWithSecrets: (a: number, b: number, c: number) => [number, number, number, number];
2133
- readonly generateAccountAddresses: (a: number, b: number, c: number) => [number, number, number, number];
2134
- readonly generateAccountCandidates: (a: number, b: number, c: number) => [number, number, number, number];
2135
- readonly generateAccountCandidatesWithSecrets: (a: number, b: number, c: number) => [number, number, number, number];
2136
- readonly nostrPublicKey: (a: number, b: number) => [number, number, number, number];
2137
- readonly signNostrEventId: (a: number, b: number, c: number, d: number) => [number, number, number];
2138
- readonly signNostrMessage: (a: number, b: number, c: number, d: number) => [number, number, number];
2139
- readonly signStarkHash: (a: number, b: number, c: number, d: number) => [number, number, number];
2140
- readonly starkPublicKey: (a: number, b: number) => [number, number, number, number];
2162
+ readonly compileCalls: (a: number, b: number) => [number, number, number, number];
2163
+ readonly decodeShortString: (a: number, b: number) => [number, number, number, number];
2164
+ readonly encodeFelt: (a: number, b: number) => [number, number, number, number];
2165
+ readonly encodeShortString: (a: number, b: number) => [number, number, number, number];
2166
+ readonly computeDeclareTransactionHashV2: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number) => [number, number, number, number];
2167
+ readonly computeDeclareTransactionHashV3: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: any, n: number, o: number, p: number, q: number, r: number, s: number) => [number, number, number, number];
2168
+ readonly computeDeployAccountTransactionHashV1: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number) => [number, number, number, number];
2169
+ readonly computeDeployAccountTransactionHashV3: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: number, l: number, m: number, n: number, o: any, p: number, q: number, r: number, s: number) => [number, number, number, number];
2170
+ readonly computeInvokeTransactionHashV1: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number, number, number];
2171
+ readonly computeInvokeTransactionHashV3: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number, k: any, l: number, m: number, n: number, o: number, p: number, q: number, r: number, s: number) => [number, number, number, number];
2172
+ readonly computeTypedDataMessageHash: (a: number, b: number, c: number, d: number) => [number, number, number, number];
2141
2173
  readonly __wbindgen_malloc: (a: number, b: number) => number;
2142
2174
  readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
2143
2175
  readonly __wbindgen_exn_store: (a: number) => void;
@@ -5718,6 +5718,38 @@ export function derivePublicKey(mnemonic, address_index, account_index, passphra
5718
5718
  return WasmPublicKey.__wrap(ret[0]);
5719
5719
  }
5720
5720
 
5721
+ /**
5722
+ * Derive a chain- and pool-scoped STRK20 viewing key.
5723
+ * @param {string} private_key
5724
+ * @param {string} chain_id
5725
+ * @param {string} pool_address
5726
+ * @returns {string}
5727
+ */
5728
+ export function deriveScopedStrk20ViewingKey(private_key, chain_id, pool_address) {
5729
+ let deferred5_0;
5730
+ let deferred5_1;
5731
+ try {
5732
+ const ptr0 = passStringToWasm0(private_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
5733
+ const len0 = WASM_VECTOR_LEN;
5734
+ const ptr1 = passStringToWasm0(chain_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
5735
+ const len1 = WASM_VECTOR_LEN;
5736
+ const ptr2 = passStringToWasm0(pool_address, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
5737
+ const len2 = WASM_VECTOR_LEN;
5738
+ const ret = wasm.deriveScopedStrk20ViewingKey(ptr0, len0, ptr1, len1, ptr2, len2);
5739
+ var ptr4 = ret[0];
5740
+ var len4 = ret[1];
5741
+ if (ret[3]) {
5742
+ ptr4 = 0; len4 = 0;
5743
+ throw takeFromExternrefTable0(ret[2]);
5744
+ }
5745
+ deferred5_0 = ptr4;
5746
+ deferred5_1 = len4;
5747
+ return getStringFromWasm0(ptr4, len4);
5748
+ } finally {
5749
+ wasm.__wbindgen_free(deferred5_0, deferred5_1, 1);
5750
+ }
5751
+ }
5752
+
5721
5753
  /**
5722
5754
  * Derive a Starknet account keypair from mnemonic (coin type 9004).
5723
5755
  *
@@ -6048,6 +6080,43 @@ export function encryptWithKey(plaintext, key_hex) {
6048
6080
  return WasmEncryptedPayload.__wrap(ret[0]);
6049
6081
  }
6050
6082
 
6083
+ /**
6084
+ * Verify and fold a hardware-produced Stark signature into a scoped viewing key.
6085
+ *
6086
+ * `public_key` must be the expected signer's Stark public-key x-coordinate.
6087
+ * @param {string} public_key
6088
+ * @param {string} message_hash
6089
+ * @param {string} r
6090
+ * @param {string} s
6091
+ * @returns {string}
6092
+ */
6093
+ export function foldStrk20ViewingKey(public_key, message_hash, r, s) {
6094
+ let deferred6_0;
6095
+ let deferred6_1;
6096
+ try {
6097
+ const ptr0 = passStringToWasm0(public_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
6098
+ const len0 = WASM_VECTOR_LEN;
6099
+ const ptr1 = passStringToWasm0(message_hash, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
6100
+ const len1 = WASM_VECTOR_LEN;
6101
+ const ptr2 = passStringToWasm0(r, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
6102
+ const len2 = WASM_VECTOR_LEN;
6103
+ const ptr3 = passStringToWasm0(s, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
6104
+ const len3 = WASM_VECTOR_LEN;
6105
+ const ret = wasm.foldStrk20ViewingKey(ptr0, len0, ptr1, len1, ptr2, len2, ptr3, len3);
6106
+ var ptr5 = ret[0];
6107
+ var len5 = ret[1];
6108
+ if (ret[3]) {
6109
+ ptr5 = 0; len5 = 0;
6110
+ throw takeFromExternrefTable0(ret[2]);
6111
+ }
6112
+ deferred6_0 = ptr5;
6113
+ deferred6_1 = len5;
6114
+ return getStringFromWasm0(ptr5, len5);
6115
+ } finally {
6116
+ wasm.__wbindgen_free(deferred6_0, deferred6_1, 1);
6117
+ }
6118
+ }
6119
+
6051
6120
  /**
6052
6121
  * Generate a compact summary of candidate addresses grouped by derivation index.
6053
6122
  *
@@ -6536,6 +6605,40 @@ export function nostrPublicKey(private_key) {
6536
6605
  }
6537
6606
  }
6538
6607
 
6608
+ /**
6609
+ * Opens a NIP-59 gift wrap without exposing the derived Nostr private key.
6610
+ * @param {string} mnemonic
6611
+ * @param {number} address_index
6612
+ * @param {number} account_index
6613
+ * @param {string | null | undefined} passphrase
6614
+ * @param {string} event_json
6615
+ * @returns {string}
6616
+ */
6617
+ export function openNostrApplicationData(mnemonic, address_index, account_index, passphrase, event_json) {
6618
+ let deferred5_0;
6619
+ let deferred5_1;
6620
+ try {
6621
+ const ptr0 = passStringToWasm0(mnemonic, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
6622
+ const len0 = WASM_VECTOR_LEN;
6623
+ var ptr1 = isLikeNone(passphrase) ? 0 : passStringToWasm0(passphrase, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
6624
+ var len1 = WASM_VECTOR_LEN;
6625
+ const ptr2 = passStringToWasm0(event_json, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
6626
+ const len2 = WASM_VECTOR_LEN;
6627
+ const ret = wasm.openNostrApplicationData(ptr0, len0, address_index, account_index, ptr1, len1, ptr2, len2);
6628
+ var ptr4 = ret[0];
6629
+ var len4 = ret[1];
6630
+ if (ret[3]) {
6631
+ ptr4 = 0; len4 = 0;
6632
+ throw takeFromExternrefTable0(ret[2]);
6633
+ }
6634
+ deferred5_0 = ptr4;
6635
+ deferred5_1 = len4;
6636
+ return getStringFromWasm0(ptr4, len4);
6637
+ } finally {
6638
+ wasm.__wbindgen_free(deferred5_0, deferred5_1, 1);
6639
+ }
6640
+ }
6641
+
6539
6642
  /**
6540
6643
  * Compute the Pedersen hash of two field elements.
6541
6644
  *
@@ -6981,6 +7084,35 @@ export function starknetKeccak(data, encoding) {
6981
7084
  }
6982
7085
  }
6983
7086
 
7087
+ /**
7088
+ * Return the hash a hardware signer must sign for a scoped viewing key.
7089
+ * @param {string} chain_id
7090
+ * @param {string} pool_address
7091
+ * @returns {string}
7092
+ */
7093
+ export function strk20ViewingKeyMessageHash(chain_id, pool_address) {
7094
+ let deferred4_0;
7095
+ let deferred4_1;
7096
+ try {
7097
+ const ptr0 = passStringToWasm0(chain_id, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
7098
+ const len0 = WASM_VECTOR_LEN;
7099
+ const ptr1 = passStringToWasm0(pool_address, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
7100
+ const len1 = WASM_VECTOR_LEN;
7101
+ const ret = wasm.strk20ViewingKeyMessageHash(ptr0, len0, ptr1, len1);
7102
+ var ptr3 = ret[0];
7103
+ var len3 = ret[1];
7104
+ if (ret[3]) {
7105
+ ptr3 = 0; len3 = 0;
7106
+ throw takeFromExternrefTable0(ret[2]);
7107
+ }
7108
+ deferred4_0 = ptr3;
7109
+ deferred4_1 = len3;
7110
+ return getStringFromWasm0(ptr3, len3);
7111
+ } finally {
7112
+ wasm.__wbindgen_free(deferred4_0, deferred4_1, 1);
7113
+ }
7114
+ }
7115
+
6984
7116
  /**
6985
7117
  * Validate a mnemonic phrase.
6986
7118
  * @param {string} mnemonic
@@ -6992,6 +7124,46 @@ export function validateMnemonic(mnemonic) {
6992
7124
  const ret = wasm.validateMnemonic(ptr0, len0);
6993
7125
  return ret !== 0;
6994
7126
  }
7127
+
7128
+ /**
7129
+ * Creates a NIP-59 gift wrap without exposing the derived Nostr private key.
7130
+ * @param {string} mnemonic
7131
+ * @param {number} address_index
7132
+ * @param {number} account_index
7133
+ * @param {string | null | undefined} passphrase
7134
+ * @param {string} recipient_public_key
7135
+ * @param {string} identifier
7136
+ * @param {string} content
7137
+ * @returns {string}
7138
+ */
7139
+ export function wrapNostrApplicationData(mnemonic, address_index, account_index, passphrase, recipient_public_key, identifier, content) {
7140
+ let deferred7_0;
7141
+ let deferred7_1;
7142
+ try {
7143
+ const ptr0 = passStringToWasm0(mnemonic, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
7144
+ const len0 = WASM_VECTOR_LEN;
7145
+ var ptr1 = isLikeNone(passphrase) ? 0 : passStringToWasm0(passphrase, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
7146
+ var len1 = WASM_VECTOR_LEN;
7147
+ const ptr2 = passStringToWasm0(recipient_public_key, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
7148
+ const len2 = WASM_VECTOR_LEN;
7149
+ const ptr3 = passStringToWasm0(identifier, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
7150
+ const len3 = WASM_VECTOR_LEN;
7151
+ const ptr4 = passStringToWasm0(content, wasm.__wbindgen_malloc, wasm.__wbindgen_realloc);
7152
+ const len4 = WASM_VECTOR_LEN;
7153
+ const ret = wasm.wrapNostrApplicationData(ptr0, len0, address_index, account_index, ptr1, len1, ptr2, len2, ptr3, len3, ptr4, len4);
7154
+ var ptr6 = ret[0];
7155
+ var len6 = ret[1];
7156
+ if (ret[3]) {
7157
+ ptr6 = 0; len6 = 0;
7158
+ throw takeFromExternrefTable0(ret[2]);
7159
+ }
7160
+ deferred7_0 = ptr6;
7161
+ deferred7_1 = len6;
7162
+ return getStringFromWasm0(ptr6, len6);
7163
+ } finally {
7164
+ wasm.__wbindgen_free(deferred7_0, deferred7_1, 1);
7165
+ }
7166
+ }
6995
7167
  function __wbg_get_imports() {
6996
7168
  const import0 = {
6997
7169
  __proto__: null,
@@ -7107,6 +7279,10 @@ function __wbg_get_imports() {
7107
7279
  const ret = new Object();
7108
7280
  return ret;
7109
7281
  },
7282
+ __wbg_now_8b265300afd5f2b9: function() {
7283
+ const ret = Date.now();
7284
+ return ret;
7285
+ },
7110
7286
  __wbg_prototypesetcall_de8e0d9553586985: function(arg0, arg1, arg2) {
7111
7287
  Uint8Array.prototype.set.call(getArrayU8FromWasm0(arg0, arg1), arg2);
7112
7288
  },
Binary file
package/package.json CHANGED
@@ -5,7 +5,7 @@
5
5
  "Krusty KMS Contributors"
6
6
  ],
7
7
  "description": "WASM bindings for krusty-kms account and protocol utilities",
8
- "version": "0.9.6",
8
+ "version": "0.10.0",
9
9
  "license": "MIT OR Apache-2.0",
10
10
  "repository": {
11
11
  "type": "git",