orbis1-sdk-rn 0.2.1 → 0.2.3

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.
Files changed (51) hide show
  1. package/README.md +6 -9
  2. package/android/src/main/java/com/orbis1sdk/RgbModule.kt +47 -8
  3. package/ios/Orbis1Sdk.mm +3 -1
  4. package/ios/Rgb.mm +3 -1
  5. package/ios/Rgb.swift +86 -10
  6. package/lib/module/core/KeyManager.js +3 -3
  7. package/lib/module/core/KeyManager.js.map +1 -1
  8. package/lib/module/core/NativeRgb.js.map +1 -1
  9. package/lib/module/features/gas-free/GasFreeModule.js +6 -5
  10. package/lib/module/features/gas-free/GasFreeModule.js.map +1 -1
  11. package/lib/module/features/gas-free/index.js +3 -0
  12. package/lib/module/features/gas-free/index.js.map +1 -1
  13. package/lib/module/features/gas-free/types/FeeQuote.js.map +1 -1
  14. package/lib/module/features/gas-free/utils/FeeCalculator.js +218 -0
  15. package/lib/module/features/gas-free/utils/FeeCalculator.js.map +1 -0
  16. package/lib/module/features/gas-free/utils/index.js +3 -0
  17. package/lib/module/features/gas-free/utils/index.js.map +1 -1
  18. package/lib/module/features/gas-free/utils/validation.js +6 -5
  19. package/lib/module/features/gas-free/utils/validation.js.map +1 -1
  20. package/lib/module/index.js +1 -0
  21. package/lib/module/index.js.map +1 -1
  22. package/lib/typescript/src/core/KeyManager.d.ts +2 -2
  23. package/lib/typescript/src/core/KeyManager.d.ts.map +1 -1
  24. package/lib/typescript/src/core/NativeRgb.d.ts +1 -1
  25. package/lib/typescript/src/core/NativeRgb.d.ts.map +1 -1
  26. package/lib/typescript/src/features/gas-free/GasFreeModule.d.ts.map +1 -1
  27. package/lib/typescript/src/features/gas-free/index.d.ts +1 -0
  28. package/lib/typescript/src/features/gas-free/index.d.ts.map +1 -1
  29. package/lib/typescript/src/features/gas-free/types/FeeQuote.d.ts +4 -2
  30. package/lib/typescript/src/features/gas-free/types/FeeQuote.d.ts.map +1 -1
  31. package/lib/typescript/src/features/gas-free/types/GasFreeRequest.d.ts +2 -2
  32. package/lib/typescript/src/features/gas-free/types/GasFreeRequest.d.ts.map +1 -1
  33. package/lib/typescript/src/features/gas-free/utils/FeeCalculator.d.ts +137 -0
  34. package/lib/typescript/src/features/gas-free/utils/FeeCalculator.d.ts.map +1 -0
  35. package/lib/typescript/src/features/gas-free/utils/index.d.ts +1 -0
  36. package/lib/typescript/src/features/gas-free/utils/index.d.ts.map +1 -1
  37. package/lib/typescript/src/features/gas-free/utils/validation.d.ts +6 -3
  38. package/lib/typescript/src/features/gas-free/utils/validation.d.ts.map +1 -1
  39. package/lib/typescript/src/index.d.ts +1 -0
  40. package/lib/typescript/src/index.d.ts.map +1 -1
  41. package/package.json +1 -1
  42. package/src/core/KeyManager.ts +4 -3
  43. package/src/core/NativeRgb.ts +5 -1
  44. package/src/features/gas-free/GasFreeModule.ts +5 -4
  45. package/src/features/gas-free/index.ts +3 -0
  46. package/src/features/gas-free/types/FeeQuote.ts +4 -2
  47. package/src/features/gas-free/types/GasFreeRequest.ts +2 -2
  48. package/src/features/gas-free/utils/FeeCalculator.ts +229 -0
  49. package/src/features/gas-free/utils/index.ts +3 -0
  50. package/src/features/gas-free/utils/validation.ts +14 -4
  51. package/src/index.ts +1 -0
package/README.md CHANGED
@@ -86,23 +86,20 @@ Transfer RGB assets without holding BTC for mining fees:
86
86
 
