diff --git a/.changeset/tall-hats-follow.md b/.changeset/tall-hats-follow.md new file mode 100644 index 0000000000..29bb53795e --- /dev/null +++ b/.changeset/tall-hats-follow.md @@ -0,0 +1,5 @@ +--- +"viem": patch +--- + +Added USDT token definition to `viem/tokens`. diff --git a/src/tokens/definitions/usdt.ts b/src/tokens/definitions/usdt.ts new file mode 100644 index 0000000000..50d2553a57 --- /dev/null +++ b/src/tokens/definitions/usdt.ts @@ -0,0 +1,47 @@ +import { defineToken } from '../defineToken.js' + +/** + * [USDT](https://tether.to) (Tether USD) token, with canonical contract + * addresses across supported chains. + * + * Pass to a Client's `tokens` array, call with a chain id to produce a + * [token config](/docs/chains/tokens), or read the metadata and `addresses` + * map directly. + * + * @example + * ```ts + * import { createPublicClient, http } from 'viem' + * import { mainnet } from 'viem/chains' + * import { usdt } from 'viem/tokens' + * + * const client = createPublicClient({ + * chain: mainnet, + * tokens: [usdt], + * transport: http(), + * }) + * ``` + * + * @example + * ```ts + * import { usdt } from 'viem/tokens' + * + * usdt.addresses[1] + * // '0xdAC17F958D2ee523a2206206994597C13D831ec7' + * ``` + */ +export const usdt = /*#__PURE__*/ defineToken({ + addresses: { + 1: '0xdAC17F958D2ee523a2206206994597C13D831ec7', // mainnet + 10: '0x94b008aA00579c1307B0EF2c499aD98a8ce58e58', // optimism + 8453: '0xfde4C96c8593536E31F229EA8f37b2ADa2699bb2', // base + 42220: '0x48065fbBE25f71C9282ddf5e1cD6D6A887483D5e', // celo + 43114: '0x9702230A8Ea53601f5cD2dc00fDBc13d4dF4A8c7', // avalanche + 59144: '0xA219439258ca9da29E9Cc4cE5596924745e12B93', // linea + 534352: '0xf55BEC9cafDbE8730f096Aa55dad6D22d44099Df', // scroll + }, + currency: 'USD', + decimals: 6, + name: 'Tether USD', + popular: true, + symbol: 'USDT', +}) diff --git a/src/tokens/index.test.ts b/src/tokens/index.test.ts index 4654103bbc..bea3999399 100644 --- a/src/tokens/index.test.ts +++ b/src/tokens/index.test.ts @@ -35,6 +35,7 @@ test('exports', () => { "usdc", "usdce", "usde", + "usdt", "usdt0", "usyc", "wsrusd", diff --git a/src/tokens/index.ts b/src/tokens/index.ts index 43b0c61c0f..2001d10ca6 100644 --- a/src/tokens/index.ts +++ b/src/tokens/index.ts @@ -29,6 +29,7 @@ export { usdb } from './definitions/usdb.js' export { usdc } from './definitions/usdc.js' export { usdce } from './definitions/usdce.js' export { usde } from './definitions/usde.js' +export { usdt } from './definitions/usdt.js' export { usdt0 } from './definitions/usdt0.js' export { usyc } from './definitions/usyc.js' export { wsrusd } from './definitions/wsrusd.js' diff --git a/src/tokens/sets.ts b/src/tokens/sets.ts index d439231110..4dea23b8be 100644 --- a/src/tokens/sets.ts +++ b/src/tokens/sets.ts @@ -30,6 +30,7 @@ import { usdb } from './definitions/usdb.js' import { usdc } from './definitions/usdc.js' import { usdce } from './definitions/usdce.js' import { usde } from './definitions/usde.js' +import { usdt } from './definitions/usdt.js' import { usdt0 } from './definitions/usdt0.js' import { usyc } from './definitions/usyc.js' import { wsrusd } from './definitions/wsrusd.js' @@ -65,6 +66,7 @@ const all = [ usdc, usdce, usde, + usdt, usdt0, usyc, wsrusd,