@defuse-protocol/intents-sdk 0.55.1 → 0.56.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.
@@ -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/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.0",
4
4
  "private": false,
5
5
  "type": "module",
6
6
  "repository": {
@@ -46,7 +46,7 @@
46
46
  "valibot": "^1.0.0",
47
47
  "viem": "^2.0.0",
48
48
  "@defuse-protocol/contract-types": "0.6.2",
49
- "@defuse-protocol/internal-utils": "0.28.4"
49
+ "@defuse-protocol/internal-utils": "0.29.0"
50
50
  },
51
51
  "devDependencies": {
52
52
  "tsdown": "0.19.0"