@chain-registry/types 0.45.85 → 0.46.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.
@@ -0,0 +1,107 @@
1
+ export interface Asset {
2
+ deprecated?: boolean;
3
+ description?: string;
4
+ extended_description?: string;
5
+ denom_units: DenomUnit[];
6
+ type_asset?: 'sdk.coin' | 'cw20' | 'erc20' | 'ics20' | 'snip20' | 'snip25' | 'bitcoin-like' | 'evm-base' | 'svm-base' | 'substrate' | 'unknown';
7
+ address?: string;
8
+ base: string;
9
+ name: string;
10
+ display: string;
11
+ symbol: string;
12
+ traces?: (IbcTransition | IbcCw20Transition | IbcBridgeTransition | NonIbcTransition)[];
13
+ ibc?: {
14
+ source_channel: string;
15
+ dst_channel: string;
16
+ source_denom: string;
17
+ };
18
+ logo_URIs?: {
19
+ png?: string;
20
+ svg?: string;
21
+ };
22
+ images?: {
23
+ image_sync?: Pointer;
24
+ png?: string;
25
+ svg?: string;
26
+ theme?: {
27
+ primary_color_hex?: string;
28
+ background_color_hex?: string;
29
+ circle?: boolean;
30
+ dark_mode?: boolean;
31
+ monochrome?: boolean;
32
+ };
33
+ }[];
34
+ coingecko_id?: string;
35
+ keywords?: string[];
36
+ socials?: {
37
+ website?: string;
38
+ twitter?: string;
39
+ };
40
+ }
41
+ export interface DenomUnit {
42
+ denom: string;
43
+ exponent: number;
44
+ aliases?: string[];
45
+ }
46
+ export interface Pointer {
47
+ chain_name: string;
48
+ base_denom?: string;
49
+ }
50
+ export interface IbcTransition {
51
+ type: 'ibc';
52
+ counterparty: {
53
+ chain_name: string;
54
+ base_denom: string;
55
+ channel_id: string;
56
+ };
57
+ chain: {
58
+ channel_id: string;
59
+ path: string;
60
+ };
61
+ }
62
+ export interface IbcCw20Transition {
63
+ type: 'ibc-cw20';
64
+ counterparty: {
65
+ chain_name: string;
66
+ base_denom: string;
67
+ port: string;
68
+ channel_id: string;
69
+ };
70
+ chain: {
71
+ port: string;
72
+ channel_id: string;
73
+ path: string;
74
+ };
75
+ }
76
+ export interface IbcBridgeTransition {
77
+ type: 'ibc-bridge';
78
+ counterparty: {
79
+ chain_name: string;
80
+ base_denom: string;
81
+ port?: string;
82
+ channel_id: string;
83
+ };
84
+ chain: {
85
+ port?: string;
86
+ channel_id: string;
87
+ path: string;
88
+ };
89
+ provider: string;
90
+ }
91
+ export interface NonIbcTransition {
92
+ type: 'bridge' | 'liquid-stake' | 'synthetic' | 'wrapped' | 'additional-mintage' | 'test-mintage' | 'legacy-mintage';
93
+ counterparty: {
94
+ chain_name: string;
95
+ base_denom: string;
96
+ contract?: string;
97
+ };
98
+ chain?: {
99
+ contract: string;
100
+ };
101
+ provider: string;
102
+ }
103
+ export interface AssetList {
104
+ $schema?: string;
105
+ chain_name: string;
106
+ assets: Asset[];
107
+ }
@@ -0,0 +1,192 @@
1
+ export interface Peer {
2
+ id: string;
3
+ address: string;
4
+ provider?: string;
5
+ }
6
+ export interface Endpoint {
7
+ address: string;
8
+ provider?: string;
9
+ archive?: boolean;
10
+ }
11
+ export interface Explorer {
12
+ kind?: string;
13
+ url?: string;
14
+ tx_page?: string;
15
+ account_page?: string;
16
+ validator_page?: string;
17
+ proposal_page?: string;
18
+ block_page?: string;
19
+ }
20
+ export interface FeeToken {
21
+ denom: string;
22
+ fixed_min_gas_price?: number;
23
+ low_gas_price?: number;
24
+ average_gas_price?: number;
25
+ high_gas_price?: number;
26
+ gas_costs?: {
27
+ cosmos_send?: number;
28
+ ibc_transfer?: number;
29
+ };
30
+ }
31
+ export interface StakingToken {
32
+ denom: string;
33
+ }
34
+ export type Repo = string;
35
+ export type Version = string;
36
+ export type Tag = string;
37
+ export interface Sdk {
38
+ type: 'cosmos' | 'penumbra' | 'other';
39
+ version?: Version;
40
+ repo?: Repo;
41
+ tag?: Tag;
42
+ }
43
+ export interface Ibc {
44
+ type: 'go' | 'rust' | 'other';
45
+ version?: Version;
46
+ repo?: Repo;
47
+ tag?: Tag;
48
+ ics_enabled?: ('ics20-1' | 'ics27-1' | 'mauth')[];
49
+ }
50
+ export interface Cosmwasm {
51
+ version?: Version;
52
+ repo?: Repo;
53
+ tag?: Tag;
54
+ enabled?: boolean;
55
+ path?: string;
56
+ }
57
+ export interface Consensus {
58
+ type: 'tendermint' | 'cometbft' | 'sei-tendermint';
59
+ version?: Version;
60
+ repo?: Repo;
61
+ tag?: Tag;
62
+ }
63
+ export interface Language {
64
+ type: 'go' | 'rust' | 'solidity' | 'other';
65
+ version?: Version;
66
+ repo?: Repo;
67
+ tag?: Tag;
68
+ }
69
+ export interface Binaries {
70
+ 'linux/amd64'?: string;
71
+ 'linux/arm64'?: string;
72
+ 'darwin/amd64'?: string;
73
+ 'darwin/arm64'?: string;
74
+ 'windows/amd64'?: string;
75
+ 'windows/arm64'?: string;
76
+ }
77
+ export interface Pointer {
78
+ chain_name: string;
79
+ base_denom?: string;
80
+ }
81
+ export interface Chain {
82
+ $schema?: string;
83
+ chain_name: string;
84
+ chain_type: 'cosmos' | 'eip155' | 'bip122' | 'polkadot' | 'solana' | 'algorand' | 'arweave' | 'ergo' | 'fil' | 'hedera' | 'monero' | 'reef' | 'stacks' | 'starknet' | 'stellar' | 'tezos' | 'vechain' | 'waves' | 'xrpl' | 'unknown';
85
+ chain_id?: string;
86
+ pre_fork_chain_name?: string;
87
+ pretty_name?: string;
88
+ website?: string;
89
+ update_link?: string;
90
+ status?: 'live' | 'upcoming' | 'killed';
91
+ network_type?: 'mainnet' | 'testnet' | 'devnet';
92
+ bech32_prefix?: string;
93
+ bech32_config?: {
94
+ bech32PrefixAccAddr?: string;
95
+ bech32PrefixAccPub?: string;
96
+ bech32PrefixValAddr?: string;
97
+ bech32PrefixValPub?: string;
98
+ bech32PrefixConsAddr?: string;
99
+ bech32PrefixConsPub?: string;
100
+ };
101
+ daemon_name?: string;
102
+ node_home?: string;
103
+ key_algos?: ('secp256k1' | 'ethsecp256k1' | 'ed25519' | 'sr25519' | 'bn254')[];
104
+ slip44?: number;
105
+ alternative_slip44s?: number[];
106
+ fees?: {
107
+ fee_tokens: FeeToken[];
108
+ };
109
+ staking?: {
110
+ staking_tokens: StakingToken[];
111
+ lock_duration?: {
112
+ blocks?: number;
113
+ time?: string;
114
+ };
115
+ };
116
+ codebase?: {
117
+ git_repo?: string;
118
+ recommended_version?: string;
119
+ compatible_versions?: string[];
120
+ language?: Language;
121
+ binaries?: Binaries;
122
+ cosmos_sdk_version?: string;
123
+ sdk?: Sdk;
124
+ consensus?: Consensus;
125
+ cosmwasm_version?: string;
126
+ cosmwasm_enabled?: boolean;
127
+ cosmwasm_path?: string;
128
+ cosmwasm?: Cosmwasm;
129
+ ibc_go_version?: string;
130
+ ics_enabled?: ('ics20-1' | 'ics27-1' | 'mauth')[];
131
+ ibc?: Ibc;
132
+ genesis?: {
133
+ name?: string;
134
+ genesis_url: string;
135
+ ics_ccv_url?: string;
136
+ };
137
+ versions?: {
138
+ name: string;
139
+ tag?: string;
140
+ height?: number;
141
+ proposal?: number;
142
+ previous_version_name?: string;
143
+ next_version_name?: string;
144
+ recommended_version?: string;
145
+ compatible_versions?: string[];
146
+ language?: Language;
147
+ cosmos_sdk_version?: string;
148
+ sdk?: Sdk;
149
+ consensus?: Consensus;
150
+ cosmwasm_version?: string;
151
+ cosmwasm_enabled?: boolean;
152
+ cosmwasm_path?: string;
153
+ cosmwasm?: Cosmwasm;
154
+ ibc_go_version?: string;
155
+ ics_enabled?: ('ics20-1' | 'ics27-1' | 'mauth')[];
156
+ ibc?: Ibc;
157
+ binaries?: Binaries;
158
+ }[];
159
+ };
160
+ images?: {
161
+ image_sync?: Pointer;
162
+ png?: string;
163
+ svg?: string;
164
+ theme?: {
165
+ primary_color_hex?: string;
166
+ background_color_hex?: string;
167
+ circle?: boolean;
168
+ dark_mode?: boolean;
169
+ monochrome?: boolean;
170
+ };
171
+ }[];
172
+ logo_URIs?: {
173
+ png?: string;
174
+ svg?: string;
175
+ };
176
+ description?: string;
177
+ peers?: {
178
+ seeds?: Peer[];
179
+ persistent_peers?: Peer[];
180
+ };
181
+ apis?: {
182
+ rpc?: Endpoint[];
183
+ rest?: Endpoint[];
184
+ grpc?: Endpoint[];
185
+ wss?: Endpoint[];
186
+ 'grpc-web'?: Endpoint[];
187
+ 'evm-http-jsonrpc'?: Endpoint[];
188
+ };
189
+ explorers?: Explorer[];
190
+ keywords?: string[];
191
+ extra_codecs?: ('ethermint' | 'injective')[];
192
+ }
package/esm/index.js CHANGED
@@ -1,4 +1 @@
1
- export * from './assets';
2
- export * from './chains';
3
- export * from './ibc';
4
1
  export * from './registry';
