sushi 6.4.4 → 6.4.6
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.
- package/_cjs/evm/config/simple-constants.js +2 -2
- package/_cjs/evm/config/simple-constants.js.map +1 -1
- package/_cjs/evm/currency/currency.js +1 -1
- package/_cjs/evm/currency/currency.js.map +1 -1
- package/_cjs/evm/currency/token.js +2 -1
- package/_cjs/evm/currency/token.js.map +1 -1
- package/_cjs/evm/utils/index.js +1 -0
- package/_cjs/evm/utils/index.js.map +1 -1
- package/_cjs/evm/utils/normalize-address.js +7 -0
- package/_cjs/evm/utils/normalize-address.js.map +1 -0
- package/_cjs/generic/types/for-chain.js +3 -0
- package/_cjs/generic/types/for-chain.js.map +1 -0
- package/_cjs/generic/utils/assert-never.js +8 -0
- package/_cjs/generic/utils/assert-never.js.map +1 -0
- package/_cjs/generic/utils/id.js +9 -9
- package/_cjs/generic/utils/id.js.map +1 -1
- package/_cjs/generic/utils/index.js +3 -0
- package/_cjs/generic/utils/index.js.map +1 -1
- package/_cjs/generic/utils/native-address.js +38 -0
- package/_cjs/generic/utils/native-address.js.map +1 -0
- package/_cjs/generic/utils/normalize-address.js +38 -0
- package/_cjs/generic/utils/normalize-address.js.map +1 -0
- package/_cjs/kvm/config/index.js +18 -0
- package/_cjs/kvm/config/index.js.map +1 -0
- package/_cjs/kvm/config/simple-constants.js +5 -0
- package/_cjs/kvm/config/simple-constants.js.map +1 -0
- package/_cjs/kvm/index.js +2 -0
- package/_cjs/kvm/index.js.map +1 -1
- package/_cjs/kvm/utils/index.js +18 -0
- package/_cjs/kvm/utils/index.js.map +1 -0
- package/_cjs/kvm/utils/normalize-address.js +7 -0
- package/_cjs/kvm/utils/normalize-address.js.map +1 -0
- package/_cjs/mvm/config/index.js +18 -0
- package/_cjs/mvm/config/index.js.map +1 -0
- package/_cjs/mvm/config/simple-constants.js +5 -0
- package/_cjs/mvm/config/simple-constants.js.map +1 -0
- package/_cjs/mvm/currency/token.js +2 -1
- package/_cjs/mvm/currency/token.js.map +1 -1
- package/_cjs/mvm/index.js +2 -0
- package/_cjs/mvm/index.js.map +1 -1
- package/_cjs/mvm/utils/index.js +18 -0
- package/_cjs/mvm/utils/index.js.map +1 -0
- package/_cjs/mvm/utils/normalize-address.js +7 -0
- package/_cjs/mvm/utils/normalize-address.js.map +1 -0
- package/_cjs/stellar/address.js +8 -0
- package/_cjs/stellar/address.js.map +1 -0
- package/_cjs/stellar/config/index.js +18 -0
- package/_cjs/stellar/config/index.js.map +1 -0
- package/_cjs/stellar/config/simple-constants.js +5 -0
- package/_cjs/stellar/config/simple-constants.js.map +1 -0
- package/_cjs/stellar/index.js +3 -0
- package/_cjs/stellar/index.js.map +1 -1
- package/_cjs/stellar/utils/index.js +18 -0
- package/_cjs/stellar/utils/index.js.map +1 -0
- package/_cjs/stellar/utils/normalize-address.js +7 -0
- package/_cjs/stellar/utils/normalize-address.js.map +1 -0
- package/_cjs/svm/currency/token.js +3 -2
- package/_cjs/svm/currency/token.js.map +1 -1
- package/_cjs/svm/index.js +1 -0
- package/_cjs/svm/index.js.map +1 -1
- package/_cjs/{generic/types/address.js → svm/types/id.js} +1 -1
- package/_cjs/svm/types/id.js.map +1 -0
- package/_cjs/svm/utils/index.js +18 -0
- package/_cjs/svm/utils/index.js.map +1 -0
- package/_cjs/svm/utils/normalize-address.js +7 -0
- package/_cjs/svm/utils/normalize-address.js.map +1 -0
- package/_cjs/tvm/config/index.js +1 -0
- package/_cjs/tvm/config/index.js.map +1 -1
- package/_cjs/tvm/config/simple-constants.js +5 -0
- package/_cjs/tvm/config/simple-constants.js.map +1 -0
- package/_cjs/tvm/currency/token.js +2 -1
- package/_cjs/tvm/currency/token.js.map +1 -1
- package/_cjs/tvm/index.js +1 -0
- package/_cjs/tvm/index.js.map +1 -1
- package/_cjs/tvm/utils/index.js +18 -0
- package/_cjs/tvm/utils/index.js.map +1 -0
- package/_cjs/tvm/utils/normalize-address.js +7 -0
- package/_cjs/tvm/utils/normalize-address.js.map +1 -0
- package/_esm/evm/config/simple-constants.js +1 -1
- package/_esm/evm/config/simple-constants.js.map +1 -1
- package/_esm/evm/currency/currency.js +2 -2
- package/_esm/evm/currency/currency.js.map +1 -1
- package/_esm/evm/currency/token.js +2 -1
- package/_esm/evm/currency/token.js.map +1 -1
- package/_esm/evm/utils/index.js +1 -0
- package/_esm/evm/utils/index.js.map +1 -1
- package/_esm/evm/utils/normalize-address.js +4 -0
- package/_esm/evm/utils/normalize-address.js.map +1 -0
- package/_esm/generic/types/for-chain.js +2 -0
- package/_esm/generic/types/for-chain.js.map +1 -0
- package/_esm/generic/utils/assert-never.js +5 -0
- package/_esm/generic/utils/assert-never.js.map +1 -0
- package/_esm/generic/utils/id.js +9 -10
- package/_esm/generic/utils/id.js.map +1 -1
- package/_esm/generic/utils/index.js +3 -0
- package/_esm/generic/utils/index.js.map +1 -1
- package/_esm/generic/utils/native-address.js +35 -0
- package/_esm/generic/utils/native-address.js.map +1 -0
- package/_esm/generic/utils/normalize-address.js +35 -0
- package/_esm/generic/utils/normalize-address.js.map +1 -0
- package/_esm/kvm/config/index.js +2 -0
- package/_esm/kvm/config/index.js.map +1 -0
- package/_esm/kvm/config/simple-constants.js +2 -0
- package/_esm/kvm/config/simple-constants.js.map +1 -0
- package/_esm/kvm/index.js +2 -0
- package/_esm/kvm/index.js.map +1 -1
- package/_esm/kvm/utils/index.js +2 -0
- package/_esm/kvm/utils/index.js.map +1 -0
- package/_esm/kvm/utils/normalize-address.js +4 -0
- package/_esm/kvm/utils/normalize-address.js.map +1 -0
- package/_esm/mvm/config/index.js +2 -0
- package/_esm/mvm/config/index.js.map +1 -0
- package/_esm/mvm/config/simple-constants.js +2 -0
- package/_esm/mvm/config/simple-constants.js.map +1 -0
- package/_esm/mvm/currency/token.js +2 -1
- package/_esm/mvm/currency/token.js.map +1 -1
- package/_esm/mvm/index.js +2 -0
- package/_esm/mvm/index.js.map +1 -1
- package/_esm/mvm/utils/index.js +2 -0
- package/_esm/mvm/utils/index.js.map +1 -0
- package/_esm/mvm/utils/normalize-address.js +4 -0
- package/_esm/mvm/utils/normalize-address.js.map +1 -0
- package/_esm/stellar/address.js +5 -0
- package/_esm/stellar/address.js.map +1 -0
- package/_esm/stellar/config/index.js +2 -0
- package/_esm/stellar/config/index.js.map +1 -0
- package/_esm/stellar/config/simple-constants.js +2 -0
- package/_esm/stellar/config/simple-constants.js.map +1 -0
- package/_esm/stellar/index.js +3 -0
- package/_esm/stellar/index.js.map +1 -1
- package/_esm/stellar/utils/index.js +2 -0
- package/_esm/stellar/utils/index.js.map +1 -0
- package/_esm/stellar/utils/normalize-address.js +4 -0
- package/_esm/stellar/utils/normalize-address.js.map +1 -0
- package/_esm/svm/currency/token.js +3 -2
- package/_esm/svm/currency/token.js.map +1 -1
- package/_esm/svm/index.js +1 -0
- package/_esm/svm/index.js.map +1 -1
- package/_esm/svm/types/id.js +2 -0
- package/_esm/svm/types/id.js.map +1 -0
- package/_esm/svm/utils/index.js +2 -0
- package/_esm/svm/utils/index.js.map +1 -0
- package/_esm/svm/utils/normalize-address.js +4 -0
- package/_esm/svm/utils/normalize-address.js.map +1 -0
- package/_esm/tvm/config/index.js +1 -0
- package/_esm/tvm/config/index.js.map +1 -1
- package/_esm/tvm/config/simple-constants.js +2 -0
- package/_esm/tvm/config/simple-constants.js.map +1 -0
- package/_esm/tvm/currency/token.js +2 -1
- package/_esm/tvm/currency/token.js.map +1 -1
- package/_esm/tvm/index.js +1 -0
- package/_esm/tvm/index.js.map +1 -1
- package/_esm/tvm/utils/index.js +2 -0
- package/_esm/tvm/utils/index.js.map +1 -0
- package/_esm/tvm/utils/normalize-address.js +4 -0
- package/_esm/tvm/utils/normalize-address.js.map +1 -0
- package/_types/evm/config/simple-constants.d.ts +1 -1
- package/_types/evm/config/simple-constants.d.ts.map +1 -1
- package/_types/evm/currency/native.d.ts +1 -1
- package/_types/evm/currency/native.d.ts.map +1 -1
- package/_types/evm/currency/token.d.ts.map +1 -1
- package/_types/evm/utils/index.d.ts +1 -0
- package/_types/evm/utils/index.d.ts.map +1 -1
- package/_types/evm/utils/normalize-address.d.ts +3 -0
- package/_types/evm/utils/normalize-address.d.ts.map +1 -0
- package/_types/generic/types/for-chain.d.ts +24 -0
- package/_types/generic/types/for-chain.d.ts.map +1 -0
- package/_types/generic/types/index.d.ts +1 -1
- package/_types/generic/types/index.d.ts.map +1 -1
- package/_types/generic/utils/assert-never.d.ts +2 -0
- package/_types/generic/utils/assert-never.d.ts.map +1 -0
- package/_types/generic/utils/id.d.ts +3 -2
- package/_types/generic/utils/id.d.ts.map +1 -1
- package/_types/generic/utils/index.d.ts +3 -0
- package/_types/generic/utils/index.d.ts.map +1 -1
- package/_types/generic/utils/native-address.d.ts +4 -0
- package/_types/generic/utils/native-address.d.ts.map +1 -0
- package/_types/generic/utils/normalize-address.d.ts +4 -0
- package/_types/generic/utils/normalize-address.d.ts.map +1 -0
- package/_types/kvm/config/index.d.ts +2 -0
- package/_types/kvm/config/index.d.ts.map +1 -0
- package/_types/kvm/config/simple-constants.d.ts +3 -0
- package/_types/kvm/config/simple-constants.d.ts.map +1 -0
- package/_types/kvm/index.d.ts +2 -0
- package/_types/kvm/index.d.ts.map +1 -1
- package/_types/kvm/utils/index.d.ts +2 -0
- package/_types/kvm/utils/index.d.ts.map +1 -0
- package/_types/kvm/utils/normalize-address.d.ts +3 -0
- package/_types/kvm/utils/normalize-address.d.ts.map +1 -0
- package/_types/mvm/config/index.d.ts +2 -0
- package/_types/mvm/config/index.d.ts.map +1 -0
- package/_types/mvm/config/simple-constants.d.ts +3 -0
- package/_types/mvm/config/simple-constants.d.ts.map +1 -0
- package/_types/mvm/currency/token.d.ts.map +1 -1
- package/_types/mvm/index.d.ts +2 -0
- package/_types/mvm/index.d.ts.map +1 -1
- package/_types/mvm/utils/index.d.ts +2 -0
- package/_types/mvm/utils/index.d.ts.map +1 -0
- package/_types/mvm/utils/normalize-address.d.ts +3 -0
- package/_types/mvm/utils/normalize-address.d.ts.map +1 -0
- package/_types/stellar/address.d.ts +3 -0
- package/_types/stellar/address.d.ts.map +1 -0
- package/_types/stellar/config/index.d.ts +2 -0
- package/_types/stellar/config/index.d.ts.map +1 -0
- package/_types/stellar/config/simple-constants.d.ts +2 -0
- package/_types/stellar/config/simple-constants.d.ts.map +1 -0
- package/_types/stellar/index.d.ts +3 -0
- package/_types/stellar/index.d.ts.map +1 -1
- package/_types/stellar/utils/index.d.ts +2 -0
- package/_types/stellar/utils/index.d.ts.map +1 -0
- package/_types/stellar/utils/normalize-address.d.ts +3 -0
- package/_types/stellar/utils/normalize-address.d.ts.map +1 -0
- package/_types/svm/currency/native.d.ts +1 -1
- package/_types/svm/currency/native.d.ts.map +1 -1
- package/_types/svm/currency/token.d.ts +1 -1
- package/_types/svm/currency/token.d.ts.map +1 -1
- package/_types/svm/index.d.ts +1 -0
- package/_types/svm/index.d.ts.map +1 -1
- package/_types/svm/types/id.d.ts +5 -0
- package/_types/svm/types/id.d.ts.map +1 -0
- package/_types/svm/utils/index.d.ts +2 -0
- package/_types/svm/utils/index.d.ts.map +1 -0
- package/_types/svm/utils/normalize-address.d.ts +3 -0
- package/_types/svm/utils/normalize-address.d.ts.map +1 -0
- package/_types/tvm/config/index.d.ts +1 -0
- package/_types/tvm/config/index.d.ts.map +1 -1
- package/_types/tvm/config/simple-constants.d.ts +3 -0
- package/_types/tvm/config/simple-constants.d.ts.map +1 -0
- package/_types/tvm/currency/native.d.ts +1 -1
- package/_types/tvm/currency/native.d.ts.map +1 -1
- package/_types/tvm/currency/token.d.ts.map +1 -1
- package/_types/tvm/index.d.ts +1 -0
- package/_types/tvm/index.d.ts.map +1 -1
- package/_types/tvm/utils/index.d.ts +2 -0
- package/_types/tvm/utils/index.d.ts.map +1 -0
- package/_types/tvm/utils/normalize-address.d.ts +3 -0
- package/_types/tvm/utils/normalize-address.d.ts.map +1 -0
- package/evm/config/simple-constants.ts +1 -1
- package/evm/currency/currency.ts +2 -2
- package/evm/currency/native.ts +1 -1
- package/evm/currency/token.ts +2 -1
- package/evm/utils/index.ts +1 -0
- package/evm/utils/normalize-address.ts +5 -0
- package/generic/types/for-chain.ts +72 -0
- package/generic/types/index.ts +1 -1
- package/generic/utils/assert-never.ts +4 -0
- package/generic/utils/id.test.ts +13 -0
- package/generic/utils/id.ts +15 -15
- package/generic/utils/index.ts +3 -0
- package/generic/utils/native-address.ts +45 -0
- package/generic/utils/normalize-address.ts +64 -0
- package/kvm/config/index.ts +1 -0
- package/kvm/config/simple-constants.ts +3 -0
- package/kvm/index.ts +2 -0
- package/kvm/utils/index.ts +1 -0
- package/kvm/utils/normalize-address.ts +5 -0
- package/mvm/config/index.ts +1 -0
- package/mvm/config/simple-constants.ts +3 -0
- package/mvm/currency/token.ts +2 -1
- package/mvm/index.ts +2 -0
- package/mvm/utils/index.ts +1 -0
- package/mvm/utils/normalize-address.ts +5 -0
- package/package.json +1 -1
- package/stellar/address.ts +7 -0
- package/stellar/config/index.ts +1 -0
- package/stellar/config/simple-constants.ts +2 -0
- package/stellar/index.ts +3 -0
- package/stellar/utils/index.ts +1 -0
- package/stellar/utils/normalize-address.ts +7 -0
- package/svm/currency/native.ts +1 -1
- package/svm/currency/token.ts +3 -1
- package/svm/index.ts +1 -0
- package/svm/types/id.ts +9 -0
- package/svm/utils/index.ts +1 -0
- package/svm/utils/normalize-address.ts +5 -0
- package/tvm/config/index.ts +1 -0
- package/tvm/config/simple-constants.ts +3 -0
- package/tvm/currency/native.ts +1 -1
- package/tvm/currency/token.ts +2 -1
- package/tvm/index.ts +1 -0
- package/tvm/utils/index.ts +1 -0
- package/tvm/utils/normalize-address.ts +5 -0
- package/_cjs/generic/types/address.js.map +0 -1
- package/_esm/generic/types/address.js +0 -2
- package/_esm/generic/types/address.js.map +0 -1
- package/_types/generic/types/address.d.ts +0 -7
- package/_types/generic/types/address.d.ts.map +0 -1
- package/generic/types/address.ts +0 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../tvm/currency/token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AACvD,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../../tvm/currency/token.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAA;AACxB,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,oCAAoC,CAAA;AAC1E,OAAO,EAAE,KAAK,EAAE,MAAM,iCAAiC,CAAA;AACvD,OAAO,EAAgB,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAA;AAGlE,MAAM,MAAM,UAAU,GAAG,IAAI,MAAM,EAAE,CAAA;AAErC,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,IAAI,UAAU,CAEnE;AAED,MAAM,MAAM,cAAc,GAAG,QAAQ,CAAA;AAErC,qBAAa,QAAQ,CACnB,SAAS,SAAS,gBAAgB,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAC5D,SAAQ,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC;IAChD,SAAgB,MAAM,EAAE,cAAc,GAAG,SAAS,CAAA;gBAEtC,EACV,MAAM,EACN,OAAO,EACP,GAAG,IAAI,EACR,EAAE;QACD,MAAM,CAAC,EAAE,cAAc,GAAG,SAAS,CAAA;KACpC,GAAG,qBAAqB,CACvB,OAAO,KAAK,CAAC,UAAU,EAAE,UAAU,EAAE,SAAS,CAAC,CAChD,CAAC,CAAC,CAAC;IAKY,IAAI,IAAI,QAAQ,CAAC,SAAS,CAAC;IAI3B,MAAM,IAAI,kBAAkB,CAAC,SAAS,CAAC;IAavD,MAAM,CAAC,QAAQ,CAAC,SAAS,SAAS,gBAAgB,EAChD,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,SAAS,CAAC,EAAE,UAAU,CAAC,GAAG;QACtD,QAAQ,CAAC,EAAE,SAAS,CAAA;KACrB,GACA,QAAQ,CAAC,SAAS,CAAC;CAGvB;AAED,eAAO,MAAM,wBAAwB,GACnC,SAAS,SAAS,EAAE,GAAG,gBAAgB,EACvC,gBAEC;IACD,QAAQ,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAA;CAC3B;;;;;;;cAoBmB,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC;iBACzC,CAAA;AAEJ,MAAM,MAAM,kBAAkB,CAC5B,SAAS,SAAS,gBAAgB,GAAG,gBAAgB,IACnD,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,OAAO,wBAAwB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA"}
|
package/_types/tvm/index.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../tvm/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../tvm/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAA;AAC9B,cAAc,kBAAkB,CAAA;AAChC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,kBAAkB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../tvm/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"normalize-address.d.ts","sourceRoot":"","sources":["../../../tvm/utils/normalize-address.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAA;AAEtD,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,UAAU,GAAG,UAAU,CAEnE"}
|
package/evm/currency/currency.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as z from 'zod'
|
|
2
2
|
import type { CurrencyMetadata } from '../../generic/currency/currency.js'
|
|
3
|
-
import {
|
|
3
|
+
import { evmNativeAddress } from '../config/simple-constants.js'
|
|
4
4
|
import { type EvmNative, serializedEvmNativeSchema } from './native.js'
|
|
5
5
|
import { type EvmToken, serializedEvmTokenSchema } from './token.js'
|
|
6
6
|
|
|
@@ -23,7 +23,7 @@ export const serializedEvmCurrencySchema = <
|
|
|
23
23
|
* @returns The address of the currency. If the currency is native, returns the native address constant.
|
|
24
24
|
*/
|
|
25
25
|
export function getEvmCurrencyAddress(currency: EvmCurrency) {
|
|
26
|
-
return currency.type === 'native' ?
|
|
26
|
+
return currency.type === 'native' ? evmNativeAddress : currency.address
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
export type SerializedEvmCurrency<
|
package/evm/currency/native.ts
CHANGED
package/evm/currency/token.ts
CHANGED
|
@@ -4,6 +4,7 @@ import * as z from 'zod'
|
|
|
4
4
|
import type { CurrencyMetadata } from '../../generic/currency/currency.js'
|
|
5
5
|
import { Token } from '../../generic/currency/token.js'
|
|
6
6
|
import { type EvmChainId, isEvmChainId } from '../chain/chains.js'
|
|
7
|
+
import { normalizeEvmAddress } from '../utils/normalize-address.js'
|
|
7
8
|
|
|
8
9
|
export type EvmAddress = Address
|
|
9
10
|
|
|
@@ -32,7 +33,7 @@ export class EvmToken<
|
|
|
32
33
|
} & ConstructorParameters<
|
|
33
34
|
typeof Token<EvmChainId, EvmAddress, TMetadata>
|
|
34
35
|
>[0]) {
|
|
35
|
-
super({ address: address
|
|
36
|
+
super({ address: normalizeEvmAddress(address), ...rest })
|
|
36
37
|
this.origin = origin
|
|
37
38
|
}
|
|
38
39
|
|
package/evm/utils/index.ts
CHANGED
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import type { EvmChainId } from '../../evm/chain/chains.js'
|
|
2
|
+
import type { EvmCurrency } from '../../evm/currency/currency.js'
|
|
3
|
+
import type { EvmAddress, EvmToken } from '../../evm/currency/token.js'
|
|
4
|
+
import type { EvmID } from '../../evm/types/id.js'
|
|
5
|
+
import type { KvmChainId } from '../../kvm/chain/chains.js'
|
|
6
|
+
import type { KvmToken, KvmTokenAddress } from '../../kvm/currency/token.js'
|
|
7
|
+
import type { MvmChainId } from '../../mvm/chain/chains.js'
|
|
8
|
+
import type { MvmAddress, MvmToken } from '../../mvm/currency/token.js'
|
|
9
|
+
import type { StellarAddress } from '../../stellar/address.js'
|
|
10
|
+
import type { StellarChainId } from '../../stellar/chain/chains.js'
|
|
11
|
+
import type { SvmChainId } from '../../svm/chain/chains.js'
|
|
12
|
+
import type { SvmCurrency } from '../../svm/currency/currency.js'
|
|
13
|
+
import type { SvmAddress, SvmToken } from '../../svm/currency/token.js'
|
|
14
|
+
import type { SvmID } from '../../svm/types/id.js'
|
|
15
|
+
import type { TvmChainId } from '../../tvm/chain/chains.js'
|
|
16
|
+
import type { TvmCurrency } from '../../tvm/currency/currency.js'
|
|
17
|
+
import type { TvmAddress, TvmToken } from '../../tvm/currency/token.js'
|
|
18
|
+
import type { ChainId } from '../chain/chains.js'
|
|
19
|
+
import type { CurrencyMetadata } from '../currency/currency.js'
|
|
20
|
+
|
|
21
|
+
export type TokenFor<
|
|
22
|
+
TChainId extends Exclude<ChainId, StellarChainId>,
|
|
23
|
+
Metadata extends CurrencyMetadata = CurrencyMetadata,
|
|
24
|
+
> = TChainId extends EvmChainId
|
|
25
|
+
? EvmToken<Metadata>
|
|
26
|
+
: TChainId extends MvmChainId
|
|
27
|
+
? MvmToken<Metadata>
|
|
28
|
+
: TChainId extends TvmChainId
|
|
29
|
+
? TvmToken<Metadata>
|
|
30
|
+
: TChainId extends KvmChainId
|
|
31
|
+
? KvmToken<Metadata>
|
|
32
|
+
: TChainId extends SvmChainId
|
|
33
|
+
? SvmToken<Metadata>
|
|
34
|
+
: never
|
|
35
|
+
|
|
36
|
+
export type CurrencyFor<
|
|
37
|
+
TChainId extends Exclude<ChainId, StellarChainId>,
|
|
38
|
+
Metadata extends CurrencyMetadata = CurrencyMetadata,
|
|
39
|
+
> = TChainId extends EvmChainId
|
|
40
|
+
? EvmCurrency<Metadata>
|
|
41
|
+
: TChainId extends MvmChainId
|
|
42
|
+
? MvmToken<Metadata>
|
|
43
|
+
: TChainId extends KvmChainId
|
|
44
|
+
? KvmToken<Metadata>
|
|
45
|
+
: TChainId extends TvmChainId
|
|
46
|
+
? TvmCurrency<Metadata>
|
|
47
|
+
: TChainId extends SvmChainId
|
|
48
|
+
? SvmCurrency<Metadata>
|
|
49
|
+
: never
|
|
50
|
+
|
|
51
|
+
export type AddressFor<TChainId extends ChainId> = TChainId extends EvmChainId
|
|
52
|
+
? EvmAddress
|
|
53
|
+
: TChainId extends MvmChainId
|
|
54
|
+
? MvmAddress
|
|
55
|
+
: TChainId extends TvmChainId
|
|
56
|
+
? TvmAddress
|
|
57
|
+
: TChainId extends KvmChainId
|
|
58
|
+
? KvmTokenAddress
|
|
59
|
+
: TChainId extends SvmChainId
|
|
60
|
+
? SvmAddress
|
|
61
|
+
: TChainId extends StellarChainId
|
|
62
|
+
? StellarAddress
|
|
63
|
+
: never
|
|
64
|
+
|
|
65
|
+
export type IDFor<
|
|
66
|
+
TChainId extends EvmChainId | SvmChainId,
|
|
67
|
+
TIncludeNative extends boolean = false,
|
|
68
|
+
> = TChainId extends EvmChainId
|
|
69
|
+
? EvmID<TIncludeNative>
|
|
70
|
+
: TChainId extends SvmChainId
|
|
71
|
+
? SvmID<TIncludeNative>
|
|
72
|
+
: never
|
package/generic/types/index.ts
CHANGED
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { describe, expect, it } from 'vitest'
|
|
2
|
+
import { getChainIdAddressFromId } from './id.js'
|
|
3
|
+
|
|
4
|
+
describe('getChainIdAddressFromId', () => {
|
|
5
|
+
it('parses MVM addresses containing colons', () => {
|
|
6
|
+
const id = '-1:0x1::module::token'
|
|
7
|
+
|
|
8
|
+
expect(getChainIdAddressFromId(id)).toEqual({
|
|
9
|
+
chainId: -1,
|
|
10
|
+
address: '0x1::module::token',
|
|
11
|
+
})
|
|
12
|
+
})
|
|
13
|
+
})
|
package/generic/utils/id.ts
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
|
-
import { nativeAddress } from '../../evm/config/simple-constants.js'
|
|
2
|
-
import { isKvmTokenAddress } from '../../kvm/currency/token.js'
|
|
3
1
|
import type { ChainId } from '../chain/chains.js'
|
|
2
|
+
import type { AddressFor } from '../types/for-chain.js'
|
|
4
3
|
import type { ID } from '../types/id.js'
|
|
4
|
+
import { getNativeAddress } from './native-address.js'
|
|
5
|
+
import { normalizeAddress } from './normalize-address.js'
|
|
5
6
|
|
|
6
7
|
export function getChainIdAddressFromId<
|
|
7
8
|
TChainId extends ChainId,
|
|
@@ -12,30 +13,32 @@ export function getChainIdAddressFromId<
|
|
|
12
13
|
chainId: TChainId
|
|
13
14
|
address: TAddress
|
|
14
15
|
} {
|
|
15
|
-
const
|
|
16
|
+
const separatorIndex = id.indexOf(':')
|
|
16
17
|
|
|
17
|
-
if (
|
|
18
|
+
if (separatorIndex === -1) {
|
|
18
19
|
throw new Error(
|
|
19
20
|
`Invalid ID format: ${id}. Expected format is "chainId:address".`,
|
|
20
21
|
)
|
|
21
22
|
}
|
|
22
23
|
|
|
24
|
+
const chainId = +id.slice(0, separatorIndex) as TChainId
|
|
25
|
+
const address = id.slice(separatorIndex + 1) as TAddress
|
|
26
|
+
|
|
23
27
|
if (!chainId || !address) {
|
|
24
28
|
throw new Error(
|
|
25
29
|
`Invalid ID format: ${id}. Expected format is "chainId:address".`,
|
|
26
30
|
)
|
|
27
31
|
}
|
|
28
32
|
|
|
29
|
-
return { chainId
|
|
33
|
+
return { chainId, address }
|
|
30
34
|
}
|
|
31
35
|
|
|
32
36
|
export function getIdFromChainIdAddress<
|
|
33
37
|
TChainId extends ChainId,
|
|
34
|
-
TAddress extends string,
|
|
35
38
|
TTranslateNative extends boolean = false,
|
|
36
39
|
>(
|
|
37
40
|
chainId: TChainId,
|
|
38
|
-
address:
|
|
41
|
+
address: AddressFor<TChainId>,
|
|
39
42
|
options: { translateNative?: TTranslateNative } = {},
|
|
40
43
|
) {
|
|
41
44
|
if (!chainId || !address) {
|
|
@@ -44,16 +47,13 @@ export function getIdFromChainIdAddress<
|
|
|
44
47
|
)
|
|
45
48
|
}
|
|
46
49
|
|
|
47
|
-
|
|
48
|
-
if (!isKvmTokenAddress(address)) {
|
|
49
|
-
address = address.toLowerCase() as TAddress
|
|
50
|
-
}
|
|
50
|
+
address = normalizeAddress(chainId, address)
|
|
51
51
|
|
|
52
|
-
if (address ===
|
|
53
|
-
address = 'NATIVE' as
|
|
52
|
+
if (address === getNativeAddress(chainId) && options.translateNative) {
|
|
53
|
+
address = 'NATIVE' as AddressFor<TChainId>
|
|
54
54
|
}
|
|
55
55
|
|
|
56
56
|
return `${chainId}:${address}` as TTranslateNative extends true
|
|
57
|
-
? ID<TChainId,
|
|
58
|
-
: ID<TChainId,
|
|
57
|
+
? ID<TChainId, AddressFor<TChainId> | 'NATIVE'>
|
|
58
|
+
: ID<TChainId, AddressFor<TChainId>>
|
|
59
59
|
}
|
package/generic/utils/index.ts
CHANGED
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { isEvmChainId } from '../../evm/chain/chains.js'
|
|
2
|
+
import { evmNativeAddress } from '../../evm/config/simple-constants.js'
|
|
3
|
+
import { isKvmChainId } from '../../kvm/chain/chains.js'
|
|
4
|
+
import { kvmNativeAddress } from '../../kvm/config/simple-constants.js'
|
|
5
|
+
import { isMvmChainId } from '../../mvm/chain/chains.js'
|
|
6
|
+
import { mvmNativeAddress } from '../../mvm/config/simple-constants.js'
|
|
7
|
+
import { isStellarChainId } from '../../stellar/chain/chains.js'
|
|
8
|
+
import { stellarNativeAddress } from '../../stellar/config/simple-constants.js'
|
|
9
|
+
import { isSvmChainId } from '../../svm/chain/chains.js'
|
|
10
|
+
import { svmNativeAddress } from '../../svm/config/simple-constants.js'
|
|
11
|
+
import { isTvmChainId } from '../../tvm/chain/chains.js'
|
|
12
|
+
import { tvmNativeAddress } from '../../tvm/config/simple-constants.js'
|
|
13
|
+
import type { ChainId } from '../chain/chains.js'
|
|
14
|
+
import type { AddressFor } from '../types/for-chain.js'
|
|
15
|
+
import { assertNever } from './assert-never.js'
|
|
16
|
+
|
|
17
|
+
export function getNativeAddress<TChainId extends ChainId>(
|
|
18
|
+
chainId: TChainId,
|
|
19
|
+
): AddressFor<TChainId> {
|
|
20
|
+
if (isEvmChainId(chainId)) {
|
|
21
|
+
return evmNativeAddress as AddressFor<TChainId>
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
if (isMvmChainId(chainId)) {
|
|
25
|
+
return mvmNativeAddress as AddressFor<TChainId>
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if (isTvmChainId(chainId)) {
|
|
29
|
+
return tvmNativeAddress as AddressFor<TChainId>
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
if (isKvmChainId(chainId)) {
|
|
33
|
+
return kvmNativeAddress as AddressFor<TChainId>
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
if (isSvmChainId(chainId)) {
|
|
37
|
+
return svmNativeAddress as AddressFor<TChainId>
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
if (isStellarChainId(chainId)) {
|
|
41
|
+
return stellarNativeAddress as AddressFor<TChainId>
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
assertNever(chainId, `getNativeAddress, unsupported chainId: ${chainId}`)
|
|
45
|
+
}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import type { EvmChainId } from '../../evm/chain/chains.js'
|
|
2
|
+
import { isEvmChainId } from '../../evm/chain/chains.js'
|
|
3
|
+
import { normalizeEvmAddress } from '../../evm/utils/normalize-address.js'
|
|
4
|
+
import type { KvmChainId } from '../../kvm/chain/chains.js'
|
|
5
|
+
import { isKvmChainId } from '../../kvm/chain/chains.js'
|
|
6
|
+
import { normalizeKvmAddress } from '../../kvm/utils/normalize-address.js'
|
|
7
|
+
import type { MvmChainId } from '../../mvm/chain/chains.js'
|
|
8
|
+
import { isMvmChainId } from '../../mvm/chain/chains.js'
|
|
9
|
+
import { normalizeMvmAddress } from '../../mvm/utils/normalize-address.js'
|
|
10
|
+
import type { StellarChainId } from '../../stellar/chain/chains.js'
|
|
11
|
+
import { isStellarChainId } from '../../stellar/chain/chains.js'
|
|
12
|
+
import { normalizeStellarAddress } from '../../stellar/utils/normalize-address.js'
|
|
13
|
+
import type { SvmChainId } from '../../svm/chain/chains.js'
|
|
14
|
+
import { isSvmChainId } from '../../svm/chain/chains.js'
|
|
15
|
+
import { normalizeSvmAddress } from '../../svm/utils/normalize-address.js'
|
|
16
|
+
import type { TvmChainId } from '../../tvm/chain/chains.js'
|
|
17
|
+
import { isTvmChainId } from '../../tvm/chain/chains.js'
|
|
18
|
+
import { normalizeTvmAddress } from '../../tvm/utils/normalize-address.js'
|
|
19
|
+
import type { ChainId } from '../chain/chains.js'
|
|
20
|
+
import type { AddressFor } from '../types/for-chain.js'
|
|
21
|
+
import { assertNever } from './assert-never.js'
|
|
22
|
+
|
|
23
|
+
export function normalizeAddress<TChainId extends ChainId>(
|
|
24
|
+
chainId: TChainId,
|
|
25
|
+
address: AddressFor<TChainId>,
|
|
26
|
+
): AddressFor<TChainId> {
|
|
27
|
+
if (isEvmChainId(chainId)) {
|
|
28
|
+
return normalizeEvmAddress(
|
|
29
|
+
address as AddressFor<EvmChainId>,
|
|
30
|
+
) as AddressFor<TChainId>
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
if (isMvmChainId(chainId)) {
|
|
34
|
+
return normalizeMvmAddress(
|
|
35
|
+
address as AddressFor<MvmChainId>,
|
|
36
|
+
) as AddressFor<TChainId>
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
if (isTvmChainId(chainId)) {
|
|
40
|
+
return normalizeTvmAddress(
|
|
41
|
+
address as AddressFor<TvmChainId>,
|
|
42
|
+
) as AddressFor<TChainId>
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
if (isKvmChainId(chainId)) {
|
|
46
|
+
return normalizeKvmAddress(
|
|
47
|
+
address as AddressFor<KvmChainId>,
|
|
48
|
+
) as AddressFor<TChainId>
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
if (isSvmChainId(chainId)) {
|
|
52
|
+
return normalizeSvmAddress(
|
|
53
|
+
address as AddressFor<SvmChainId>,
|
|
54
|
+
) as AddressFor<TChainId>
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
if (isStellarChainId(chainId)) {
|
|
58
|
+
return normalizeStellarAddress(
|
|
59
|
+
address as AddressFor<StellarChainId>,
|
|
60
|
+
) as AddressFor<TChainId>
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
assertNever(chainId, `normalizeAddress, unsupported chainId: ${chainId}`)
|
|
64
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './simple-constants.js'
|
package/kvm/index.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './normalize-address.js'
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './simple-constants.js'
|
package/mvm/currency/token.ts
CHANGED
|
@@ -2,6 +2,7 @@ import * as z from 'zod'
|
|
|
2
2
|
import type { CurrencyMetadata } from '../../generic/currency/currency.js'
|
|
3
3
|
import { Token } from '../../generic/currency/token.js'
|
|
4
4
|
import { isMvmChainId, type MvmChainId } from '../chain/chains.js'
|
|
5
|
+
import { normalizeMvmAddress } from '../utils/normalize-address.js'
|
|
5
6
|
|
|
6
7
|
export type MvmAddress = `0x${string}::${string}::${string}`
|
|
7
8
|
|
|
@@ -19,7 +20,7 @@ export class MvmToken<
|
|
|
19
20
|
}: ConstructorParameters<
|
|
20
21
|
typeof Token<MvmChainId, MvmAddress, TMetadata>
|
|
21
22
|
>[0]) {
|
|
22
|
-
super({ address: address
|
|
23
|
+
super({ address: normalizeMvmAddress(address), ...rest })
|
|
23
24
|
}
|
|
24
25
|
|
|
25
26
|
public override wrap(): MvmToken<TMetadata> {
|
package/mvm/index.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './normalize-address.js'
|
package/package.json
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './simple-constants.js'
|
package/stellar/index.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './normalize-address.js'
|
package/svm/currency/native.ts
CHANGED
package/svm/currency/token.ts
CHANGED
|
@@ -7,6 +7,7 @@ import * as z from 'zod'
|
|
|
7
7
|
import type { CurrencyMetadata } from '../../generic/currency/currency.js'
|
|
8
8
|
import { Token } from '../../generic/currency/token.js'
|
|
9
9
|
import { isSvmChainId, type SvmChainId } from '../chain/chains.js'
|
|
10
|
+
import { normalizeSvmAddress } from '../utils/normalize-address.js'
|
|
10
11
|
|
|
11
12
|
export { type SvmAddress, svmAddress, isSvmAddress }
|
|
12
13
|
|
|
@@ -19,13 +20,14 @@ export class SvmToken<
|
|
|
19
20
|
|
|
20
21
|
constructor({
|
|
21
22
|
origin,
|
|
23
|
+
address,
|
|
22
24
|
...rest
|
|
23
25
|
}: {
|
|
24
26
|
origin?: SvmTokenOrigin | undefined
|
|
25
27
|
} & ConstructorParameters<
|
|
26
28
|
typeof Token<SvmChainId, SvmAddress, TMetadata>
|
|
27
29
|
>[0]) {
|
|
28
|
-
super({ ...rest })
|
|
30
|
+
super({ address: normalizeSvmAddress(address), ...rest })
|
|
29
31
|
this.origin = origin
|
|
30
32
|
}
|
|
31
33
|
|
package/svm/index.ts
CHANGED
package/svm/types/id.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { ID } from '../../generic/types/id.js'
|
|
2
|
+
import type { SvmChainId } from '../chain/chains.js'
|
|
3
|
+
import type { SvmAddress } from '../currency/token.js'
|
|
4
|
+
|
|
5
|
+
export type SvmID<TIncludeNative extends boolean = false> = ID<
|
|
6
|
+
SvmChainId,
|
|
7
|
+
SvmAddress,
|
|
8
|
+
TIncludeNative
|
|
9
|
+
>
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './normalize-address.js'
|
package/tvm/config/index.ts
CHANGED
package/tvm/currency/native.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as z from 'zod'
|
|
2
|
-
import type { CurrencyMetadata } from '
|
|
2
|
+
import type { CurrencyMetadata } from '../../generic/currency/currency.js'
|
|
3
3
|
import { Native } from '../../generic/currency/native.js'
|
|
4
4
|
import { isTvmChainId, type TvmChainId } from '../chain/chains.js'
|
|
5
5
|
import { NATIVE } from '../config/index.js'
|
package/tvm/currency/token.ts
CHANGED
|
@@ -2,6 +2,7 @@ import * as z from 'zod'
|
|
|
2
2
|
import type { CurrencyMetadata } from '../../generic/currency/currency.js'
|
|
3
3
|
import { Token } from '../../generic/currency/token.js'
|
|
4
4
|
import { isTvmChainId, type TvmChainId } from '../chain/chains.js'
|
|
5
|
+
import { normalizeTvmAddress } from '../utils/normalize-address.js'
|
|
5
6
|
|
|
6
7
|
export type TvmAddress = `T${string}`
|
|
7
8
|
|
|
@@ -25,7 +26,7 @@ export class TvmToken<
|
|
|
25
26
|
} & ConstructorParameters<
|
|
26
27
|
typeof Token<TvmChainId, TvmAddress, TMetadata>
|
|
27
28
|
>[0]) {
|
|
28
|
-
super({ address: address
|
|
29
|
+
super({ address: normalizeTvmAddress(address), ...rest })
|
|
29
30
|
this.origin = origin
|
|
30
31
|
}
|
|
31
32
|
|
package/tvm/index.ts
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './normalize-address.js'
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../../generic/types/address.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"address.js","sourceRoot":"","sources":["../../../generic/types/address.ts"],"names":[],"mappings":""}
|