@daimo/pay-common 0.0.1

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/dist/assert.js ADDED
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.assert = assert;
4
+ exports.assertNotNull = assertNotNull;
5
+ exports.assertEqual = assertEqual;
6
+ exports.assertUnreachable = assertUnreachable;
7
+ const debug_1 = require("./debug");
8
+ function assert(condition, ...args) {
9
+ if (!condition)
10
+ throw new Error("Assertion failed: " + args.map((a) => (0, debug_1.debugJson)(a)).join(", "));
11
+ }
12
+ function assertNotNull(value, ...args) {
13
+ assert(value !== null && value !== undefined, ...args);
14
+ return value;
15
+ }
16
+ function assertEqual(a, b, ...args) {
17
+ assert(a === b, ...args);
18
+ }
19
+ /** Used to compile-time check that switch statements are exhaustive, etc. */
20
+ function assertUnreachable(_) {
21
+ throw new Error("Unreachable");
22
+ }
23
+ //# sourceMappingURL=assert.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assert.js","sourceRoot":"","sources":["../src/assert.ts"],"names":[],"mappings":";;AAEA,wBAKC;AAED,sCAMC;AAED,kCAEC;AAGD,8CAEC;AAxBD,mCAAoC;AAEpC,SAAgB,MAAM,CAAC,SAAkB,EAAE,GAAG,IAAW;IACvD,IAAI,CAAC,SAAS;QACZ,MAAM,IAAI,KAAK,CACb,oBAAoB,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAA,iBAAS,EAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAChE,CAAC;AACN,CAAC;AAED,SAAgB,aAAa,CAC3B,KAA2B,EAC3B,GAAG,IAAW;IAEd,MAAM,CAAC,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,GAAG,IAAI,CAAC,CAAC;IACvD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,WAAW,CAAI,CAAI,EAAE,CAAI,EAAE,GAAG,IAAW;IACvD,MAAM,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,6EAA6E;AAC7E,SAAgB,iBAAiB,CAAC,CAAQ;IACxC,MAAM,IAAI,KAAK,CAAC,aAAa,CAAC,CAAC;AACjC,CAAC"}
@@ -0,0 +1,33 @@
1
+ export type Chain = {
2
+ chainId: number;
3
+ name: string;
4
+ cctpDomain: number | null;
5
+ };
6
+ export declare const arbitrum: Chain;
7
+ export declare const base: Chain;
8
+ export declare const blast: Chain;
9
+ export declare const bsc: Chain;
10
+ export declare const ethereum: Chain;
11
+ export declare const linea: Chain;
12
+ export declare const mantle: Chain;
13
+ export declare const optimism: Chain;
14
+ export declare const polygon: Chain;
15
+ export declare const solana: Chain;
16
+ export declare const worldchain: Chain;
17
+ export declare const chainConfigs: Chain[];
18
+ /** Given a chainId, return the chain. */
19
+ export declare function getChainById(chainId: number): Chain;
20
+ /** Returns the chain name for the given chainId. */
21
+ export declare function getChainName(chainId: number): string;
22
+ /**
23
+ * Get block explorer URL for chain ID
24
+ */
25
+ export declare function getChainExplorerByChainId(chainId: number): string | undefined;
26
+ /**
27
+ * Get block explorer address URL for chain ID and address.
28
+ */
29
+ export declare function getChainExplorerAddressUrl(chainId: number, address: string): string | undefined;
30
+ /**
31
+ * Get block explorer transaction URL for chain ID and transaction hash.
32
+ */
33
+ export declare function getChainExplorerTxUrl(chainId: number, txHash: string): string | undefined;
package/dist/chain.js ADDED
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.chainConfigs = exports.worldchain = exports.solana = exports.polygon = exports.optimism = exports.mantle = exports.linea = exports.ethereum = exports.bsc = exports.blast = exports.base = exports.arbitrum = void 0;
4
+ exports.getChainById = getChainById;
5
+ exports.getChainName = getChainName;
6
+ exports.getChainExplorerByChainId = getChainExplorerByChainId;
7
+ exports.getChainExplorerAddressUrl = getChainExplorerAddressUrl;
8
+ exports.getChainExplorerTxUrl = getChainExplorerTxUrl;
9
+ exports.arbitrum = {
10
+ chainId: 42161,
11
+ name: "Arbitrum",
12
+ cctpDomain: 3,
13
+ };
14
+ exports.base = {
15
+ chainId: 8453,
16
+ name: "Base",
17
+ cctpDomain: 6,
18
+ };
19
+ exports.blast = {
20
+ chainId: 81457,
21
+ name: "Blast",
22
+ cctpDomain: null,
23
+ };
24
+ exports.bsc = {
25
+ chainId: 56,
26
+ name: "BNB Smart Chain",
27
+ cctpDomain: null,
28
+ };
29
+ exports.ethereum = {
30
+ chainId: 1,
31
+ name: "Ethereum",
32
+ cctpDomain: 0,
33
+ };
34
+ exports.linea = {
35
+ chainId: 59144,
36
+ name: "Linea",
37
+ cctpDomain: null,
38
+ };
39
+ exports.mantle = {
40
+ chainId: 5000,
41
+ name: "Mantle",
42
+ cctpDomain: null,
43
+ };
44
+ exports.optimism = {
45
+ chainId: 10,
46
+ name: "Optimism",
47
+ cctpDomain: 2,
48
+ };
49
+ exports.polygon = {
50
+ chainId: 137,
51
+ name: "Polygon",
52
+ cctpDomain: 7,
53
+ };
54
+ exports.solana = {
55
+ chainId: 101,
56
+ name: "Solana",
57
+ cctpDomain: 5,
58
+ };
59
+ exports.worldchain = {
60
+ chainId: 480,
61
+ name: "Worldchain",
62
+ cctpDomain: null,
63
+ };
64
+ exports.chainConfigs = [
65
+ exports.arbitrum,
66
+ exports.base,
67
+ exports.blast,
68
+ exports.bsc,
69
+ exports.ethereum,
70
+ exports.linea,
71
+ exports.mantle,
72
+ exports.optimism,
73
+ exports.polygon,
74
+ exports.solana,
75
+ exports.worldchain,
76
+ ];
77
+ /** Given a chainId, return the chain. */
78
+ function getChainById(chainId) {
79
+ const ret = exports.chainConfigs.find((c) => c.chainId === chainId);
80
+ if (ret == null)
81
+ throw new Error(`Unknown chainId ${chainId}`);
82
+ return ret;
83
+ }
84
+ /** Returns the chain name for the given chainId. */
85
+ function getChainName(chainId) {
86
+ return getChainById(chainId).name;
87
+ }
88
+ /**
89
+ * Get block explorer URL for chain ID
90
+ */
91
+ function getChainExplorerByChainId(chainId) {
92
+ switch (chainId) {
93
+ case exports.arbitrum.chainId:
94
+ return "https://arbiscan.io";
95
+ case exports.base.chainId:
96
+ return "https://basescan.org";
97
+ case exports.blast.chainId:
98
+ return "https://blastscan.io";
99
+ case exports.bsc.chainId:
100
+ return "https://bscscan.com";
101
+ case exports.ethereum.chainId:
102
+ return "https://etherscan.io";
103
+ case exports.linea.chainId:
104
+ return "https://lineascan.build";
105
+ case exports.mantle.chainId:
106
+ return "https://mantlescan.xyz";
107
+ case exports.optimism.chainId:
108
+ return "https://optimistic.etherscan.io";
109
+ case exports.polygon.chainId:
110
+ return "https://polygonscan.com";
111
+ case exports.solana.chainId:
112
+ return "https://solscan.io";
113
+ case exports.worldchain.chainId:
114
+ return "https://worldscan.org";
115
+ default:
116
+ return undefined;
117
+ }
118
+ }
119
+ /**
120
+ * Get block explorer address URL for chain ID and address.
121
+ */
122
+ function getChainExplorerAddressUrl(chainId, address) {
123
+ const explorer = getChainExplorerByChainId(chainId);
124
+ if (!explorer) {
125
+ return undefined;
126
+ }
127
+ return `${explorer}/address/${address}`;
128
+ }
129
+ /**
130
+ * Get block explorer transaction URL for chain ID and transaction hash.
131
+ */
132
+ function getChainExplorerTxUrl(chainId, txHash) {
133
+ const explorer = getChainExplorerByChainId(chainId);
134
+ if (!explorer) {
135
+ return undefined;
136
+ }
137
+ return `${explorer}/tx/${txHash}`;
138
+ }
139
+ //# sourceMappingURL=chain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain.js","sourceRoot":"","sources":["../src/chain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1 @@
1
+ export declare function debugJson(obj: any): string;
package/dist/debug.js ADDED
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.debugJson = debugJson;
4
+ // Return compact JSON, 1000 chars max. Never throws.
5
+ function debugJson(obj) {
6
+ try {
7
+ const serialized = JSON.stringify(obj, (_, value) => typeof value === "bigint" ? value.toString() : value);
8
+ return serialized.slice(0, 10000);
9
+ }
10
+ catch (e) {
11
+ return `<JSON error: ${e.message}>`;
12
+ }
13
+ }
14
+ //# sourceMappingURL=debug.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"debug.js","sourceRoot":"","sources":["../src/debug.ts"],"names":[],"mappings":";;AACA,8BASC;AAVD,qDAAqD;AACrD,SAAgB,SAAS,CAAC,GAAQ;IAChC,IAAI,CAAC;QACH,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAClD,OAAO,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC,KAAK,CACrD,CAAC;QACF,OAAO,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAAC,OAAO,CAAM,EAAE,CAAC;QAChB,OAAO,gBAAgB,CAAC,CAAC,OAAO,GAAG,CAAC;IACtC,CAAC;AACH,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./assert";
2
+ export * from "./chain";
3
+ export * from "./debug";
4
+ export * from "./token";
package/dist/index.js ADDED
@@ -0,0 +1,21 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./assert"), exports);
18
+ __exportStar(require("./chain"), exports);
19
+ __exportStar(require("./debug"), exports);
20
+ __exportStar(require("./token"), exports);
21
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAyB;AACzB,0CAAwB;AACxB,0CAAwB;AACxB,0CAAwB"}
@@ -0,0 +1,85 @@
1
+ export type Token = {
2
+ chainId: number;
3
+ token: string;
4
+ name?: string;
5
+ symbol: string;
6
+ decimals: number;
7
+ logoURI?: string;
8
+ };
9
+ export declare enum TokenLogo {
10
+ ETH = "https://pay.daimo.com/chain-logos/ethereum.png",
11
+ USDC = "https://assets.coingecko.com/coins/images/6319/large/usdc.png",
12
+ EURC = "https://assets.coingecko.com/coins/images/26045/large/euro.png",
13
+ USDT = "https://pay.daimo.com/coin-logos/usdt.png",
14
+ DAI = "https://pay.daimo.com/coin-logos/dai.png",
15
+ POL = "https://assets.coingecko.com/coins/images/4713/large/polygon.png",
16
+ AVAX = "https://assets.coingecko.com/coins/images/12559/large/Avalanche_Circle_RedWhite_Trans.png",
17
+ BNB = "https://assets.coingecko.com/coins/images/825/large/bnb-icon2_2x.png",
18
+ SOL = "https://solana.com/src/img/branding/solanaLogoMark.png",
19
+ WLD = "https://assets.coingecko.com/coins/images/31069/large/worldcoin.jpeg",
20
+ USDB = "https://assets.coingecko.com/coins/images/35595/large/65c67f0ebf2f6a1bd0feb13c_usdb-icon-yellow.png",
21
+ BLAST = "https://assets.coingecko.com/coins/images/35494/large/Blast.jpg",
22
+ WBTC = "https://s2.coinmarketcap.com/static/img/coins/128x128/3717.png",
23
+ MNT = "https://assets.coingecko.com/coins/images/30980/large/Mantle-Logo-mark.png"
24
+ }
25
+ export declare const arbitrumETH: Token;
26
+ export declare const arbitrumWETH: Token;
27
+ export declare const arbitrumUSDC: Token;
28
+ export declare const arbitrumAxlUSDC: Token;
29
+ export declare const arbitrumDAI: Token;
30
+ export declare const arbitrumUSDT: Token;
31
+ export declare const arbitrumUSDCe: Token;
32
+ export declare const baseETH: Token;
33
+ export declare const baseWETH: Token;
34
+ export declare const baseUSDC: Token;
35
+ export declare const baseEURC: Token;
36
+ export declare const baseUSDbC: Token;
37
+ export declare const baseDAI: Token;
38
+ export declare const baseUSDT: Token;
39
+ export declare const baseAxlUSDC: Token;
40
+ export declare const blastETH: Token;
41
+ export declare const blastWETH: Token;
42
+ export declare const blastUSDB: Token;
43
+ export declare const bscBNB: Token;
44
+ export declare const bscWBNB: Token;
45
+ export declare const bscAxlUSDC: Token;
46
+ export declare const bscUSDC: Token;
47
+ export declare const bscUSDT: Token;
48
+ export declare const ethereumETH: Token;
49
+ export declare const ethereumWETH: Token;
50
+ export declare const ethereumUSDC: Token;
51
+ export declare const ethereumDAI: Token;
52
+ export declare const ethereumUSDT: Token;
53
+ export declare const ethereumEURC: Token;
54
+ export declare const lineaETH: Token;
55
+ export declare const lineaWETH: Token;
56
+ export declare const lineaBridgedUSDC: Token;
57
+ export declare const lineaAxlUSDC: Token;
58
+ export declare const lineaDAI: Token;
59
+ export declare const mantleMNT: Token;
60
+ export declare const mantleWMNT: Token;
61
+ export declare const mantleBridgedUSDC: Token;
62
+ export declare const mantleUSDT: Token;
63
+ export declare const mantleAxlUSDC: Token;
64
+ export declare const optimismETH: Token;
65
+ export declare const optimismWETH: Token;
66
+ export declare const optimismUSDC: Token;
67
+ export declare const optimismAxlUSDC: Token;
68
+ export declare const optimismDAI: Token;
69
+ export declare const optimismUSDT: Token;
70
+ export declare const optimismUSDCe: Token;
71
+ export declare const polygonPOL: Token;
72
+ export declare const polygonWPOL: Token;
73
+ export declare const polygonWETH: Token;
74
+ export declare const polygonUSDC: Token;
75
+ export declare const polygonAxlUSDC: Token;
76
+ export declare const polygonDAI: Token;
77
+ export declare const polygonUSDT: Token;
78
+ export declare const polygonUSDCe: Token;
79
+ export declare const solanaSOL: Token;
80
+ export declare const solanaWSOL: Token;
81
+ export declare const solanaUSDC: Token;
82
+ export declare const worldchainETH: Token;
83
+ export declare const worldchainWETH: Token;
84
+ export declare const worldchainUSDCe: Token;
85
+ export declare const worldchainWLD: Token;