87
87
  ```typescript
88
88
  // 1. Request fee quote
89
- const quote = await sdk.gasFree().requestFeeQuote({
89
+ const transferRequest = {
90
90
  userId: 'user-123',
91
91
  assetId: 'rgb:...',
92
- amount: '1000',
92
+ transferAmount: 100250000, // Amount in base units (e.g., 100.25 TUSDT with precision 6)
93
93
  recipientInvoice: 'rgb:invoice...',
94
- });
94
+ }
95
+
96
+ const quote = await sdk.gasFree().requestFeeQuote(transferRequest);
95
97
 
96
98
  console.log(`Service fee: ${quote.serviceFeeAmount} (asset units)`);
97
99
  console.log(`Quote expires: ${quote.expiresAt}`);
98
100
 
99
101
  // 2. Confirm transfer (if user accepts quote)
100
- const result = await sdk.gasFree().confirmTransfer({
101
- userId: 'user-123',
102
- assetId: 'rgb:...',
103
- amount: '1000',
104
- recipientInvoice: 'rgb:invoice...',
105
- }, quote);
102
+ const result = await sdk.gasFree().confirmTransfer(transferRequest, quote);
106
103
 
107
104
  console.log(`Transfer complete! TXID: ${result.txid}`);
108
105
  console.log(`Service fee: ${result.serviceFee} base units`);
@@ -77,12 +77,51 @@ class RgbModule(reactContext: ReactApplicationContext) :
77
77
  }
78
78
  }
79
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
- }
80
+ private fun emptyRgbDataDir(dir: File, folderName: String) {
81
+ val segment = folderName.trim()
82
+ require(segment.isNotEmpty()) { "folderName must not be blank" }
83
+ require(segment == folderName) { "folderName must not have leading or trailing whitespace" }
84
+ require(segment != "." && segment != "..") { "folderName cannot be '.' or '..'" }
85
+ require(
86
+ !segment.contains("..") &&
87
+ !segment.contains(File.separator) &&
88
+ !segment.contains("/") &&
89
+ !segment.contains("\\")
90
+ ) {
91
+ "folderName must be a single path segment"
92
+ }
93
+
94
+ val filesRoot = reactApplicationContext.filesDir.canonicalFile
95
+ val rgbRoot = dir.canonicalFile
96
+ val filesPrefix = filesRoot.absolutePath + File.separator
97
+ val underFiles =
98
+ rgbRoot == filesRoot || rgbRoot.absolutePath.startsWith(filesPrefix)
99
+ if (!underFiles) {
100
+ throw IllegalStateException(
101
+ "RGB data directory must be the app files directory or a subdirectory of it."
102
+ )
103
+ }
104
+
105
+ val sub = File(dir, segment)
106
+ val target = sub.canonicalFile
107
+ if (target == rgbRoot) {
108
+ throw IllegalStateException("Refusing to delete the RGB parent directory itself.")
109
+ }
110
+ val rgbPrefix = rgbRoot.absolutePath + File.separator
111
+ if (!target.absolutePath.startsWith(rgbPrefix)) {
112
+ throw IllegalStateException("Resolved folder escapes RGB directory.")
113
+ }
114
+ val parent = target.parentFile?.canonicalFile
115
+ if (parent != rgbRoot) {
116
+ throw IllegalStateException("Resolved path must be a direct subdirectory of the RGB directory, not the parent.")
117
+ }
118
+
119
+ if (!target.exists()) return
120
+ if (!target.isDirectory) {
121
+ throw IllegalStateException("Not a directory: ${target.absolutePath}")
122
+ }
123
+ if (!target.deleteRecursively()) {
124
+ throw IllegalStateException("Failed to delete ${target.absolutePath}")
86
125
  }
87
126
  }
88
127
 
@@ -137,13 +176,13 @@ class RgbModule(reactContext: ReactApplicationContext) :
137
176
  }
138
177
  }
139
178
 
140
- override fun restoreBackup(path: String, password: String, promise: Promise) {
179
+ override fun restoreBackup(path: String, password: String, masterFingerprint: String, promise: Promise) {
141
180
  coroutineScope.launch(Dispatchers.IO) {
142
181
  try {
143
182
  val rgbDir = AppConstants.rgbDir
144
183
  ?: throw IllegalStateException("RGB directory not initialized.")
145
184
  WalletStore.clear()
146
- emptyRgbDataDir(rgbDir)
185
+ emptyRgbDataDir(rgbDir, masterFingerprint)
147
186
  org.rgbtools.restoreBackup(path, password, rgbDir.absolutePath)
148
187
 
149
188
  withContext(Dispatchers.Main) {
package/ios/Orbis1Sdk.mm CHANGED
@@ -96,6 +96,7 @@
96
96
 
97
97
  - (void)restoreBackup:(NSString *)path
98
98
  password:(NSString *)password
99
+ masterFingerprint:(NSString *)masterFingerprint
99
100
  resolve:(RCTPromiseResolveBlock)resolve
100
101
  reject:(RCTPromiseRejectBlock)reject
101
102
  {
@@ -104,9 +105,10 @@
104
105
  RCTPromiseRejectBlock strongReject = reject;
105
106
  NSString *strongPath = [path copy];
106
107
  NSString *strongPassword = [password copy];
108
+ NSString *strongMasterFingerprint = [masterFingerprint copy];
107
109
 
108
110
  EXEC_ASYNC({
109
- NSDictionary *result = [RgbSwiftHelper _restoreBackup:strongPath :strongPassword];
111
+ NSDictionary *result = [RgbSwiftHelper _restoreBackup:strongPath :strongPassword :strongMasterFingerprint];
110
112
  NSString *errorMessage = result[@"error"];
111
113
  if (errorMessage != nil) {
112
114
  NSString *errorCode = result[@"errorCode"] ?: @"RESTORE_BACKUP_ERROR";
package/ios/Rgb.mm CHANGED
@@ -92,6 +92,7 @@
92
92
 
93
93
  - (void)restoreBackup:(NSString *)path
94
94
  password:(NSString *)password
95
+ masterFingerprint:(NSString *)masterFingerprint
95
96
  resolve:(RCTPromiseResolveBlock)resolve
96
97
  reject:(RCTPromiseRejectBlock)reject
97
98
  {
@@ -100,9 +101,10 @@
100
101
  RCTPromiseRejectBlock strongReject = reject;
101
102
  NSString *strongPath = [path copy];
102
103
  NSString *strongPassword = [password copy];
104
+ NSString *strongMasterFingerprint = [masterFingerprint copy];
103
105
 
104
106
  EXEC_ASYNC({
105
- NSDictionary *result = [RgbSwiftHelper _restoreBackup:strongPath :strongPassword];
107
+ NSDictionary *result = [RgbSwiftHelper _restoreBackup:strongPath :strongPassword :strongMasterFingerprint];
106
108
  NSString *errorMessage = result[@"error"];
107
109
  if (errorMessage != nil) {
108
110
  NSString *errorCode = result[@"errorCode"] ?: @"RESTORE_BACKUP_ERROR";
package/ios/Rgb.swift CHANGED
@@ -49,16 +49,92 @@ public class RgbSwiftHelper: NSObject {
49
49
  return error.localizedDescription
50
50
  }
51
51
 
52
- private static func emptyRgbDataDir(at url: URL) throws {
52
+ private static func emptyRgbDataDir(rgbDir: URL, folderName: String) throws {
53
+ let segment = folderName.trimmingCharacters(in: .whitespacesAndNewlines)
54
+ guard !segment.isEmpty else {
55
+ throw NSError(
56
+ domain: "RNRgb",
57
+ code: 1,
58
+ userInfo: [NSLocalizedDescriptionKey: "folderName must not be blank"]
59
+ )
60
+ }
61
+ guard segment == folderName else {
62
+ throw NSError(
63
+ domain: "RNRgb",
64
+ code: 1,
65
+ userInfo: [NSLocalizedDescriptionKey: "folderName must not have leading or trailing whitespace"]
66
+ )
67
+ }
68
+ guard segment != ".", segment != ".." else {
69
+ throw NSError(
70
+ domain: "RNRgb",
71
+ code: 1,
72
+ userInfo: [NSLocalizedDescriptionKey: "folderName cannot be '.' or '..'"]
73
+ )
74
+ }
75
+ guard !segment.contains(".."), !segment.contains("/"), !segment.contains("\\") else {
76
+ throw NSError(
77
+ domain: "RNRgb",
78
+ code: 1,
79
+ userInfo: [NSLocalizedDescriptionKey: "folderName must be a single path segment"]
80
+ )
81
+ }
82
+
53
83
  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)
84
+ let documentsURL = fileManager.urls(for: .documentDirectory, in: .userDomainMask)[0]
85
+ let docsPath = documentsURL.standardizedFileURL.resolvingSymlinksInPath().path
86
+ let rgbRootURL = rgbDir.standardizedFileURL.resolvingSymlinksInPath()
87
+ let rgbPath = rgbRootURL.path
88
+
89
+ let underDocuments = rgbPath == docsPath || rgbPath.hasPrefix(docsPath + "/")
90
+ guard underDocuments else {
91
+ throw NSError(
92
+ domain: "RNRgb",
93
+ code: 1,
94
+ userInfo: [NSLocalizedDescriptionKey: "RGB data directory must be the app documents directory or a subdirectory of it."]
95
+ )
96
+ }
97
+
98
+ let subURL = rgbRootURL.appendingPathComponent(segment, isDirectory: true)
99
+ let targetURL = subURL.standardizedFileURL.resolvingSymlinksInPath()
100
+ let targetPath = targetURL.path
101
+
102
+ guard targetPath != rgbPath else {
103
+ throw NSError(
104
+ domain: "RNRgb",
105
+ code: 1,
106
+ userInfo: [NSLocalizedDescriptionKey: "Refusing to delete the RGB parent directory itself."]
107
+ )
108
+ }
109
+ guard targetPath.hasPrefix(rgbPath + "/") else {
110
+ throw NSError(
111
+ domain: "RNRgb",
112
+ code: 1,
113
+ userInfo: [NSLocalizedDescriptionKey: "Resolved folder escapes RGB directory."]
114
+ )
115
+ }
116
+ let parentPath = targetURL.deletingLastPathComponent()
117
+ .standardizedFileURL
118
+ .resolvingSymlinksInPath()
119
+ .path
120
+ guard parentPath == rgbPath else {
121
+ throw NSError(
122
+ domain: "RNRgb",
123
+ code: 1,
124
+ userInfo: [NSLocalizedDescriptionKey: "Resolved path must be a direct subdirectory of the RGB directory."]
125
+ )
126
+ }
127
+
128
+ guard fileManager.fileExists(atPath: targetPath) else { return }
129
+ var isDir: ObjCBool = false
130
+ guard fileManager.fileExists(atPath: targetPath, isDirectory: &isDir), isDir.boolValue else {
131
+ throw NSError(
132
+ domain: "RNRgb",
133
+ code: 1,
134
+ userInfo: [NSLocalizedDescriptionKey: "Not a directory: \(targetPath)"]
135
+ )
61
136
  }
137
+ try fileManager.removeItem(at: URL(fileURLWithPath: targetPath))
62
138
  }
63
139
 
64
140
  private static func getNetwork(_ network: String) -> BitcoinNetwork {
@@ -143,7 +219,7 @@ public class RgbSwiftHelper: NSObject {
143
219
  }
144
220
 
145
221
  @objc
146
- public static func _restoreBackup(_ path: String, _ password: String) -> NSDictionary {
222
+ public static func _restoreBackup(_ path: String, _ password: String, _ masterFingerprint: String) -> NSDictionary {
147
223
  do {
148
224
  let constants = AppConstants.shared
149
225
  constants.ensureInitialized()
@@ -153,7 +229,7 @@ public class RgbSwiftHelper: NSObject {
153
229
  }
154
230
 
155
231
  WalletStore.shared.clear()
156
- try Self.emptyRgbDataDir(at: rgbDir)
232
+ try Self.emptyRgbDataDir(rgbDir: rgbDir, folderName: masterFingerprint)
157
233
  try restoreBackup(backupPath: path, password: password, dataDir: rgbDir.path)
158
234
  return [:] as NSDictionary
159
235
  } catch {
@@ -70,11 +70,11 @@ export async function restoreKeys(bitcoinNetwork, mnemonic) {
70
70
  * ```typescript
