@defuse-protocol/intents-sdk 0.55.1 → 0.56.1

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.
@@ -41,7 +41,8 @@ const caip2Mapping = {
41
41
  [require_caip2.Chains.Cardano]: "cardano:mainnet",
42
42
  [require_caip2.Chains.Litecoin]: "ltc:mainnet",
43
43
  [require_caip2.Chains.Starknet]: "starknet:mainnet",
44
- [require_caip2.Chains.Aleo]: "aleo:mainnet"
44
+ [require_caip2.Chains.Aleo]: "aleo:mainnet",
45
+ [require_caip2.Chains.Dash]: "dash:mainnet"
45
46
  };
46
47
  function toPoaNetwork(caip2) {
47
48
  if (caip2Mapping[caip2] == null) throw new Error(`Unsupported POA Bridge chain = ${caip2}`);
@@ -65,7 +66,8 @@ const tokenPrefixMapping = {
65
66
  cardano: require_caip2.Chains.Cardano,
66
67
  ltc: require_caip2.Chains.Litecoin,
67
68
  starknet: require_caip2.Chains.Starknet,
68
- aleo: require_caip2.Chains.Aleo
69
+ aleo: require_caip2.Chains.Aleo,
70
+ dash: require_caip2.Chains.Dash
69
71
  };
70
72
  function contractIdToCaip2(contractId) {
71
73
  for (const [prefix, caip2] of Object.entries(tokenPrefixMapping)) if (contractId.startsWith(`${prefix}.`) || contractId.startsWith(`${prefix}-`)) return caip2;
@@ -40,7 +40,8 @@ const caip2Mapping = {
40
40
  [Chains.Cardano]: "cardano:mainnet",
41
41
  [Chains.Litecoin]: "ltc:mainnet",
42
42
  [Chains.Starknet]: "starknet:mainnet",
43
- [Chains.Aleo]: "aleo:mainnet"
43
+ [Chains.Aleo]: "aleo:mainnet",
44
+ [Chains.Dash]: "dash:mainnet"
44
45
  };
45
46
  function toPoaNetwork(caip2) {
46
47
  if (caip2Mapping[caip2] == null) throw new Error(`Unsupported POA Bridge chain = ${caip2}`);
@@ -64,7 +65,8 @@ const tokenPrefixMapping = {
64
65
  cardano: Chains.Cardano,
65
66
  ltc: Chains.Litecoin,
66
67
  starknet: Chains.Starknet,
67
- aleo: Chains.Aleo
68
+ aleo: Chains.Aleo,
69
+ dash: Chains.Dash
68
70
  };
69
71
  function contractIdToCaip2(contractId) {
70
72
  for (const [prefix, caip2] of Object.entries(tokenPrefixMapping)) if (contractId.startsWith(`${prefix}.`) || contractId.startsWith(`${prefix}-`)) return caip2;
@@ -35,7 +35,8 @@ const Chains = {
35
35
  Starknet: "starknet:SN_MAIN",
36
36
  Plasma: "eip155:9745",
37
37
  Scroll: "eip155:534352",
38
- Aleo: "aleo:0"
38
+ Aleo: "aleo:0",
39
+ Dash: "bip122:00000ffd590b1485b3caadc19b22e637"
39
40
  };
40
41
  function getEIP155ChainId(chain) {
41
42
  (0, _defuse_protocol_internal_utils.assert)(chain.startsWith("eip155:"), "Chain is not an EIP-155 chain");
@@ -33,6 +33,7 @@ declare const Chains: {
33
33
  readonly Plasma: "eip155:9745";
34
34
  readonly Scroll: "eip155:534352";
35
35
  readonly Aleo: "aleo:0";
36
+ readonly Dash: "bip122:00000ffd590b1485b3caadc19b22e637";
36
37
  };
37
38
  type Chain = (typeof Chains)[keyof typeof Chains];
38
39
  //#endregion
@@ -33,6 +33,7 @@ declare const Chains: {
33
33
  readonly Plasma: "eip155:9745";
34
34
  readonly Scroll: "eip155:534352";
35
35
  readonly Aleo: "aleo:0";
36
+ readonly Dash: "bip122:00000ffd590b1485b3caadc19b22e637";
36
37
  };
37
38
  type Chain = (typeof Chains)[keyof typeof Chains];
38
39
  //#endregion
@@ -34,7 +34,8 @@ const Chains = {
34
34
  Starknet: "starknet:SN_MAIN",
35
35
  Plasma: "eip155:9745",
36
36
  Scroll: "eip155:534352",
37
- Aleo: "aleo:0"
37
+ Aleo: "aleo:0",
38
+ Dash: "bip122:00000ffd590b1485b3caadc19b22e637"
38
39
  };
39
40
  function getEIP155ChainId(chain) {
40
41
  assert(chain.startsWith("eip155:"), "Chain is not an EIP-155 chain");
@@ -47,6 +47,7 @@ function validateAddress(address, blockchain) {
47
47
  case require_caip2.Chains.Plasma:
48
48
  case require_caip2.Chains.Scroll: return validateEthAddress(address);
49
49
  case require_caip2.Chains.Aleo: return validateAleoAddress(address);
50
+ case require_caip2.Chains.Dash: return validateDashAddress(address);
50
51
  default: return false;
51
52
  }
52
53
  }
@@ -415,6 +416,21 @@ function validateAleoAddress(address) {
415
416
  return false;
416
417
  }
417
418
  }
419
+ function validateDashAddress(address) {
420
+ try {
421
+ const decoded = _scure_base.base58.decode(address);
422
+ if (decoded.length !== 25) return false;
423
+ const version = decoded[0];
424
+ if (version !== 76 && version !== 16) return false;
425
+ const payload = decoded.subarray(0, 21);
426
+ const checksum = decoded.subarray(21, 25);
427
+ const expectedChecksum = (0, _noble_hashes_sha2.sha256)((0, _noble_hashes_sha2.sha256)(payload)).subarray(0, 4);
428
+ for (let i = 0; i < 4; i++) if (checksum[i] !== expectedChecksum[i]) return false;
429
+ return true;
430
+ } catch {
431
+ return false;
432
+ }
433
+ }
418
434
 
419
435
  //#endregion
420
436
  exports.validateAddress = validateAddress;
@@ -46,6 +46,7 @@ function validateAddress(address, blockchain) {
46
46
  case Chains.Plasma:
47
47
  case Chains.Scroll: return validateEthAddress(address);
48
48
  case Chains.Aleo: return validateAleoAddress(address);
49
+ case Chains.Dash: return validateDashAddress(address);
49
50
  default: return false;
50
51
  }
51
52
  }
@@ -414,6 +415,21 @@ function validateAleoAddress(address) {
414
415
  return false;
415
416
  }
416
417
  }
418
+ function validateDashAddress(address) {
419
+ try {
420
+ const decoded = base58.decode(address);
421
+ if (decoded.length !== 25) return false;
422
+ const version = decoded[0];
423
+ if (version !== 76 && version !== 16) return false;
424
+ const payload = decoded.subarray(0, 21);
425
+ const checksum = decoded.subarray(21, 25);
426
+ const expectedChecksum = sha256(sha256(payload)).subarray(0, 4);
427
+ for (let i = 0; i < 4; i++) if (checksum[i] !== expectedChecksum[i]) return false;
428
+ return true;
429
+ } catch {
430
+ return false;
431
+ }
432
+ }
417
433
 
418
434
  //#endregion
419
435
  export { validateAddress };
package/dist/src/sdk.cjs CHANGED
@@ -407,10 +407,12 @@ var IntentsSDK = class {
407
407
  intent: args.intent,
408
408
  logger: args.logger
409
409
  });
410
+ args.logger?.info("Intent published", { intentHash });
410
411
  const intentTx = await this.waitForIntentSettlement({
411
412
  intentHash,
412
413
  logger: args.logger
413
414
  });
415
+ args.logger?.info("Intent settled", { txHash: intentTx.hash });
414
416
  const destinationTx = await this.waitForWithdrawalCompletion({
415
417
  withdrawalParams,
416
418
  intentTx,
package/dist/src/sdk.js CHANGED
@@ -405,10 +405,12 @@ var IntentsSDK = class {
405
405
  intent: args.intent,
406
406
  logger: args.logger
407
407
  });
408
+ args.logger?.info("Intent published", { intentHash });
408
409
  const intentTx = await this.waitForIntentSettlement({
409
410
  intentHash,
410
411
  logger: args.logger
411
412
  });
413
+ args.logger?.info("Intent settled", { txHash: intentTx.hash });
412
414
  const destinationTx = await this.waitForWithdrawalCompletion({
413
415
  withdrawalParams,
414
416
  intentTx,
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@defuse-protocol/intents-sdk",
3
- "version": "0.55.1",
3
+ "version": "0.56.1",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "repository": {
@@ -45,8 +45,8 @@
45
45
  "ripple-address-codec": "^5.0.0",
46
46
  "valibot": "^1.0.0",
47
47
  "viem": "^2.0.0",
48
- "@defuse-protocol/contract-types": "0.6.2",
49
- "@defuse-protocol/internal-utils": "0.28.4"
48
+ "@defuse-protocol/internal-utils": "0.29.0",
49
+ "@defuse-protocol/contract-types": "0.6.2"
50
50
  },
51
51
  "devDependencies": {
52
52
  "tsdown": "0.19.0"