@snowbridge/base-types 0.1.64

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/README.md ADDED
@@ -0,0 +1,4 @@
1
+
2
+ # Base Types
3
+
4
+ Keeps types that are used by all packages.
@@ -0,0 +1,90 @@
1
+ export type AccountType = "AccountId20" | "AccountId32";
2
+ export interface XC20TokenMap {
3
+ [xc20: string]: string;
4
+ }
5
+ export type ERC20Metadata = {
6
+ token: string;
7
+ name: string;
8
+ symbol: string;
9
+ decimals: number;
10
+ foreignId?: string;
11
+ };
12
+ export interface ERC20MetadataMap {
13
+ [token: string]: ERC20Metadata;
14
+ }
15
+ export type EthereumChain = {
16
+ chainId: number;
17
+ id: string;
18
+ evmParachainId?: number;
19
+ assets: ERC20MetadataMap;
20
+ precompile?: `0x${string}`;
21
+ xcDOT?: string;
22
+ xcTokenMap?: XC20TokenMap;
23
+ };
24
+ export type ChainProperties = {
25
+ tokenSymbols: string;
26
+ tokenDecimals: number;
27
+ ss58Format: number;
28
+ isEthereum: boolean;
29
+ accountType: AccountType;
30
+ evmChainId?: number;
31
+ name: string;
32
+ specName: string;
33
+ specVersion: number;
34
+ };
35
+ export type Asset = {
36
+ token: string;
37
+ name: string;
38
+ minimumBalance: bigint;
39
+ symbol: string;
40
+ decimals: number;
41
+ isSufficient: boolean;
42
+ xc20?: string;
43
+ location?: any;
44
+ locationOnAH?: any;
45
+ locationOnEthereum?: any;
46
+ assetId?: string;
47
+ foreignId?: string;
48
+ };
49
+ export interface AssetMap {
50
+ [token: string]: Asset;
51
+ }
52
+ export type Parachain = {
53
+ parachainId: number;
54
+ info: ChainProperties;
55
+ features: {
56
+ hasPalletXcm: boolean;
57
+ hasDryRunApi: boolean;
58
+ hasTxPaymentApi: boolean;
59
+ hasDryRunRpc: boolean;
60
+ hasDotBalance: boolean;
61
+ };
62
+ assets: AssetMap;
63
+ estimatedExecutionFeeDOT: bigint;
64
+ estimatedDeliveryFeeDOT: bigint;
65
+ xcDOT?: string;
66
+ };
67
+ export interface ParachainMap {
68
+ [paraId: string]: Parachain;
69
+ }
70
+ export type KusamaConfig = {
71
+ assetHubParaId: number;
72
+ bridgeHubParaId: number;
73
+ parachains: ParachainMap;
74
+ };
75
+ export type AssetRegistry = {
76
+ timestamp: string;
77
+ environment: string;
78
+ gatewayAddress: string;
79
+ ethChainId: number;
80
+ assetHubParaId: number;
81
+ bridgeHubParaId: number;
82
+ relaychain: ChainProperties;
83
+ bridgeHub: ChainProperties;
84
+ ethereumChains: {
85
+ [chainId: string]: EthereumChain;
86
+ };
87
+ parachains: ParachainMap;
88
+ kusama: KusamaConfig | undefined;
89
+ };
90
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js ADDED
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
package/package.json ADDED
@@ -0,0 +1,30 @@
1
+ {
2
+ "name": "@snowbridge/base-types",
3
+ "version": "0.1.64",
4
+ "description": "Snowbridge Base Types",
5
+ "license": "Apache-2.0",
6
+ "repository": {
7
+ "type": "git",
8
+ "url": "https://github.com/Snowfork/snowbridge.git",
9
+ "directory": "web/packages/base-types"
10
+ },
11
+ "main": "dist/index.js",
12
+ "types": "dist/index.d.ts",
13
+ "devDependencies": {
14
+ "@types/node": "^18.19.31",
15
+ "@typescript-eslint/eslint-plugin": "^5.62.0",
16
+ "@typescript-eslint/parser": "^5.62.0",
17
+ "eslint": "^8.57.0",
18
+ "eslint-config-prettier": "^8.10.0",
19
+ "prettier": "^2.8.8",
20
+ "ts-node": "^10.9.2",
21
+ "tsconfig-paths": "^4.2.0",
22
+ "typescript": "^5.4.5"
23
+ },
24
+ "dependencies": {},
25
+ "scripts": {
26
+ "build": "tsc --build --force",
27
+ "lint": "eslint .",
28
+ "format": "prettier src --write"
29
+ }
30
+ }
package/src/index.ts ADDED
@@ -0,0 +1,107 @@
1
+ export type AccountType = "AccountId20" | "AccountId32";
2
+
3
+ export interface XC20TokenMap {
4
+ [xc20: string]: string;
5
+ }
6
+
7
+ export type ERC20Metadata = {
8
+ token: string;
9
+ name: string;
10
+ symbol: string;
11
+ decimals: number;
12
+ foreignId?: string;
13
+ };
14
+
15
+ export interface ERC20MetadataMap {
16
+ [token: string]: ERC20Metadata;
17
+ }
18
+
19
+ export type EthereumChain = {
20
+ chainId: number;
21
+ id: string;
22
+ evmParachainId?: number;
23
+ assets: ERC20MetadataMap;
24
+ precompile?: `0x${string}`;
25
+ xcDOT?: string;
26
+ xcTokenMap?: XC20TokenMap;
27
+ };
28
+
29
+ export type ChainProperties = {
30
+ tokenSymbols: string;
31
+ tokenDecimals: number;
32
+ ss58Format: number;
33
+ isEthereum: boolean;
34
+ accountType: AccountType;
35
+ evmChainId?: number;
36
+ name: string;
37
+ specName: string;
38
+ specVersion: number;
39
+ };
40
+
41
+ export type Asset = {
42
+ token: string;
43
+ name: string;
44
+ minimumBalance: bigint;
45
+ symbol: string;
46
+ decimals: number;
47
+ isSufficient: boolean;
48
+ xc20?: string;
49
+ // Location on source Parachain
50
+ location?: any;
51
+ // Location reanchored on AH
52
+ locationOnAH?: any;
53
+ // Location reanchored on Ethereum
54
+ locationOnEthereum?: any;
55
+ // For chains that use `Assets` pallet to manage local assets
56
+ // the asset_id is normally represented as u32, but on Moonbeam,
57
+ // it is u128, so use string here to avoid overflow
58
+ assetId?: string;
59
+ // Identifier of the PNA
60
+ foreignId?: string;
61
+ };
62
+
63
+ export interface AssetMap {
64
+ [token: string]: Asset;
65
+ }
66
+
67
+ export type Parachain = {
68
+ parachainId: number;
69
+ info: ChainProperties;
70
+ features: {
71
+ hasPalletXcm: boolean;
72
+ hasDryRunApi: boolean;
73
+ hasTxPaymentApi: boolean;
74
+ hasDryRunRpc: boolean;
75
+ hasDotBalance: boolean;
76
+ };
77
+ assets: AssetMap;
78
+ estimatedExecutionFeeDOT: bigint;
79
+ estimatedDeliveryFeeDOT: bigint;
80
+ xcDOT?: string;
81
+ };
82
+
83
+ export interface ParachainMap {
84
+ [paraId: string]: Parachain;
85
+ }
86
+
87
+ export type KusamaConfig = {
88
+ assetHubParaId: number;
89
+ bridgeHubParaId: number;
90
+ parachains: ParachainMap;
91
+ };
92
+
93
+ export type AssetRegistry = {
94
+ timestamp: string;
95
+ environment: string;
96
+ gatewayAddress: string;
97
+ ethChainId: number;
98
+ assetHubParaId: number;
99
+ bridgeHubParaId: number;
100
+ relaychain: ChainProperties;
101
+ bridgeHub: ChainProperties;
102
+ ethereumChains: {
103
+ [chainId: string]: EthereumChain;
104
+ };
105
+ parachains: ParachainMap;
106
+ kusama: KusamaConfig | undefined;
107
+ };
package/tsconfig.json ADDED
@@ -0,0 +1,26 @@
1
+ {
2
+ "compilerOptions": {
3
+ "composite": true,
4
+ "target": "es2021",
5
+ "module": "commonjs",
6
+ "strict": true,
7
+ "resolveJsonModule": true,
8
+ "esModuleInterop": true,
9
+ "forceConsistentCasingInFileNames": true,
10
+ "outDir": "dist",
11
+ "allowSyntheticDefaultImports": true,
12
+ "declaration": true,
13
+ "declarationMap": true,
14
+ "baseUrl": ".",
15
+ "rootDir": "src",
16
+ "noEmitOnError": true,
17
+ "skipLibCheck": true,
18
+ "allowJs": true
19
+ },
20
+ "ts-node": {
21
+ "require": ["tsconfig-paths/base-types"]
22
+ },
23
+ "exclude": ["node_modules", "dist"],
24
+ "include": ["src/**/*.ts", "src/**/*.json"],
25
+ "references": []
26
+ }