-
-
Notifications
You must be signed in to change notification settings - Fork 9
Expand file tree
/
Copy pathsolana.ts
More file actions
136 lines (125 loc) · 4.11 KB
/
Copy pathsolana.ts
File metadata and controls
136 lines (125 loc) · 4.11 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
import { address } from '@solana/kit';
/* eslint-disable no-restricted-globals */
export const SOL_SYMBOL = 'SOL';
export const SOL_IMAGE_URL =
'https://uat-static.cx.metamask.io/api/v2/tokenIcons/assets/solana/5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp/slip44/501.png';
export const MICRO_LAMPORTS_PER_LAMPORTS = 1_000_000n;
export const LAMPORTS_PER_SOL = 1_000_000_000;
export const DEFAULT_NETWORK_BLOCK_EXPLORER_URL = 'https://solscan.io';
export const METAMASK_ORIGIN = 'metamask';
/**
* Solana CAIP-2 Networks
* @see https://namespaces.chainagnostic.org/solana/caip2
*/
export enum Network {
Mainnet = 'solana:5eykt4UsFv8P8NJdTREpY1vzqKqZKvdp',
Devnet = 'solana:EtWTRABZaYq6iMfeYKouRu166VU2xqa1',
Testnet = 'solana:4uhcVJyU9pJkvQyS88uRDiswHXSCkY3z',
Localnet = 'solana:123456789abcdef',
}
export enum KnownCaip19Id {
SolMainnet = `${Network.Mainnet}/slip44:501`,
SolDevnet = `${Network.Devnet}/slip44:501`,
SolTestnet = `${Network.Testnet}/slip44:501`,
SolLocalnet = `${Network.Localnet}/slip44:501`,
UsdcMainnet = `${Network.Mainnet}/token:EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v`,
UsdcDevnet = `${Network.Devnet}/token:4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU`,
UsdcLocalnet = `${Network.Localnet}/token:4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU`,
EurcMainnet = `${Network.Mainnet}/token:HzwqbKZw8HxMN6bF2yFZNrht3c2iXXzpKcFu7uBEDKtr`,
EurcDevnet = `${Network.Devnet}/token:HzwqbKZw8HxMN6bF2yFZNrht3c2iXXzpKcFu7uBEDKtr`,
EurcLocalnet = `${Network.Localnet}/token:HzwqbKZw8HxMN6bF2yFZNrht3c2iXXzpKcFu7uBEDKtr`,
Ai16zLocalnet = `${Network.Localnet}/token:HeLp6NuQkmYB4pYWo2zYs22mESHXPQYzXbB8n4V98jwC`,
}
export const NETWORK_TO_EXPLORER_CLUSTER = {
[Network.Mainnet]: undefined,
[Network.Devnet]: 'devnet',
[Network.Testnet]: 'testnet',
[Network.Localnet]: 'local',
};
export enum SolanaCaip19Tokens {
SOL = 'slip44:501',
}
export type TokenInfo = {
symbol: string;
caip19Id: KnownCaip19Id;
address: string;
decimals: number;
};
export type TransactionMetadata = {
scope: Network;
origin: string;
};
export const TokenMetadata = {
[KnownCaip19Id.SolMainnet]: {
symbol: 'SOL',
caip19Id: KnownCaip19Id.SolMainnet,
address: 'So11111111111111111111111111111111111111112',
decimals: 9,
},
[KnownCaip19Id.SolDevnet]: {
symbol: 'SOL',
caip19Id: KnownCaip19Id.SolDevnet,
address: 'So11111111111111111111111111111111111111112',
decimals: 9,
},
[KnownCaip19Id.SolTestnet]: {
symbol: 'SOL',
caip19Id: KnownCaip19Id.SolTestnet,
address: 'So11111111111111111111111111111111111111112',
decimals: 9,
},
[KnownCaip19Id.SolLocalnet]: {
symbol: 'SOL',
caip19Id: KnownCaip19Id.SolLocalnet,
address: 'So11111111111111111111111111111111111111112',
decimals: 9,
},
[KnownCaip19Id.UsdcMainnet]: {
symbol: 'USDC',
caip19Id: KnownCaip19Id.UsdcMainnet,
address: 'EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v',
decimals: 6,
},
[KnownCaip19Id.UsdcDevnet]: {
symbol: 'USDC',
caip19Id: KnownCaip19Id.UsdcDevnet,
address: '4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU',
decimals: 6,
},
[KnownCaip19Id.UsdcLocalnet]: {
symbol: 'USDC',
caip19Id: KnownCaip19Id.UsdcLocalnet,
address: '4zMMC9srt5Ri5X14GAgXhaHii3GnPAEERYPJgZJDncDU',
decimals: 6,
},
} as const;
export const TOKEN_2022_PROGRAM_ADDRESS = address(
'TokenzQdBNbLqP5VEhdkAS6EPFLC1PHnBqCXEpPxuEb',
);
export const Networks = {
[Network.Mainnet]: {
caip2Id: Network.Mainnet,
cluster: 'mainnet',
name: 'Solana Mainnet',
nativeToken: TokenMetadata[KnownCaip19Id.SolMainnet],
},
[Network.Devnet]: {
caip2Id: Network.Devnet,
cluster: 'devnet',
name: 'Solana Devnet',
nativeToken: TokenMetadata[KnownCaip19Id.SolDevnet],
},
[Network.Testnet]: {
caip2Id: Network.Testnet,
cluster: 'testnet',
name: 'Solana Testnet',
nativeToken: TokenMetadata[KnownCaip19Id.SolTestnet],
},
[Network.Localnet]: {
caip2Id: Network.Localnet,
cluster: 'local',
name: 'Solana Localnet',
nativeToken: TokenMetadata[KnownCaip19Id.SolLocalnet],
},
} as const;
export type Caip10Address = `${Network}:${string}`;