@@ -0,0 +1,40 @@
1
+ export interface ChainOperatorInfo {
2
+ address?: string;
3
+ }
4
+ export interface ChainInfo {
5
+ chain_name: string;
6
+ client_id: string;
7
+ connection_id: string;
8
+ }
9
+ export interface ChannelInfo {
10
+ channel_id: string;
11
+ port_id: string;
12
+ client_id?: string;
13
+ connection_id?: string;
14
+ }
15
+ export interface IBCData {
16
+ $schema?: string;
17
+ chain_1: ChainInfo;
18
+ chain_2: ChainInfo;
19
+ channels: {
20
+ chain_1: ChannelInfo;
21
+ chain_2: ChannelInfo;
22
+ ordering: 'ordered' | 'unordered';
23
+ version: string;
24
+ fee_version?: string;
25
+ description?: string;
26
+ tags?: {
27
+ status?: 'live' | 'upcoming' | 'killed';
28
+ preferred?: boolean;
29
+ dex?: string;
30
+ properties?: string;
31
+ };
32
+ }[];
33
+ operators?: {
34
+ chain_1: ChainOperatorInfo;
35
+ chain_2: ChainOperatorInfo;
36
+ memo: string;
37
+ name: string;
38
+ discord_handle?: string;
39
+ }[];
40
+ }
package/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export * from './assets';
2
- export * from './chains';
3
- export * from './ibc';
1
+ export { Asset, AssetList, DenomUnit } from './assetlist.schema';
2
+ export { Chain } from './chain.schema';
3
+ export { ChannelInfo, IBCData as IBCInfo } from './ibc_data.schema';
4
4
  export * from './registry';