71
71
  * import { restoreBackup } from 'orbis1-sdk-rn';
72
72
  *
73
- * await restoreBackup('/path/to/backup.dat', 'mypassword');
73
+ * await restoreBackup('/path/to/backup.dat', 'mypassword', masterFingerprint);
74
74
  * ```
75
75
  */
76
- export async function restoreBackup(path, password) {
77
- return Rgb.restoreBackup(path, password);
76
+ export async function restoreBackup(path, password, masterFingerprint) {
77
+ return Rgb.restoreBackup(path, password, masterFingerprint);
78
78
  }
79
79
 
80
80
  /**
@@ -1 +1 @@
1
- {"version":3,"names":["Rgb","generateKeys","bitcoinNetwork","restoreKeys","mnemonic","restoreBackup","path","password","decodeInvoice","invoice"],"sourceRoot":"../../../src","sources":["core/KeyManager.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,GAAG,MAAM,gBAAa;AAG7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,YAAYA,CAChCC,cAAyC,EACf;EAC1B,OAAOF,GAAG,CAACC,YAAY,CAACC,cAAc,CAAC;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,WAAWA,CAC/BD,cAAyC,EACzCE,QAAgB,EACU;EAC1B,OAAOJ,GAAG,CAACG,WAAW,CAACD,cAAc,EAAEE,QAAQ,CAAC;AAClD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,aAAaA,CACjCC,IAAY,EACZC,QAAgB,EACD;EACf,OAAOP,GAAG,CAACK,aAAa,CAACC,IAAI,EAAEC,QAAQ,CAAC;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,aAAaA,CACjCC,OAAe,EACkB;EACjC,OAAOT,GAAG,CAACQ,aAAa,CAACC,OAAO,CAAC;AACnC","ignoreList":[]}
1
+ {"version":3,"names":["Rgb","generateKeys","bitcoinNetwork","restoreKeys","mnemonic","restoreBackup","path","password","masterFingerprint","decodeInvoice","invoice"],"sourceRoot":"../../../src","sources":["core/KeyManager.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,OAAOA,GAAG,MAAM,gBAAa;AAG7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,YAAYA,CAChCC,cAAyC,EACf;EAC1B,OAAOF,GAAG,CAACC,YAAY,CAACC,cAAc,CAAC;AACzC;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,WAAWA,CAC/BD,cAAyC,EACzCE,QAAgB,EACU;EAC1B,OAAOJ,GAAG,CAACG,WAAW,CAACD,cAAc,EAAEE,QAAQ,CAAC;AAClD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,aAAaA,CACjCC,IAAY,EACZC,QAAgB,EAChBC,iBAAyB,EACV;EACf,OAAOR,GAAG,CAACK,aAAa,CAACC,IAAI,EAAEC,QAAQ,EAAEC,iBAAiB,CAAC;AAC7D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,eAAeC,aAAaA,CACjCC,OAAe,EACkB;EACjC,OAAOV,GAAG,CAACS,aAAa,CAACC,OAAO,CAAC;AACnC","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["core/NativeRgb.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAA0B,cAAc;AA2epE,eAAeA,mBAAmB,CAACC,YAAY,CAAO,WAAW,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"../../../src","sources":["core/NativeRgb.ts"],"mappings":";;AAAA,SAASA,mBAAmB,QAA0B,cAAc;AA+epE,eAAeA,mBAAmB,CAACC,YAAY,CAAO,WAAW,CAAC","ignoreList":[]}
@@ -127,7 +127,7 @@ export class GasFreeModule {
127
127
  async requestFeeQuote(request) {
128
128
  this.logger?.debug('Requesting fee quote', {
129
129
  assetId: request.assetId,
130
- amount: request.amount
130
+ transferAmount: request.transferAmount
131
131
  });
132
132
 
133
133
  // Check module is ready
@@ -186,7 +186,7 @@ export class GasFreeModule {
186
186
  this.logger?.debug('Confirming transfer with quote', {
187
187
  quoteId: feeQuote.quoteId,
188
188
  assetId: request.assetId,
189
- amount: request.amount
189
+ transferAmount: request.transferAmount
190
190
  });
191
191
 
192
192
  // Check module is ready
@@ -285,7 +285,8 @@ export class GasFreeModule {
285
285
  // defaults to 1 inputs if not provided (1 user input)
286
286
  numOutputs: request.numOutputs || 2,
287
287
  // defaults to 2 outputs if not provided (1 OP_RETURN, 1 user change <equal val as input>)
288
- recipientInvoice: request.recipientInvoice
288
+ recipientInvoice: request.recipientInvoice,
289
+ transferAmount: request.transferAmount
289
290
  });
290
291
 
291
292
  // Check quote expiration
@@ -379,8 +380,8 @@ export class GasFreeModule {
379
380
  assignment: {
380
381
  // Use FUNGIBLE type for asset transfers (invoice may have 'ANY' wildcard type)
381
382
  type: 'FUNGIBLE',
382
- // Use amount from request (in base units (w/ precision), as integer)
383
- amount: parseInt(request.amount, 10)
383
+ // transferAmount is already in base units (with precision included)
384
+ amount: request.transferAmount
384
385
  },
385
386
  transportEndpoints: decodedRecipientInvoice.transportEndpoints
386
387
  }, {
@@ -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","txid","userSignedPsbt","broadcastTransfer","signedPsbtBase64","verifyTransfer","consignment","consignmentBase64","serviceFee","serviceFeeAmount","getState","userId","numInputs","numOutputs","recipientInvoice","quoteExpiresAt","miningFee","miningFeeSats","externalInputs","miningUTXO","vout","value","scriptPubkey","script_pubkey","externalOutputs","miningChangeUTXO","address","decodedRecipientInvoice","decodeInvoice","decodedServiceInvoice","serviceFeeInvoice","recipient","service","recipientIsWitness","witnessUtxoFundingSats","recipientMap","recipientId","witnessData","amountSat","blinding","assignment","type","parseInt","transportEndpoints","unsignedPsbt","sendBegin","feeRate","minConfirmations","length","readForAsset","signPsbt","psbtBase64","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","transferAmount","notInitialized","feeQuote","generateFeeQuote","quoteId","UNKNOWN","undefined","confirmTransfer","expiresAt","Date","getTime","now","QUOTE_EXPIRED","psbtResult","buildPSBT","submitResult","submitPSBT","txid","userSignedPsbt","broadcastTransfer","signedPsbtBase64","verifyTransfer","consignment","consignmentBase64","serviceFee","serviceFeeAmount","getState","userId","numInputs","numOutputs","recipientInvoice","quoteExpiresAt","miningFee","miningFeeSats","externalInputs","miningUTXO","vout","value","scriptPubkey","script_pubkey","externalOutputs","miningChangeUTXO","address","decodedRecipientInvoice","decodeInvoice","decodedServiceInvoice","serviceFeeInvoice","recipient","service","recipientIsWitness","witnessUtxoFundingSats","recipientMap","recipientId","witnessData","amountSat","blinding","assignment","type","amount","transportEndpoints","unsignedPsbt","sendBegin","feeRate","minConfirmations","length","readForAsset","signPsbt","psbtBase64","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":[]}
@@ -12,6 +12,9 @@ export { GasFreeModule, createGasFreeModule } from "./GasFreeModule.js";
12
12
  // Types
13
13
  export * from "./types/index.js";
14
14
 
15
+ // Utilities
16
+ export { FeeCalculator, createFeeCalculator } from "./utils/index.js";
17
+
15
18
  // Errors
16
19
  export * from "./errors/index.js";
17
20
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["GasFreeModule","createGasFreeModule"],"sourceRoot":"../../../../src","sources":["features/gas-free/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAASA,aAAa,EAAEC,mBAAmB,QAAQ,oBAAiB;;AAEpE;AACA,cAAc,kBAAS;;AAEvB;AACA,cAAc,mBAAU","ignoreList":[]}
1
+ {"version":3,"names":["GasFreeModule","createGasFreeModule","FeeCalculator","createFeeCalculator"],"sourceRoot":"../../../../src","sources":["features/gas-free/index.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;;AAEA;AACA,SAASA,aAAa,EAAEC,mBAAmB,QAAQ,oBAAiB;;AAEpE;AACA,cAAc,kBAAS;;AAEvB;AACA,SAASC,aAAa,EAAEC,mBAAmB,QAAQ,kBAAS;;AAE5D;AACA,cAAc,mBAAU","ignoreList":[]}
@@ -1 +1 @@
1
- {"version":3,"names":["isQuoteExpired","quote","Date","expiresAt","getQuoteTimeRemaining","getTime","now","getTotalMiningValue","miningUTXO","value"],"sourceRoot":"../../../../../src","sources":["features/gas-free/types/FeeQuote.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAYA;AACA;AACA;;AAQA;AACA;AACA;;AAoCA;AACA;AACA;;AAcA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,cAAcA,CAACC,KAAe,EAAW;EACvD,OAAO,IAAIC,IAAI,CAAC,CAAC,IAAI,IAAIA,IAAI,CAACD,KAAK,CAACE,SAAS,CAAC;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAACH,KAAe,EAAU;EAC7D,OAAO,IAAIC,IAAI,CAACD,KAAK,CAACE,SAAS,CAAC,CAACE,OAAO,CAAC,CAAC,GAAGH,IAAI,CAACI,GAAG,CAAC,CAAC;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CAACN,KAAe,EAAU;EAC3D,OAAOA,KAAK,CAACO,UAAU,CAACC,KAAK;AAC/B","ignoreList":[]}
1
+ {"version":3,"names":["isQuoteExpired","quote","Date","expiresAt","getQuoteTimeRemaining","getTime","now","getTotalMiningValue","miningUTXO","value"],"sourceRoot":"../../../../../src","sources":["features/gas-free/types/FeeQuote.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAYA;AACA;AACA;;AAQA;AACA;AACA;;AAoCA;AACA;AACA;;AAgBA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASA,cAAcA,CAACC,KAAe,EAAW;EACvD,OAAO,IAAIC,IAAI,CAAC,CAAC,IAAI,IAAIA,IAAI,CAACD,KAAK,CAACE,SAAS,CAAC;AAChD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,qBAAqBA,CAACH,KAAe,EAAU;EAC7D,OAAO,IAAIC,IAAI,CAACD,KAAK,CAACE,SAAS,CAAC,CAACE,OAAO,CAAC,CAAC,GAAGH,IAAI,CAACI,GAAG,CAAC,CAAC;AACzD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,mBAAmBA,CAACN,KAAe,EAAU;EAC3D,OAAOA,KAAK,CAACO,UAAU,CAACC,KAAK;AAC/B","ignoreList":[]}
@@ -0,0 +1,218 @@
1
+ "use strict";
2
+
3
+ /**
4
+ * Fee Calculator
5
+ *
6
+ * Provides local fee calculation for gas-free transfers.
7
+ * Calculates service fees based on transfer amounts using a simple percentage-based model.
8
+ *
9
+ * Fee Structure:
10
+ * - Base rate: 0.1% (0.001)
11
+ * - Minimum fee: $0.50 (floor dominates until $500)
12
+ * - Maximum fee: $10.00 (cap applies above $10,000)
13
+ *
14
+ * Assumptions:
15
+ * - 1 asset unit (no precision) = 1 USD (will be fetched dynamically in the future)
16
+ * - Default precision: 6 decimals
17
+ *
18
+ * Examples:
19
+ * - Transfer $100: $0.50 fee (minimum applies)
20
+ * - Transfer $500: $0.50 fee (0.1% × $500 = $0.50 exactly)
21
+ * - Transfer $1,000: $1.00 fee (0.1% applies)
22
+ * - Transfer $10,000: $10.00 fee (0.1% × $10,000 = $10.00, cap reached)
23
+ * - Transfer $50,000: $10.00 fee (maximum cap applies)
24
+ *
25
+ * @module features/gas-free/utils/FeeCalculator
26
+ */
27
+
28
+ /**
29
+ * Fee calculator for gas-free transfers
30
+ *
31
+ * Uses a simple percentage-based pricing model with floor and cap.
32
+ */
33
+ export class FeeCalculator {
34
+ assetToUsdRate = 1; // 1 asset unit (no precision) = 1 USD
35
+ assetPrecision = 6; // Default precision
36
+
37
+ // Fee calculation parameters
38
+ FEE_RATE = 0.001; // 0.1%
39
+ MIN_FEE = 0.5; // $0.50 minimum (floor)
40
+ MAX_FEE = 10.0; // $10.00 maximum (cap)
41
+
42
+ /**
43
+ * Create a fee estimator with default parameters
44
+ */
45
+ constructor() {
46
+ // No configuration needed - fixed parameters
47
+ }
48
+
49
+ /**
50
+ * Calculate service fee in USD based on transfer amount
51
+ *
52
+ * Uses a simple percentage-based model with floor and cap:
53
+ * - 0.1% of transfer amount
54
+ * - Minimum: $0.50 (applies for amounts < $500)
55
+ * - Maximum: $10.00 (applies for amounts > $10,000)
56
+ *
57
+ * @param amountUsd - Transfer amount in USD
58
+ * @returns Fee in USD
59
+ * @throws Error if amount is invalid
60
+ *
61
+ * @example
62
+ * ```typescript
63
+ * const calculator = new FeeCalculator();
64
+ * console.log(calculator.calculateFee(100)); // $0.50 (minimum)
65
+ * console.log(calculator.calculateFee(500)); // $0.50 (0.1% × $500)
66
+ * console.log(calculator.calculateFee(1000)); // $1.00 (0.1% × $1000)
67
+ * console.log(calculator.calculateFee(10000)); // $10.00 (0.1% × $10000, cap reached)
68
+ * console.log(calculator.calculateFee(50000)); // $10.00 (maximum cap)
69
+ * ```
70
+ */
71
+ calculateFee(amountUsd) {
72
+ if (amountUsd < 0) {
73
+ throw new Error('Amount cannot be negative');
74
+ }
75
+ if (!Number.isFinite(amountUsd)) {
76
+ throw new Error('Amount must be a valid number');
77
+ }
78
+
79
+ // Calculate percentage-based fee
80
+ const percentageFee = amountUsd * this.FEE_RATE;
81
+
82
+ // Apply floor (minimum) and cap (maximum)
83
+ const feeUsd = Math.max(this.MIN_FEE, Math.min(this.MAX_FEE, percentageFee));
84
+ return feeUsd;
85
+ }
86
+
87
+ /**
88
+ * Estimate service fee in RGB asset base units
89
+ *
90
+ * This method uses hardcoded parameters (1:1 USD rate, precision 6) to estimate fees.
91
+ *
92
+ * Steps:
93
+ * 1. Converts transfer amount from base units to asset units
94
+ * 2. Converts asset units to USD (1:1 rate)
95
+ * 3. Calculates fee in USD (0.1% with $0.50 min, $10 max)
96
+ * 4. Converts fee back to asset base units
97
+ *
98
+ * @param transferAmount - Amount being transferred in base units (e.g., 100250000 for 100.25 TUSDT with precision 6)
99
+ * @param assetToUsdRate - Conversion rate from asset to USD (optional, defaults to 1)
100
+ * @param assetPrecision - Asset precision exponent (optional, defaults to 6)
101
+ * @returns Object with fee in asset base units, USD, and effective percentage
102
+ * @throws Error if inputs are invalid
103
+ *
104
+ * @example
105
+ * ```typescript
106
+ * const calculator = new FeeCalculator();
107
+ *
108
+ * // Transfer 100 TUSDT (100000000 base units with precision 6)
109
+ * const result1 = calculator.estimateFeeInAsset(100000000, 1, 6);
110
+ * console.log(`Fee: ${result1.feeInAsset} base units`); // 500000 ($0.50 minimum)
111
+ * console.log(`Fee: $${result1.feeUsd}`); // $0.50
112
+ *
113
+ * // Transfer 1,000 TUSDT (1000000000 base units)
114
+ * const result2 = calculator.estimateFeeInAsset(1000000000, 1, 6);
115
+ * console.log(`Fee: ${result2.feeInAsset} base units`); // 1000000 ($1.00)
116
+ * console.log(`Fee: $${result2.feeUsd}`); // $1.00
117
+ * console.log(`Rate: ${result2.effectivePercentage}%`); // 0.1%
118
+ * ```
119
+ */
120
+ estimateFeeInAsset(transferAmount, assetToUsdRate, assetPrecision) {
121
+ // Use provided values or defaults
122
+ const rate = assetToUsdRate ?? this.assetToUsdRate;
123
+ const precision = assetPrecision ?? this.assetPrecision;
124
+
125
+ // Validate inputs
126
+ if (transferAmount < 0) {
127
+ throw new Error('Transfer amount cannot be negative');
128
+ }
129
+ if (!Number.isFinite(transferAmount)) {
130
+ throw new Error('Transfer amount must be a valid number');
131
+ }
132
+ if (rate <= 0) {
133
+ throw new Error('Asset to USD rate must be positive');
134
+ }
135
+ if (!Number.isFinite(rate)) {
136
+ throw new Error('Asset to USD rate must be a valid number');
137
+ }
138
+ if (precision <= 0 || !Number.isInteger(precision)) {
139
+ throw new Error('Asset precision must be a positive integer');
140
+ }
141
+
142
+ // Step 1: Convert transfer amount from base units to asset units
143
+ const transferAmountInAssetUnits = transferAmount / Math.pow(10, precision);
144
+
145
+ // Step 2: Convert to USD
146
+ const transferAmountUsd = transferAmountInAssetUnits * rate;
147
+
148
+ // Step 3: Calculate fee in USD using amount-based formula
149
+ const feeUsd = this.calculateFee(transferAmountUsd);
150
+
151
+ // Step 4: Convert USD fee to asset base units
152
+ // USD → asset units → base units (with precision)
153
+ const feeInAssetUnits = feeUsd / rate;
154
+ const feeInAsset = Math.round(feeInAssetUnits * Math.pow(10, precision));
155
+
156
+ // Calculate effective percentage for tracking
157
+ const effectivePercentage = feeUsd / transferAmountUsd * 100;
158
+ return {
159
+ feeInAsset,
160
+ feeUsd,
161
+ effectivePercentage
162
+ };
163
+ }
164
+
165
+ /**
166
+ * Get the current asset to USD exchange rate
167
+ */
168
+ getAssetToUsdRate() {
169
+ return this.assetToUsdRate;
170
+ }
171
+
172
+ /**
173
+ * Get the current asset precision
174
+ */
175
+ getAssetPrecision() {
176
+ return this.assetPrecision;
177
+ }
178
+
179
+ /**
180
+ * Get the fee rate (0.1%)
181
+ */
182
+ getFeeRate() {
183
+ return this.FEE_RATE;
184
+ }
185
+
186
+ /**
187
+ * Get the minimum fee ($0.50)
188
+ */
189
+ getMinFee() {
190
+ return this.MIN_FEE;
191
+ }
192
+
193
+ /**
194
+ * Get the maximum fee ($10.00)
195
+ */
196
+ getMaxFee() {
197
+ return this.MAX_FEE;
198
+ }
199
+ }
200
+
201
+ /**
202
+ * Create a default fee calculator instance
203
+ *
204
+ * @returns FeeCalculator instance
205
+ *
206
+ * @example
207
+ * ```typescript
208
+ * import { createFeeCalculator } from './FeeCalculator';
209
+ *
210
+ * const calculator = createFeeCalculator();
211
+ * const fee = calculator.estimateFeeInAsset(100000000); // 100 TUSDT
212
+ * console.log(`Fee: $${fee.feeUsd}`); // $0.50 (minimum applies)
213
+ * ```
214
+ */
215
+ export function createFeeCalculator() {
216
+ return new FeeCalculator();
217
+ }
218
+ //# sourceMappingURL=FeeCalculator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["FeeCalculator","assetToUsdRate","assetPrecision","FEE_RATE","MIN_FEE","MAX_FEE","constructor","calculateFee","amountUsd","Error","Number","isFinite","percentageFee","feeUsd","Math","max","min","estimateFeeInAsset","transferAmount","rate","precision","isInteger","transferAmountInAssetUnits","pow","transferAmountUsd","feeInAssetUnits","feeInAsset","round","effectivePercentage","getAssetToUsdRate","getAssetPrecision","getFeeRate","getMinFee","getMaxFee","createFeeCalculator"],"sourceRoot":"../../../../../src","sources":["features/gas-free/utils/FeeCalculator.ts"],"mappings":";;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO,MAAMA,aAAa,CAAC;EACRC,cAAc,GAAW,CAAC,CAAC,CAAC;EAC5BC,cAAc,GAAW,CAAC,CAAC,CAAC;;EAE7C;EACiBC,QAAQ,GAAG,KAAK,CAAC,CAAC;EAClBC,OAAO,GAAG,GAAG,CAAC,CAAC;EACfC,OAAO,GAAG,IAAI,CAAC,CAAC;;EAEjC;AACF;AACA;EACEC,WAAWA,CAAA,EAAG;IACZ;EAAA;;EAGF;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACSC,YAAYA,CAACC,SAAiB,EAAU;IAC7C,IAAIA,SAAS,GAAG,CAAC,EAAE;MACjB,MAAM,IAAIC,KAAK,CAAC,2BAA2B,CAAC;IAC9C;IAEA,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACH,SAAS,CAAC,EAAE;MAC/B,MAAM,IAAIC,KAAK,CAAC,+BAA+B,CAAC;IAClD;;IAEA;IACA,MAAMG,aAAa,GAAGJ,SAAS,GAAG,IAAI,CAACL,QAAQ;;IAE/C;IACA,MAAMU,MAAM,GAAGC,IAAI,CAACC,GAAG,CACrB,IAAI,CAACX,OAAO,EACZU,IAAI,CAACE,GAAG,CAAC,IAAI,CAACX,OAAO,EAAEO,aAAa,CACtC,CAAC;IAED,OAAOC,MAAM;EACf;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACSI,kBAAkBA,CACvBC,cAAsB,EACtBjB,cAAuB,EACvBC,cAAuB,EAC8C;IACrE;IACA,MAAMiB,IAAI,GAAGlB,cAAc,IAAI,IAAI,CAACA,cAAc;IAClD,MAAMmB,SAAS,GAAGlB,cAAc,IAAI,IAAI,CAACA,cAAc;;IAEvD;IACA,IAAIgB,cAAc,GAAG,CAAC,EAAE;MACtB,MAAM,IAAIT,KAAK,CAAC,oCAAoC,CAAC;IACvD;IAEA,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACO,cAAc,CAAC,EAAE;MACpC,MAAM,IAAIT,KAAK,CAAC,wCAAwC,CAAC;IAC3D;IAEA,IAAIU,IAAI,IAAI,CAAC,EAAE;MACb,MAAM,IAAIV,KAAK,CAAC,oCAAoC,CAAC;IACvD;IAEA,IAAI,CAACC,MAAM,CAACC,QAAQ,CAACQ,IAAI,CAAC,EAAE;MAC1B,MAAM,IAAIV,KAAK,CAAC,0CAA0C,CAAC;IAC7D;IAEA,IAAIW,SAAS,IAAI,CAAC,IAAI,CAACV,MAAM,CAACW,SAAS,CAACD,SAAS,CAAC,EAAE;MAClD,MAAM,IAAIX,KAAK,CAAC,4CAA4C,CAAC;IAC/D;;IAEA;IACA,MAAMa,0BAA0B,GAAGJ,cAAc,GAAGJ,IAAI,CAACS,GAAG,CAAC,EAAE,EAAEH,SAAS,CAAC;;IAE3E;IACA,MAAMI,iBAAiB,GAAGF,0BAA0B,GAAGH,IAAI;;IAE3D;IACA,MAAMN,MAAM,GAAG,IAAI,CAACN,YAAY,CAACiB,iBAAiB,CAAC;;IAEnD;IACA;IACA,MAAMC,eAAe,GAAGZ,MAAM,GAAGM,IAAI;IACrC,MAAMO,UAAU,GAAGZ,IAAI,CAACa,KAAK,CAACF,eAAe,GAAGX,IAAI,CAACS,GAAG,CAAC,EAAE,EAAEH,SAAS,CAAC,CAAC;;IAExE;IACA,MAAMQ,mBAAmB,GAAIf,MAAM,GAAGW,iBAAiB,GAAI,GAAG;IAE9D,OAAO;MACLE,UAAU;MACVb,MAAM;MACNe;IACF,CAAC;EACH;;EAEA;AACF;AACA;EACSC,iBAAiBA,CAAA,EAAW;IACjC,OAAO,IAAI,CAAC5B,cAAc;EAC5B;;EAEA;AACF;AACA;EACS6B,iBAAiBA,CAAA,EAAW;IACjC,OAAO,IAAI,CAAC5B,cAAc;EAC5B;;EAEA;AACF;AACA;EACS6B,UAAUA,CAAA,EAAW;IAC1B,OAAO,IAAI,CAAC5B,QAAQ;EACtB;;EAEA;AACF;AACA;EACS6B,SAASA,CAAA,EAAW;IACzB,OAAO,IAAI,CAAC5B,OAAO;EACrB;;EAEA;AACF;AACA;EACS6B,SAASA,CAAA,EAAW;IACzB,OAAO,IAAI,CAAC5B,OAAO;EACrB;AACF;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAAS6B,mBAAmBA,CAAA,EAAkB;EACnD,OAAO,IAAIlC,aAAa,CAAC,CAAC;AAC5B","ignoreList":[]}