orbis1-sdk-rn 0.0.8 → 0.0.10

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.
@@ -32,6 +32,7 @@ import org.rgbtools.Token
32
32
  import org.rgbtools.Invoice
33
33
  import com.rgb.AppConstants
34
34
  import com.rgb.NativeRgbSpec
35
+ import java.io.File
35
36
 
36
37
  @ReactModule(name = RgbModule.NAME)
37
38
  class RgbModule(reactContext: ReactApplicationContext) :
@@ -76,6 +77,15 @@ class RgbModule(reactContext: ReactApplicationContext) :
76
77
  }
77
78
  }
78
79
 
80
+ private fun emptyRgbDataDir(dir: File) {
81
+ if (!dir.exists() || !dir.isDirectory) return
82
+ dir.listFiles()?.forEach { child ->
83
+ if (!child.deleteRecursively()) {
84
+ throw IllegalStateException("Failed to delete ${child.absolutePath}")
85
+ }
86
+ }
87
+ }
88
+
79
89
  override fun generateKeys(bitcoinNetwork: String, promise: Promise) {
80
90
  coroutineScope.launch(Dispatchers.IO) {
81
91
  try {
@@ -132,6 +142,8 @@ class RgbModule(reactContext: ReactApplicationContext) :
132
142
  try {
133
143
  val rgbDir = AppConstants.rgbDir
134
144
  ?: throw IllegalStateException("RGB directory not initialized.")
145
+ WalletStore.clear()
146
+ emptyRgbDataDir(rgbDir)
135
147
  org.rgbtools.restoreBackup(path, password, rgbDir.absolutePath)
136
148
 
137
149
  withContext(Dispatchers.Main) {
package/ios/Rgb.swift CHANGED
@@ -49,6 +49,18 @@ public class RgbSwiftHelper: NSObject {
49
49
  return error.localizedDescription
50
50
  }
51
51
 
52
+ private static func emptyRgbDataDir(at url: URL) throws {
53
+ let fileManager = FileManager.default
54
+ guard fileManager.fileExists(atPath: url.path) else { return }
55
+ let contents = try fileManager.contentsOfDirectory(
56
+ at: url,
57
+ includingPropertiesForKeys: nil
58
+ )
59
+ for item in contents {
60
+ try fileManager.removeItem(at: item)
61
+ }
62
+ }
63
+
52
64
  private static func getNetwork(_ network: String) -> BitcoinNetwork {
53
65
  switch network.uppercased() {
54
66
  case "MAINNET":
@@ -139,7 +151,9 @@ public class RgbSwiftHelper: NSObject {
139
151
  guard let rgbDir = constants.rgbDir else {
140
152
  return ["error": "RGB directory not initialized."] as NSDictionary
141
153
  }
142
-
154
+
155
+ WalletStore.shared.clear()
156
+ try Self.emptyRgbDataDir(at: rgbDir)
143
157
  try restoreBackup(backupPath: path, password: password, dataDir: rgbDir.path)
144
158
  return [:] as NSDictionary
145
159
  } catch {
@@ -1 +1 @@
1
- {"version":3,"names":["Wallet","validateSDKConfig","mergeWithDefaults","Environment","Feature","ConfigurationError","OrbisError","OrbisErrorCode","FeatureRegistry","createLogger","WatchTowerModule","GasFreeModule","BitcoinNetwork","Orbis1SDK","initialized","constructor","config","error","validationFailed","Error","message","String","logger","level","logging","customLogger","wallet","enabled","network","environment","MAINNET","REGTEST","TESTNET4","keys","supportedSchemas","maxAllocationsPerUtxo","vanillaKeychain","info","featureRegistry","initialize","warn","initializeFeatures","markInitialized","fromError","INITIALIZATION","features","gasFree","CONFIGURATION","gasFreeModule","name","GAS_FREE","apiKey","timeout","register","watchTower","watchTowerModule","WATCH_TOWER","count","cleanup","getAllModules","Promise","all","map","feature","UNKNOWN","getFeature","ensureInitialized","get","hasFeature","has","getWallet","getConfig","getStatus","isInitialized","getLogger"],"sourceRoot":"../../src","sources":["Orbis1SDK.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["Wallet","validateSDKConfig","mergeWithDefaults","Environment","Feature","ConfigurationError","OrbisError","OrbisErrorCode","FeatureRegistry","createLogger","WatchTowerModule","GasFreeModule","BitcoinNetwork","Orbis1SDK","initialized","constructor","config","error","validationFailed","Error","message","String","logger","level","logging","customLogger","wallet","enabled","network","environment","MAINNET","REGTEST","TESTNET4","keys","supportedSchemas","maxAllocationsPerUtxo","vanillaKeychain","info","featureRegistry","initialize","warn","initializeFeatures","markInitialized","fromError","INITIALIZATION","features","gasFree","CONFIGURATION","gasFreeModule","name","GAS_FREE","apiKey","timeout","register","watchTower","watchTowerModule","WATCH_TOWER","count","cleanup","getAllModules","Promise","all","map","feature","UNKNOWN","getFeature","ensureInitialized","get","hasFeature","has","getWallet","getConfig","getStatus","isInitialized","getLogger"],"sourceRoot":"../../src","sources":["Orbis1SDK.ts"],"mappings":"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","ignoreList":[]}
@@ -135,6 +135,18 @@ export class GasFreeModule {
135
135
  throw GasFreeError.notInitialized();
136
136
  }
137
137
 
138
+ // Decode the recipient invoice up-front so we can inspect the seal type.
139
+ // This also validates the invoice format before touching the backend.
140
+ const decodedRecipientInvoice = await this.wallet.decodeInvoice(request.recipientInvoice);
141
+
142
+ // Witness-output invoices (wvout:) are not yet supported for gas-free
143
+ // transfers because sendEnd requires additional changes to handle the
144
+ // extra Bitcoin output they introduce. Reject early so no backend call
145
+ // is made and the user gets a clear actionable message.
146
+ if (this.isWitnessRecipient(decodedRecipientInvoice)) {
147
+ throw new GasFreeError('Witness invoices (wvout) are not yet supported for gas-free transfers. ' + 'Please ask the recipient to generate a blinded-UTXO invoice instead.', GasFreeErrorCode.INVALID_REQUEST);
148
+ }
149
+
138
150
  // Reset state
139
151
  this.currentState = {
140
152
  status: 'idle'
@@ -542,6 +554,19 @@ export class GasFreeModule {
542
554
  return verifyResult;
543
555
  }
544
556
 
557
+ /**
558
+ * Returns true if a decoded invoice targets a witness output (`wvout:`) seal.
559
+ *
560
+ * The `recipientId` returned by `decodeInvoice` for witness invoices follows
561
+ * the pattern `{network}:wvout:{sealData}` (e.g. `tb4:wvout:BYrJtiVZ-…`).
562
+ * Splitting on `:` and checking the second segment is more reliable than
563
+ * searching the raw invoice string.
564
+ */
565
+ isWitnessRecipient(decoded) {
566
+ const parts = decoded.recipientId.split(':');
567
+ return parts[1] === 'wvout';
568
+ }
569
+
545
570
  /**
546
571
  * Validate configuration
547
572
  */
@@ -1 +1 @@
1
- {"version":3,"names":["ServiceClient","ConsignmentReader","getGasFreeServiceUrl","GasFreeError","GasFreeErrorCode","Feature","GasFreeModule","name","GAS_FREE","version","ready","currentState","status","constructor","config","initialize","wallet","logger","initializationFailed","child","serviceUrl","environment","debug","baseUrl","timeout","validateConfig","serviceClient","apiKey","consignmentReader","error","Error","message","String","cleanup","dispose","getStatus","enabled","isReady","requestFeeQuote","request","assetId","amount","notInitialized","feeQuote","generateFeeQuote","quoteId","UNKNOWN","undefined","confirmTransfer","expiresAt","Date","getTime","now","QUOTE_EXPIRED","psbtResult","buildPSBT","submitResult","submitPSBT","serviceFeeInvoice","txid","userSignedPsbt","broadcastTransfer","signedPsbtBase64","verifyTransfer","consignment","consignmentBase64","serviceFee","serviceFeeAmount","getState","userId","numInputs","numOutputs","quoteExpiresAt","miningFee","miningFeeSats","externalInputs","miningUTXO","vout","value","scriptPubkey","script_pubkey","externalOutputs","miningChangeUTXO","address","decodedRecipientInvoice","decodeInvoice","recipientInvoice","decodedServiceInvoice","recipient","service","recipientMap","recipientId","assignment","type","parseInt","transportEndpoints","unsignedPsbt","sendBegin","feeRate","minConfirmations","length","readForAsset","signPsbt","psbtBase64","rgbInvoice","transactionId","serviceSignedPsbt","operationResult","sendEnd","batchTransferIdx","verifyResult","transferSuccess","trim","INVALID_REQUEST","createGasFreeModule"],"sourceRoot":"../../../../src","sources":["features/gas-free/GasFreeModule.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["ServiceClient","ConsignmentReader","getGasFreeServiceUrl","GasFreeError","GasFreeErrorCode","Feature","GasFreeModule","name","GAS_FREE","version","ready","currentState","status","constructor","config","initialize","wallet","logger","initializationFailed","child","serviceUrl","environment","debug","baseUrl","timeout","validateConfig","serviceClient","apiKey","consignmentReader","error","Error","message","String","cleanup","dispose","getStatus","enabled","isReady","requestFeeQuote","request","assetId","amount","notInitialized","decodedRecipientInvoice","decodeInvoice","recipientInvoice","isWitnessRecipient","INVALID_REQUEST","feeQuote","generateFeeQuote","quoteId","UNKNOWN","undefined","confirmTransfer","expiresAt","Date","getTime","now","QUOTE_EXPIRED","psbtResult","buildPSBT","submitResult","submitPSBT","serviceFeeInvoice","txid","userSignedPsbt","broadcastTransfer","signedPsbtBase64","verifyTransfer","consignment","consignmentBase64","serviceFee","serviceFeeAmount","getState","userId","numInputs","numOutputs","quoteExpiresAt","miningFee","miningFeeSats","externalInputs","miningUTXO","vout","value","scriptPubkey","script_pubkey","externalOutputs","miningChangeUTXO","address","decodedServiceInvoice","recipient","service","recipientMap","recipientId","assignment","type","parseInt","transportEndpoints","unsignedPsbt","sendBegin","feeRate","minConfirmations","length","readForAsset","signPsbt","psbtBase64","rgbInvoice","transactionId","serviceSignedPsbt","operationResult","sendEnd","batchTransferIdx","verifyResult","transferSuccess","decoded","parts","split","trim","createGasFreeModule"],"sourceRoot":"../../../../src","sources":["features/gas-free/GasFreeModule.ts"],"mappings":"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","ignoreList":[]}
@@ -80,9 +80,13 @@ export const SDKOptionsSchema = z.object({
80
80
 
81
81
  /**
82
82
  * Zod schema for SDK configuration
83
+ *
84
+ * Note: `apiKey` is intentionally omitted here — it is validated manually in
85
+ * `validateSDKConfig` so it can be optional when Gas-Free / Watch Tower are off.
86
+ * Including it in Zod led to stale builds or edge cases surfacing as
87
+ * "apiKey: API key is required".
83
88
  */
84
89
  export const SDKConfigSchema = z.object({
85
- apiKey: z.string().min(1, 'API key is required'),
86
90
  environment: z.nativeEnum(Environment).default(Environment.MAINNET),
87
91
  features: z.object({
88
92
  gasFree: GasFreeFeatureConfigSchema.optional(),
@@ -90,7 +94,7 @@ export const SDKConfigSchema = z.object({
90
94
  }).passthrough().optional(),
91
95
  logging: LoggingConfigSchema.optional(),
92
96
  options: SDKOptionsSchema.optional()
93
- });
97
+ }).passthrough();
94
98
 
95
99
  /**
96
100
  * SDK Configuration
@@ -125,13 +129,23 @@ export function validateSDKConfig(config) {
125
129
  const path = err.path.join('.');
126
130
  return path ? `${path}: ${err.message}` : err.message;
127
131
  });
128
- throw new Error(`Configuration validation failed:\n - ${messages.join('\n - ')}`);
132
+ // No outer "Configuration validation failed" prefix — Orbis1SDK wraps once
133
+ throw new Error(messages.join('\n - '));
129
134
  }
130
135
  throw error;
131
136
  }
132
-
133
- // Validate API key prefix matches environment
134
- const apiKey = config.apiKey;
137
+ if (config.apiKey !== undefined && config.apiKey !== null && typeof config.apiKey !== 'string') {
138
+ throw new Error('apiKey must be a string when provided');
139
+ }
140
+ const needsApiKey = config.features?.gasFree?.enabled === true || config.features?.watchTower?.enabled === true;
141
+ const apiKeyTrimmed = typeof config.apiKey === 'string' ? config.apiKey.trim() : '';
142
+ const apiKey = apiKeyTrimmed.length > 0 ? apiKeyTrimmed : undefined;
143
+ if (needsApiKey && !apiKey) {
144
+ throw new Error('API key is required when Gas-Free or Watch Tower is enabled');
145
+ }
146
+ if (!apiKey) {
147
+ return;
148
+ }
135
149
  const environment = config.environment ?? Environment.MAINNET;
136
150
  if (environment === Environment.TESTNET4 || environment === Environment.REGTEST) {
137
151
  if (!apiKey.startsWith('pk_test')) {
@@ -151,8 +165,10 @@ export function validateSDKConfig(config) {
151
165
  * @returns Merged configuration with defaults
152
166
  */
153
167
  export function mergeWithDefaults(config) {
168
+ const apiKeyNormalized = typeof config.apiKey === 'string' ? config.apiKey.trim() || undefined : config.apiKey;
154
169
  return {
155
170
  ...config,
171
+ apiKey: apiKeyNormalized,
156
172
  environment: config.environment ?? Environment.MAINNET,
157
173
  features: {
158
174
  ...DEFAULT_SDK_CONFIG.features,
@@ -1 +1 @@
1
- {"version":3,"names":["z","LogLevel","Environment","GasFreeFeatureConfigSchema","object","enabled","boolean","optional","timeout","number","int","positive","WatchTowerFeatureConfigSchema","pollingInterval","LoggingConfigSchema","level","nativeEnum","logger","function","SDKOptionsSchema","strictMode","SDKConfigSchema","apiKey","string","min","environment","default","MAINNET","features","gasFree","watchTower","passthrough","logging","options","DEFAULT_SDK_CONFIG","INFO","validateSDKConfig","config","parse","error","ZodError","messages","errors","map","err","path","join","message","Error","TESTNET4","REGTEST","startsWith","substring","mergeWithDefaults"],"sourceRoot":"../../../src","sources":["types/SDKConfig.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["z","LogLevel","Environment","GasFreeFeatureConfigSchema","object","enabled","boolean","optional","timeout","number","int","positive","WatchTowerFeatureConfigSchema","pollingInterval","LoggingConfigSchema","level","nativeEnum","logger","function","SDKOptionsSchema","strictMode","SDKConfigSchema","environment","default","MAINNET","features","gasFree","watchTower","passthrough","logging","options","DEFAULT_SDK_CONFIG","INFO","validateSDKConfig","config","parse","error","ZodError","messages","errors","map","err","path","join","message","Error","apiKey","undefined","needsApiKey","apiKeyTrimmed","trim","length","TESTNET4","REGTEST","startsWith","substring","mergeWithDefaults","apiKeyNormalized"],"sourceRoot":"../../../src","sources":["types/SDKConfig.ts"],"mappings":"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","ignoreList":[]}
@@ -218,6 +218,15 @@ export declare class GasFreeModule implements IFeatureModule<GasFreeConfig> {
218
218
  * ```
219
219
  */
220
220
  verifyTransfer(quoteId: string, txid: string, signedPsbtBase64: string): Promise<VerificationResult>;
221
+ /**
222
+ * Returns true if a decoded invoice targets a witness output (`wvout:`) seal.
223
+ *
224
+ * The `recipientId` returned by `decodeInvoice` for witness invoices follows
225
+ * the pattern `{network}:wvout:{sealData}` (e.g. `tb4:wvout:BYrJtiVZ-…`).
226
+ * Splitting on `:` and checking the second segment is more reliable than
227
+ * searching the raw invoice string.
228
+ */
229
+ private isWitnessRecipient;
221
230
  /**
222
231
  * Validate configuration
223
232
  */
@@ -1 +1 @@
1
- {"version":3,"file":"GasFreeModule.d.ts","sourceRoot":"","sources":["../../../../../src/features/gas-free/GasFreeModule.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAKjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAG3D,OAAO,KAAK,EACV,sBAAsB,EACtB,qBAAqB,EACtB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EACV,QAAQ,EACR,kBAAkB,EAClB,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,aAAa,EACd,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C;;;;;;;;;GASG;AACH,qBAAa,aAAc,YAAW,cAAc,CAAC,aAAa,CAAC;IACjE,SAAgB,IAAI,oBAAoB;IACxC,SAAgB,OAAO,WAAW;IAClC,SAAgB,MAAM,EAAE,aAAa,CAAC;IAEtC,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,MAAM,CAAC,CAAS;IACxB,OAAO,CAAC,aAAa,CAAC,CAAiB;IACvC,OAAO,CAAC,iBAAiB,CAAC,CAAqB;IAC/C,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,YAAY,CAAqC;gBAE7C,MAAM,EAAE,aAAa;IAIjC;;;;;OAKG;IACG,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA+CjE;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B;;OAEG;IACH,SAAS,IAAI;QAAE,OAAO,EAAE,OAAO,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAA;KAAE;IAQzE;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;;;;;;;;;;;;;;;;;;OAmBG;IACG,eAAe,CAAC,OAAO,EAAE,sBAAsB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAuCzE;;;;;;;;;;;;;;;;;;;;;;;;;OAyBG;IACG,eAAe,CACnB,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,qBAAqB,CAAC;IAoFjC;;OAEG;IACH,QAAQ,IAAI,aAAa;IAIzB;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAU9B;;OAEG;YACW,gBAAgB;IAmC9B;;;;;;;;;;;;;;;;;;;;;;OAsBG;IACG,SAAS,CACb,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,eAAe,CAAC;IA6G3B;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACG,UAAU,CACd,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,eAAe,EAC3B,iBAAiB,EAAE,MAAM,EACzB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,gBAAgB,CAAC;IAyB5B;;;;;;;;;;;;;;;;;;;;OAoBG;IACG,iBAAiB,CAAC,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;IA4B5E;;;;;;;;;;;;;;;;;;;;;;;OAuBG;IACG,cAAc,CAClB,OAAO,EAAE,MAAM,EACf,IAAI,EAAE,MAAM,EACZ,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAAC,kBAAkB,CAAC;IAoB9B;;OAEG;IACH,OAAO,CAAC,cAAc;CAevB;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,aAAa,CAExE"}
1
+ {"version":3,"file":"GasFreeModule.d.ts","sourceRoot":"","sources":["../../../../../src/features/gas-free/GasFreeModule.ts"],"names":[],"mappings":"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"}
@@ -102,9 +102,13 @@ export declare const SDKOptionsSchema: z.ZodObject<{
102
102
  }>;
103
103
  /**
104
104
  * Zod schema for SDK configuration
105
+ *
106
+ * Note: `apiKey` is intentionally omitted here — it is validated manually in
107
+ * `validateSDKConfig` so it can be optional when Gas-Free / Watch Tower are off.
108
+ * Including it in Zod led to stale builds or edge cases surfacing as
109
+ * "apiKey: API key is required".
105
110
  */
106
111
  export declare const SDKConfigSchema: z.ZodObject<{
107
- apiKey: z.ZodString;
108
112
  environment: z.ZodDefault<z.ZodNativeEnum<typeof Environment>>;
109
113
  features: z.ZodOptional<z.ZodObject<{
110
114
  gasFree: z.ZodOptional<z.ZodObject<{
@@ -187,13 +191,9 @@ export declare const SDKConfigSchema: z.ZodObject<{
187
191
  }, {
188
192
  strictMode?: boolean | undefined;
189
193
  }>>;
190
- }, "strip", z.ZodTypeAny, {
191
- apiKey: string;
192
- environment: Environment;
193
- options?: {
194
- strictMode?: boolean | undefined;
195
- } | undefined;
196
- features?: z.objectOutputType<{
194
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
195
+ environment: z.ZodDefault<z.ZodNativeEnum<typeof Environment>>;
196
+ features: z.ZodOptional<z.ZodObject<{
197
197
  gasFree: z.ZodOptional<z.ZodObject<{
198
198
  enabled: z.ZodOptional<z.ZodBoolean>;
199
199
  timeout: z.ZodOptional<z.ZodNumber>;
@@ -214,18 +214,69 @@ export declare const SDKConfigSchema: z.ZodObject<{
214
214
  enabled?: boolean | undefined;
215
215
  pollingInterval?: number | undefined;
216
216
  }>>;
217
- }, z.ZodTypeAny, "passthrough"> | undefined;
218
- logging?: {
217
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
218
+ gasFree: z.ZodOptional<z.ZodObject<{
219
+ enabled: z.ZodOptional<z.ZodBoolean>;
220
+ timeout: z.ZodOptional<z.ZodNumber>;
221
+ }, "strip", z.ZodTypeAny, {
222
+ enabled?: boolean | undefined;
223
+ timeout?: number | undefined;
224
+ }, {
225
+ enabled?: boolean | undefined;
226
+ timeout?: number | undefined;
227
+ }>>;
228
+ watchTower: z.ZodOptional<z.ZodObject<{
229
+ enabled: z.ZodOptional<z.ZodBoolean>;
230
+ pollingInterval: z.ZodOptional<z.ZodNumber>;
231
+ }, "strip", z.ZodTypeAny, {
232
+ enabled?: boolean | undefined;
233
+ pollingInterval?: number | undefined;
234
+ }, {
235
+ enabled?: boolean | undefined;
236
+ pollingInterval?: number | undefined;
237
+ }>>;
238
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
239
+ gasFree: z.ZodOptional<z.ZodObject<{
240
+ enabled: z.ZodOptional<z.ZodBoolean>;
241
+ timeout: z.ZodOptional<z.ZodNumber>;
242
+ }, "strip", z.ZodTypeAny, {
243
+ enabled?: boolean | undefined;
244
+ timeout?: number | undefined;
245
+ }, {
246
+ enabled?: boolean | undefined;
247
+ timeout?: number | undefined;
248
+ }>>;
249
+ watchTower: z.ZodOptional<z.ZodObject<{
250
+ enabled: z.ZodOptional<z.ZodBoolean>;
251
+ pollingInterval: z.ZodOptional<z.ZodNumber>;
252
+ }, "strip", z.ZodTypeAny, {
253
+ enabled?: boolean | undefined;
254
+ pollingInterval?: number | undefined;
255
+ }, {
256
+ enabled?: boolean | undefined;
257
+ pollingInterval?: number | undefined;
258
+ }>>;
259
+ }, z.ZodTypeAny, "passthrough">>>;
260
+ logging: z.ZodOptional<z.ZodObject<{
261
+ level: z.ZodOptional<z.ZodNativeEnum<typeof LogLevel>>;
262
+ logger: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
263
+ }, "strip", z.ZodTypeAny, {
219
264
  level?: LogLevel | undefined;
220
265
  logger?: ((...args: unknown[]) => unknown) | undefined;
221
- } | undefined;
222
- }, {
223
- apiKey: string;
224
- options?: {
266
+ }, {
267
+ level?: LogLevel | undefined;
268
+ logger?: ((...args: unknown[]) => unknown) | undefined;
269
+ }>>;
270
+ options: z.ZodOptional<z.ZodObject<{
271
+ strictMode: z.ZodOptional<z.ZodBoolean>;
272
+ }, "strip", z.ZodTypeAny, {
225
273
  strictMode?: boolean | undefined;
226
- } | undefined;
227
- environment?: Environment | undefined;
228
- features?: z.objectInputType<{
274
+ }, {
275
+ strictMode?: boolean | undefined;
276
+ }>>;
277
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
278
+ environment: z.ZodDefault<z.ZodNativeEnum<typeof Environment>>;
279
+ features: z.ZodOptional<z.ZodObject<{
229
280
  gasFree: z.ZodOptional<z.ZodObject<{
230
281
  enabled: z.ZodOptional<z.ZodBoolean>;
231
282
  timeout: z.ZodOptional<z.ZodNumber>;
@@ -246,21 +297,77 @@ export declare const SDKConfigSchema: z.ZodObject<{
246
297
  enabled?: boolean | undefined;
247
298
  pollingInterval?: number | undefined;
248
299
  }>>;
249
- }, z.ZodTypeAny, "passthrough"> | undefined;
250
- logging?: {
300
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
301
+ gasFree: z.ZodOptional<z.ZodObject<{
302
+ enabled: z.ZodOptional<z.ZodBoolean>;
303
+ timeout: z.ZodOptional<z.ZodNumber>;
304
+ }, "strip", z.ZodTypeAny, {
305
+ enabled?: boolean | undefined;
306
+ timeout?: number | undefined;
307
+ }, {
308
+ enabled?: boolean | undefined;
309
+ timeout?: number | undefined;
310
+ }>>;
311
+ watchTower: z.ZodOptional<z.ZodObject<{
312
+ enabled: z.ZodOptional<z.ZodBoolean>;
313
+ pollingInterval: z.ZodOptional<z.ZodNumber>;
314
+ }, "strip", z.ZodTypeAny, {
315
+ enabled?: boolean | undefined;
316
+ pollingInterval?: number | undefined;
317
+ }, {
318
+ enabled?: boolean | undefined;
319
+ pollingInterval?: number | undefined;
320
+ }>>;
321
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
322
+ gasFree: z.ZodOptional<z.ZodObject<{
323
+ enabled: z.ZodOptional<z.ZodBoolean>;
324
+ timeout: z.ZodOptional<z.ZodNumber>;
325
+ }, "strip", z.ZodTypeAny, {
326
+ enabled?: boolean | undefined;
327
+ timeout?: number | undefined;
328
+ }, {
329
+ enabled?: boolean | undefined;
330
+ timeout?: number | undefined;
331
+ }>>;
332
+ watchTower: z.ZodOptional<z.ZodObject<{
333
+ enabled: z.ZodOptional<z.ZodBoolean>;
334
+ pollingInterval: z.ZodOptional<z.ZodNumber>;
335
+ }, "strip", z.ZodTypeAny, {
336
+ enabled?: boolean | undefined;
337
+ pollingInterval?: number | undefined;
338
+ }, {
339
+ enabled?: boolean | undefined;
340
+ pollingInterval?: number | undefined;
341
+ }>>;
342
+ }, z.ZodTypeAny, "passthrough">>>;
343
+ logging: z.ZodOptional<z.ZodObject<{
344
+ level: z.ZodOptional<z.ZodNativeEnum<typeof LogLevel>>;
345
+ logger: z.ZodOptional<z.ZodFunction<z.ZodTuple<[], z.ZodUnknown>, z.ZodUnknown>>;
346
+ }, "strip", z.ZodTypeAny, {
251
347
  level?: LogLevel | undefined;
252
348
  logger?: ((...args: unknown[]) => unknown) | undefined;
253
- } | undefined;
254
- }>;
349
+ }, {
350
+ level?: LogLevel | undefined;
351
+ logger?: ((...args: unknown[]) => unknown) | undefined;
352
+ }>>;
353
+ options: z.ZodOptional<z.ZodObject<{
354
+ strictMode: z.ZodOptional<z.ZodBoolean>;
355
+ }, "strip", z.ZodTypeAny, {
356
+ strictMode?: boolean | undefined;
357
+ }, {
358
+ strictMode?: boolean | undefined;
359
+ }>>;
360
+ }, z.ZodTypeAny, "passthrough">>;
255
361
  /**
256
362
  * SDK Configuration
257
363
  */
258
364
  export interface SDKConfig {
259
365
  /**
260
366
  * API key for Orbis services (Watch Tower, Gas-Free, etc.).
261
- * Required for all backend services.
367
+ * Required when `features.gasFree.enabled` or `features.watchTower.enabled` is true.
368
+ * Omit for local RGB / wallet-only usage when those features are disabled.
262
369
  */
263
- apiKey: string;
370
+ apiKey?: string;
264
371
  /**
265
372
  * SDK environment (testnet or mainnet).
266
373
  * Determines which network and service endpoints to use.
@@ -1 +1 @@
1
- {"version":3,"file":"SDKConfig.d.ts","sourceRoot":"","sources":["../../../../src/types/SDKConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SDKConfig.d.ts","sourceRoot":"","sources":["../../../../src/types/SDKConfig.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "orbis1-sdk-rn",
3
- "version": "0.0.8",
3
+ "version": "0.0.10",
4
4
  "description": "Orbis1 SDK for React Native with RGB core, Watch Tower, and Gas-Free transfers.",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
package/src/Orbis1SDK.ts CHANGED
@@ -147,7 +147,7 @@ export class Orbis1SDK {
147
147
  name: Feature.GAS_FREE,
148
148
  enabled: true,
149
149
  environment: this.config.environment,
150
- apiKey: this.config.apiKey,
150
+ apiKey: this.config.apiKey!,
151
151
  timeout: features.gasFree.timeout,
152
152
  });
153
153
  this.featureRegistry.register(Feature.GAS_FREE, gasFreeModule);
@@ -160,7 +160,7 @@ export class Orbis1SDK {
160
160
  name: Feature.WATCH_TOWER,
161
161
  enabled: true,
162
162
  environment: this.config.environment,
163
- apiKey: this.config.apiKey,
163
+ apiKey: this.config.apiKey!,
164
164
  });
165
165
  this.featureRegistry.register(Feature.WATCH_TOWER, watchTowerModule);
166
166
  await watchTowerModule.initialize(this.wallet, this.logger); // Wallet parameter ignored by Watch Tower
@@ -31,7 +31,7 @@ import type {
31
31
  TransferState,
32
32
  } from './types';
33
33
  import { GasFreeError, GasFreeErrorCode } from './errors/GasFreeError';
34
- import type { AssignmentType } from '../../core/Interfaces';
34
+ import type { AssignmentType, InvoiceData } from '../../core/Interfaces';
35
35
  import { Feature } from '../../types/Feature';
36
36
 
37
37
  /**
@@ -169,6 +169,24 @@ export class GasFreeModule implements IFeatureModule<GasFreeConfig> {
169
169
  throw GasFreeError.notInitialized();
170
170
  }
171
171
 
172
+ // Decode the recipient invoice up-front so we can inspect the seal type.
173
+ // This also validates the invoice format before touching the backend.
174
+ const decodedRecipientInvoice = await this.wallet!.decodeInvoice(
175
+ request.recipientInvoice
176
+ );
177
+
178
+ // Witness-output invoices (wvout:) are not yet supported for gas-free
179
+ // transfers because sendEnd requires additional changes to handle the
180
+ // extra Bitcoin output they introduce. Reject early so no backend call
181
+ // is made and the user gets a clear actionable message.
182
+ if (this.isWitnessRecipient(decodedRecipientInvoice)) {
183
+ throw new GasFreeError(
184
+ 'Witness invoices (wvout) are not yet supported for gas-free transfers. ' +
185
+ 'Please ask the recipient to generate a blinded-UTXO invoice instead.',
186
+ GasFreeErrorCode.INVALID_REQUEST
187
+ );
188
+ }
189
+
172
190
  // Reset state
173
191
  this.currentState = { status: 'idle' };
174
192
 
@@ -658,6 +676,19 @@ export class GasFreeModule implements IFeatureModule<GasFreeConfig> {
658
676
  return verifyResult;
659
677
  }
660
678
 
679
+ /**
680
+ * Returns true if a decoded invoice targets a witness output (`wvout:`) seal.
681
+ *
682
+ * The `recipientId` returned by `decodeInvoice` for witness invoices follows
683
+ * the pattern `{network}:wvout:{sealData}` (e.g. `tb4:wvout:BYrJtiVZ-…`).
684
+ * Splitting on `:` and checking the second segment is more reliable than
685
+ * searching the raw invoice string.
686
+ */
687
+ private isWitnessRecipient(decoded: InvoiceData): boolean {
688
+ const parts = decoded.recipientId.split(':');
689
+ return parts[1] === 'wvout';
690
+ }
691
+
661
692
  /**
662
693
  * Validate configuration
663
694
  */
@@ -93,20 +93,26 @@ export const SDKOptionsSchema = z.object({
93
93
 
94
94
  /**
95
95
  * Zod schema for SDK configuration
96
+ *
97
+ * Note: `apiKey` is intentionally omitted here — it is validated manually in
98
+ * `validateSDKConfig` so it can be optional when Gas-Free / Watch Tower are off.
99
+ * Including it in Zod led to stale builds or edge cases surfacing as
100
+ * "apiKey: API key is required".
96
101
  */
97
- export const SDKConfigSchema = z.object({
98
- apiKey: z.string().min(1, 'API key is required'),
99
- environment: z.nativeEnum(Environment).default(Environment.MAINNET),
100
- features: z
101
- .object({
102
- gasFree: GasFreeFeatureConfigSchema.optional(),
103
- watchTower: WatchTowerFeatureConfigSchema.optional(),
104
- })
105
- .passthrough()
106
- .optional(),
107
- logging: LoggingConfigSchema.optional(),
108
- options: SDKOptionsSchema.optional(),
109
- });
102
+ export const SDKConfigSchema = z
103
+ .object({
104
+ environment: z.nativeEnum(Environment).default(Environment.MAINNET),
105
+ features: z
106
+ .object({
107
+ gasFree: GasFreeFeatureConfigSchema.optional(),
108
+ watchTower: WatchTowerFeatureConfigSchema.optional(),
109
+ })
110
+ .passthrough()
111
+ .optional(),
112
+ logging: LoggingConfigSchema.optional(),
113
+ options: SDKOptionsSchema.optional(),
114
+ })
115
+ .passthrough();
110
116
 
111
117
  /**
112
118
  * SDK Configuration
@@ -114,9 +120,10 @@ export const SDKConfigSchema = z.object({
114
120
  export interface SDKConfig {
115
121
  /**
116
122
  * API key for Orbis services (Watch Tower, Gas-Free, etc.).
117
- * Required for all backend services.
123
+ * Required when `features.gasFree.enabled` or `features.watchTower.enabled` is true.
124
+ * Omit for local RGB / wallet-only usage when those features are disabled.
118
125
  */
119
- apiKey: string;
126
+ apiKey?: string;
120
127
 
121
128
  /**
122
129
  * SDK environment (testnet or mainnet).
@@ -207,15 +214,38 @@ export function validateSDKConfig(config: SDKConfig): void {
207
214
  const path = err.path.join('.');
208
215
  return path ? `${path}: ${err.message}` : err.message;
209
216
  });
210
- throw new Error(
211
- `Configuration validation failed:\n - ${messages.join('\n - ')}`
212
- );
217
+ // No outer "Configuration validation failed" prefix — Orbis1SDK wraps once
218
+ throw new Error(messages.join('\n - '));
213
219
  }
214
220
  throw error;
215
221
  }
216
222
 
217
- // Validate API key prefix matches environment
218
- const apiKey = config.apiKey;
223
+ if (
224
+ config.apiKey !== undefined &&
225
+ config.apiKey !== null &&
226
+ typeof config.apiKey !== 'string'
227
+ ) {
228
+ throw new Error('apiKey must be a string when provided');
229
+ }
230
+
231
+ const needsApiKey =
232
+ config.features?.gasFree?.enabled === true ||
233
+ config.features?.watchTower?.enabled === true;
234
+
235
+ const apiKeyTrimmed =
236
+ typeof config.apiKey === 'string' ? config.apiKey.trim() : '';
237
+ const apiKey = apiKeyTrimmed.length > 0 ? apiKeyTrimmed : undefined;
238
+
239
+ if (needsApiKey && !apiKey) {
240
+ throw new Error(
241
+ 'API key is required when Gas-Free or Watch Tower is enabled'
242
+ );
243
+ }
244
+
245
+ if (!apiKey) {
246
+ return;
247
+ }
248
+
219
249
  const environment = config.environment ?? Environment.MAINNET;
220
250
 
221
251
  if (
@@ -249,8 +279,14 @@ export function validateSDKConfig(config: SDKConfig): void {
249
279
  * @returns Merged configuration with defaults
250
280
  */
251
281
  export function mergeWithDefaults(config: SDKConfig): SDKConfig {
282
+ const apiKeyNormalized =
283
+ typeof config.apiKey === 'string'
284
+ ? config.apiKey.trim() || undefined
285
+ : config.apiKey;
286
+
252
287
  return {
253
288
  ...config,
289
+ apiKey: apiKeyNormalized,
254
290
  environment: config.environment ?? Environment.MAINNET,
255
291
  features: {
256
292
  ...DEFAULT_SDK_CONFIG.features,