package/index.js CHANGED
@@ -14,7 +14,4 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
14
  for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
15
  };
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
- __exportStar(require("./assets"), exports);
18
- __exportStar(require("./chains"), exports);
19
- __exportStar(require("./ibc"), exports);
20
17
  __exportStar(require("./registry"), exports);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chain-registry/types",
3
- "version": "0.45.85",
3
+ "version": "0.46.0",
4
4
  "description": "Chain Registry types",
5
5
  "author": "Dan Lynch <pyramation@gmail.com>",
6
6
  "homepage": "https://github.com/cosmology-tech/chain-registry",
@@ -33,5 +33,5 @@
33
33
  "cosmos",
34
34
  "interchain"
35
35
  ],
36
- "gitHead": "00d9492321cc7ffc2ff2e153464fa0734556440c"
36
+ "gitHead": "fbd284ef1c6ac649534c53c1a62f085cc20fe181"
37
37
  }
package/assets.d.ts DELETED
@@ -1,140 +0,0 @@
1
- export interface AssetDenomUnit {
2
- denom: string;
3
- exponent: number;
4
- aliases?: string[];
5
- }
6
- export interface LiquidStakeTrace {
7
- type: 'liquid-stake';
8
- counterparty: {
9
- chain_name: string;
10
- base_denom: string;
11
- };
12
- provider: string;
13
- }
14
- export interface TestMintageTrace {
15
- type: 'test-mintage';
16
- counterparty: {
17
- chain_name: string;
18
- base_denom: string;
19
- };
20
- provider: string;
21
- }
22
- export interface StringTypeTrace {
23
- type: string;
24
- counterparty: {
25
- chain_name: string;
26
- base_denom: string;
27
- };
28
- provider: string;
29
- }
30
- export interface AdditionalMintageTrace {
31
- type: 'additional-mintage';
32
- counterparty: {
33
- chain_name: string;
34
- base_denom: string;
35
- };
36
- provider: string;
37
- }
38
- export interface SyntheicTrace {
39
- type: 'synthetic';
40
- counterparty: {
41
- chain_name: string;
42
- base_denom: string;
43
- };
44
- provider: string;
45
- }
46
- export interface BridgeTrace {
47
- type: 'bridge';
48
- counterparty: {
49
- chain_name: string;
50
- base_denom: string;
51
- contract?: string;
52
- };
53
- chain?: {
54
- contract: string;
55
- };
56
- provider: string;
57
- }
58
- export interface WrapTrace {
59
- type: 'wrapped';
60
- counterparty: {
61
- chain_name: string;
62
- base_denom: string;
63
- contract?: string;
64
- };
65
- chain?: {
66
- contract: string;
67
- };
68
- provider: string;
69
- }
70
- export interface IBCTrace {
71
- type: 'ibc';
72
- counterparty: {
73
- port?: string;
74
- channel_id: string;
75
- base_denom: string;
76
- chain_name: string;
77
- };
78
- chain: {
79
- port?: string;
80
- channel_id: string;
81
- path?: string;
82
- };
83
- }
84
- export interface IBCCw20Trace {
85
- type: 'ibc-cw20';
86
- counterparty: {
87
- port: string;
88
- channel_id: string;
89
- base_denom: string;
90
- chain_name: string;
91
- };
92
- chain: {
93
- port: string;
94
- channel_id: string;
95
- path?: string;
96
- };
97
- }
98
- export type AssetTrace = IBCCw20Trace | IBCTrace | SyntheicTrace | LiquidStakeTrace | WrapTrace | BridgeTrace | AdditionalMintageTrace | TestMintageTrace | StringTypeTrace;
99
- export interface LogoImage {
100
- image_sync?: {
101
- chain_name: string;
102
- base_denom: string;
103
- };
104
- png?: string;
105
- svg?: string;
106
- jpeg?: string;
107
- theme?: any;
108
- }
109
- export interface Asset {
110
- deprecated?: boolean;
111
- description?: string;
112
- extended_description?: string;
113
- type_asset?: string;
114
- address?: string;
115
- denom_units: AssetDenomUnit[];
116
- base: string;
117
- name: string;
118
- display: string;
119
- symbol: string;
120
- logo_URIs?: LogoImage;
121
- images?: LogoImage[];
122
- coingecko_id?: string;
123
- keywords?: string[];
124
- traces?: AssetTrace[];
125
- ibc?: {
126
- source_channel?: string;
127
- source_denom?: string;
128
- dst_channel?: string;
129
- };
130
- socials?: {
131
- webiste?: string;
132
- website?: string;
133
- twitter?: string;
134
- };
135
- }
136
- export type AssetList = {
137
- $schema?: string;
138
- chain_name: string;
139
- assets: Asset[];
140
- };
package/chains.d.ts DELETED
@@ -1,227 +0,0 @@
1
- export interface Chain {
2
- $schema?: string;
3
- chain_name: string;
4
- pre_fork_chain_name?: string;
5
- status: string;
6
- description?: string;
7
- network_type: string;
8
- update_link?: string;
9
- pretty_name: string;
10
- chain_id: string;
11
- website?: string;
12
- /**
13
- * The default prefix for the human-readable part of addresses that identifies the coin type. Must be registered with SLIP-0173. E.g., 'cosmos'
14
- */
15
- bech32_prefix: string;
16
- bech32_config?: {
17
- /**
18
- * e.g., 'cosmos'
19
- */
20
- bech32PrefixAccAddr?: string;
21
- /**
22
- * e.g., 'cosmospub'
23
- */
24
- bech32PrefixAccPub?: string;
25
- /**
26
- * e.g., 'cosmosvaloper'
27
- */
28
- bech32PrefixValAddr?: string;
29
- /**
30
- * e.g., 'cosmosvaloperpub'
31
- */
32
- bech32PrefixValPub?: string;
33
- /**
34
- * e.g., 'cosmosvalcons'
35
- */
36
- bech32PrefixConsAddr?: string;
37
- /**
38
- * e.g., 'cosmosvalconspub'
39
- */
40
- bech32PrefixConsPub?: string;
41
- };
42
- daemon_name?: string;
43
- key_algos?: ('secp256k1' | 'ethsecp256k1' | 'ed25519' | 'sr25519' | string)[];
44
- extra_codecs?: string[];
45
- keywords?: string[];
46
- node_home?: string;
47
- slip44: number;
48
- alternative_slip44s?: number[];
49
- logo_URIs?: {
50
- png?: string;
51
- svg?: string;
52
- jpeg?: string;
53
- };
54
- images?: {
55
- image_sync?: {
56
- chain_name?: string;
57
- };
58
- png?: string;
59
- svg?: string;
60
- theme?: {
61
- primary_color_hex?: string;
62
- dark_mode?: boolean;
63
- circle?: boolean;
64
- };
65
- layout?: string;
66
- text_position?: string;
67
- }[];
68
- fees?: {
69
- fee_tokens: {
70
- denom: string;
71
- fixed_min_gas_price?: number;
72
- low_gas_price?: number;
73
- average_gas_price?: number;
74
- high_gas_price?: number;
75
- gas_costs?: {
76
- cosmos_send?: number;
77
- ibc_transfer?: number;
78
- };
79
- }[];
80
- };
81
- staking?: {
82
- staking_tokens: {
83
- denom: string;
84
- }[];
85
- lock_duration?: {
86
- /**
87
- * The number of blocks for which the staked tokens are locked.
88
- */
89
- blocks?: number;
90
- /**
91
- * The approximate time for which the staked tokens are locked.
92
- */
93
- time?: string;
94
- };
95
- };
96
- explorers?: {
97
- name?: string;
98
- kind?: string;
99
- url?: string;
100
- tx_page?: string;
101
- account_page?: string;
102
- }[];
103
- codebase?: {
104
- git_repo?: string;
105
- recommended_version?: string;
106
- compatible_versions?: string[];
107
- binaries?: {
108
- 'linux/amd64'?: string;
109
- 'linux/arm64'?: string;
110
- 'darwin/amd64'?: string;
111
- 'darwin/arm64'?: string;
112
- 'windows/amd64'?: string;
113
- 'windows/arm64'?: string;
114
- };
115
- cosmos_sdk_version?: string;
116
- consensus?: {
117
- type: 'tendermint' | 'cometbft';
118
- version?: string;
119
- };
120
- cosmwasm_version?: string;
121
- cosmwasm_enabled?: boolean;
122
- cosmwasm_path?: string;
123
- ibc_go_version?: string;
124
- /**
125
- * List of IBC apps (usually corresponding to a ICS standard) which have been enabled on the network.
126
- */
127
- ics_enabled?: ('ics20-1' | 'ics27-1' | 'mauth' | string)[];
128
- genesis?: {
129
- name?: string;
130
- genesis_url?: string;
131
- ics_ccv_url?: string;
132
- };
133
- versions?: {
134
- /**
135
- * Official Upgrade Name
136
- */
137
- name: string;
138
- /**
139
- * Git Upgrade Tag
140
- */
141
- tag?: string;
142
- /**
143
- * Block Height
144
- */
145
- height?: number;
146
- proposal?: number;
147
- /**
148
- * [Optional] Name of the following version
149
- */
150
- next_version_name?: string;
151
- recommended_version?: string;
152
- cosmwasm_path?: string;
153
- compatible_versions?: string[];
154
- cosmos_sdk_version?: string;
155
- consensus?: {
156
- type: 'tendermint' | 'cometbft';
157
- version?: string;
158
- };
159
- cosmwasm_version?: string;
160
- cosmwasm_enabled?: boolean;
161
- ibc_go_version?: string;
162
- /**
163
- * List of IBC apps (usually corresponding to a ICS standard) which have been enabled on the network.
164
- */
165
- ics_enabled?: ('ics20-1' | 'ics27-1' | 'mauth' | string)[];
166
- binaries?: {
167
- 'linux/amd64'?: string;
168
- 'linux/arm64'?: string;
169
- 'darwin/amd64'?: string;
170
- 'darwin/arm64'?: string;
171
- 'windows/amd64'?: string;
172
- 'windows/arm64'?: string;
173
- };
174
- }[];
175
- };
176
- peers?: {
177
- seeds?: any[];
178
- persistent_peers?: {
179
- id: string;
180
- address: string;
181
- provider?: string;
182
- }[];
183
- };
184
- apis?: {
185
- rpc?: {
186
- address: string;
187
- provider?: string;
188
- archive?: boolean;
189
- }[];
190
- rest?: {
191
- address: string;
192
- provider?: string;
193
- archive?: boolean;
194
- }[];
195
- grpc?: {
196
- address: string;
197
- provider?: string;
198
- archive?: boolean;
199
- }[];
200
- 'evm-http-jsonrpc'?: {
201
- address: string;
202
- provider?: string;
203
- archive?: boolean;
204
- }[];
205
- 'grpc-web'?: {
206
- address: string;
207
- provider?: string;
208
- archive?: boolean;
209
- }[];
210
- wss?: {
211
- address: string;
212
- provider?: string;
213
- archive?: boolean;
214
- }[];
215
- sidechains_rpc?: {
216
- address: string;
217
- provider?: string;
218
- archive?: boolean;
219
- }[];
220
- [key: string]: {
221
- address: string;
222
- provider?: string;
223
- archive?: boolean;
224
- }[];
225
- };
226
- }
227
- export type Chains = Chain[];
package/ibc.d.ts DELETED
@@ -1,38 +0,0 @@
1
- export interface IBCChannelInfo {
2
- channel_id: string;
3
- client_id?: string;
4
- port_id: string;
5
- connection_id?: string;
6
- }
7
- export interface IBCInfo {
8
- $schema?: string;
9
- chain_1: {
10
- chain_name: string;
11
- client_id: string;
12
- connection_id: string;
13
- };
14
- chain_2: {
15
- chain_name: string;
16
- client_id: string;
17
- connection_id: string;
18
- };
19
- channels: {
20
- chain_1: IBCChannelInfo;
21
- chain_2: IBCChannelInfo;
22
- ordering: string;
23
- version: string;
24
- fee_version?: string;
25
- tags?: object;
26
- }[];
27
- operators?: {
28
- chain_1?: {
29
- address?: string;
30
- };
31
- chain_2?: {
32
- address?: string;
33
- };
34
- memo?: string;
35
- name?: string;
36
- discord_handle?: string;
37
- }[];
38
- }
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes