@audius/sdk 3.0.8-beta.7 → 3.0.8-beta.9
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/core.js +62 -37
- package/dist/core.js.map +1 -1
- package/dist/index.cjs.js +83 -89
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.esm.js +83 -89
- package/dist/index.esm.js.map +1 -1
- package/dist/legacy.js +83 -89
- package/dist/legacy.js.map +1 -1
- package/dist/native-libs.js +83 -89
- package/dist/native-libs.js.map +1 -1
- package/dist/services/identity/IdentityService.d.ts +1 -1
- package/dist/web-libs.js +83 -89
- package/dist/web-libs.js.map +1 -1
- package/package.json +2 -2
- package/src/services/identity/IdentityService.ts +4 -2
- package/src/services/solana/transactionHandler.ts +17 -1
- package/src/services/web3Manager/Web3Manager.ts +13 -28
package/dist/core.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"core.js","sources":["../src/constants.ts","../src/services/identity/requests.ts","../src/services/discoveryProvider/requests.ts","../src/services/solana/padBNToUint8Array.ts","../src/services/solana/SolanaUtils.ts","../src/services/solana/transactionHandler.ts"],"sourcesContent":["export const AUDIO_DECMIALS = 18\nexport const WAUDIO_DECMIALS = 8\nexport const CURRENT_USER_EXISTS_LOCAL_STORAGE_KEY = '@audius/libs:found-user'\nexport enum AuthHeaders {\n MESSAGE = 'Encoded-Data-Message',\n SIGNATURE = 'Encoded-Data-Signature'\n}\n","import type { AxiosRequestConfig } from 'axios'\n\nexport type TimeFrame = 'day' | 'week' | 'month' | 'year' | 'millennium'\n\ntype QueryParams = {\n id?: number[]\n limit?: number\n offset?: number\n start?: string\n end?: string\n}\n\nexport const getTrackListens = (\n timeFrame: TimeFrame | null = null,\n idsArray: number[] | null = null,\n startTime: string | null = null,\n endTime: string | null = null,\n limit: number | null = null,\n offset: number | null = null\n) => {\n let queryUrl = 'tracks/listens/'\n\n if (timeFrame != null) {\n switch (timeFrame) {\n case 'day':\n case 'week':\n case 'month':\n case 'year':\n case 'millennium':\n break\n default:\n throw new Error('Invalid timeFrame value provided')\n }\n queryUrl += timeFrame\n }\n\n const queryParams: QueryParams = {}\n\n if (idsArray !== null) {\n queryParams.id = idsArray\n }\n\n if (limit !== null) {\n queryParams.limit = limit\n }\n\n if (offset !== null) {\n queryParams.offset = offset\n }\n\n if (startTime != null) {\n queryParams.start = startTime\n }\n\n if (endTime != null) {\n queryParams.end = endTime\n }\n\n const req: AxiosRequestConfig = {\n url: queryUrl,\n method: 'get',\n params: queryParams\n }\n return req\n}\n","/* eslint-disable @typescript-eslint/restrict-plus-operands */\n\nimport type { Nullable } from '../../utils'\nimport type { ResponseType } from 'axios'\n\nexport const getUsers = (\n limit = 100,\n offset = 0,\n idsArray: Nullable<number[]>,\n walletAddress?: Nullable<string>,\n handle?: Nullable<string>,\n minBlockNumber?: Nullable<number>,\n includeIncomplete?: Nullable<boolean>\n) => {\n type QueryParams = {\n limit: number\n offset: number\n handle?: string\n wallet?: string\n min_block_number?: number\n id?: string[]\n include_incomplete?: boolean\n }\n\n const queryParams: QueryParams = { limit: limit, offset: offset }\n if (handle) {\n queryParams.handle = handle\n }\n if (walletAddress) {\n queryParams.wallet = walletAddress\n }\n if (minBlockNumber) {\n queryParams.min_block_number = minBlockNumber\n }\n if (idsArray != null) {\n if (!Array.isArray(idsArray)) {\n throw new Error('Expected integer array of user ids')\n }\n queryParams.id = idsArray as unknown as string[]\n }\n if (includeIncomplete != null) {\n queryParams.include_incomplete = includeIncomplete\n }\n\n const req = { endpoint: 'users', queryParams }\n\n return req\n}\n\nexport const getTracks = (\n limit = 100,\n offset = 0,\n idsArray: Nullable<string[]>,\n targetUserId: Nullable<string>,\n sort: Nullable<boolean>,\n minBlockNumber: Nullable<number>,\n filterDeleted: Nullable<boolean>,\n withUsers = false\n) => {\n type QueryParams = {\n limit: number\n offset: number\n id?: string[]\n min_block_number?: number\n user_id?: string\n sort?: boolean\n filter_deleted?: boolean\n with_users?: boolean\n }\n\n const queryParams: QueryParams = { limit: limit, offset: offset }\n\n if (idsArray) {\n if (!Array.isArray(idsArray)) {\n throw new Error('Expected array of track ids')\n }\n queryParams.id = idsArray\n }\n if (minBlockNumber) {\n queryParams.min_block_number = minBlockNumber\n }\n if (targetUserId) {\n queryParams.user_id = targetUserId\n }\n if (sort) {\n queryParams.sort = sort\n }\n if (typeof filterDeleted === 'boolean') {\n queryParams.filter_deleted = filterDeleted\n }\n if (withUsers) {\n queryParams.with_users = true\n }\n\n const req = { endpoint: 'tracks', queryParams }\n return req\n}\n\nexport const getTracksByHandleAndSlug = (handle: string, slug: string) => {\n return {\n endpoint: 'v1/tracks',\n method: 'get',\n queryParams: { handle, slug }\n }\n}\n\nexport const getTracksIncludingUnlisted = (\n identifiers: string[],\n withUsers = false\n) => {\n const queryParams: { with_users?: boolean } = {}\n\n if (withUsers) {\n queryParams.with_users = true\n }\n\n const req = {\n endpoint: 'tracks_including_unlisted',\n method: 'post',\n data: {\n tracks: identifiers\n },\n queryParams\n }\n\n return req\n}\n\nexport const getRandomTracks = (\n genre: string,\n limit: number,\n exclusionList: number[],\n time: string\n) => {\n const req = {\n endpoint: 'tracks/random',\n queryParams: {\n genre,\n limit,\n exclusionList,\n time\n }\n }\n return req\n}\n\nexport const getStemsForTrack = (trackId: number) => {\n const req = {\n endpoint: `stems/${trackId}`,\n queryParams: {\n with_users: true\n }\n }\n return req\n}\n\nexport const getRemixesOfTrack = (\n trackId: number,\n limit: number | null = null,\n offset: number | null = null\n) => {\n const req = {\n endpoint: `remixes/${trackId}/children`,\n queryParams: {\n with_users: true,\n limit,\n offset\n }\n }\n return req\n}\n\nexport const getRemixTrackParents = (\n trackId: number,\n limit: number | null = null,\n offset: number | null = null\n) => {\n const req = {\n endpoint: `remixes/${trackId}/parents`,\n queryParams: {\n with_users: true,\n limit,\n offset\n }\n }\n return req\n}\n\nexport const getTrendingTracks = (\n genre: string | null = null,\n timeFrame: string | null = null,\n idsArray: number[] | null = null,\n limit: number | null = null,\n offset: number | null = null,\n withUsers = false\n) => {\n let endpoint = '/trending/'\n\n if (timeFrame != null) {\n switch (timeFrame) {\n case 'day':\n case 'week':\n case 'month':\n case 'year':\n break\n default:\n throw new Error('Invalid timeFrame value provided')\n }\n endpoint += `${endpoint}${timeFrame}`\n }\n\n const req = {\n endpoint,\n method: 'get',\n queryParams: {\n ...(idsArray !== null ? { id: idsArray } : {}),\n ...(limit !== null ? { limit } : {}),\n ...(offset !== null ? { offset } : {}),\n ...(genre !== null ? { genre } : {}),\n ...(withUsers ? { with_users: withUsers } : {})\n }\n }\n return req\n}\n\nexport const getPlaylists = (\n limit = 100,\n offset = 0,\n idsArray: Nullable<number[]> = null,\n targetUserId: Nullable<number> = null,\n withUsers = false\n) => {\n if (idsArray != null) {\n if (!Array.isArray(idsArray)) {\n throw new Error('Expected integer array of user ids')\n }\n }\n return {\n endpoint: 'playlists',\n queryParams: {\n limit,\n offset,\n ...(idsArray != null ? { playlist_id: idsArray } : {}),\n ...(targetUserId ? { user_id: targetUserId } : {}),\n ...(withUsers ? { with_users: true } : {})\n }\n }\n}\n\nexport const getFullPlaylist = (\n encodedPlaylistId: string,\n encodedUserId: string\n) => {\n return {\n endpoint: 'v1/full/playlists',\n urlParams: '/' + encodedPlaylistId,\n queryParams: {\n user_id: encodedUserId\n }\n }\n}\n\nexport const getSocialFeed = (\n filter: string,\n limit = 100,\n offset = 0,\n withUsers = false,\n tracksOnly = false\n) => {\n return {\n endpoint: 'feed',\n queryParams: {\n filter,\n limit,\n offset,\n with_users: withUsers,\n tracks_only: tracksOnly\n }\n }\n}\n\nexport const getUserRepostFeed = (\n userId: number,\n limit = 100,\n offset = 0,\n withUsers = false\n) => {\n return {\n endpoint: 'feed',\n urlParams: '/reposts/' + userId,\n queryParams: { limit, offset, with_users: withUsers }\n }\n}\n\nexport const getFollowIntersectionUsers = (\n limit = 100,\n offset = 0,\n followeeUserId: number,\n followerUserId: number\n) => {\n return {\n endpoint: 'users',\n urlParams: '/intersection/follow/' + followeeUserId + '/' + followerUserId,\n queryParams: { limit, offset }\n }\n}\n\nexport const getTrackRepostIntersectionUsers = (\n limit = 100,\n offset = 0,\n repostTrackId: number,\n followerUserId: number\n) => {\n return {\n endpoint: 'users',\n urlParams:\n '/intersection/repost/track/' + repostTrackId + '/' + followerUserId,\n queryParams: { limit: limit, offset: offset }\n }\n}\n\nexport const getPlaylistRepostIntersectionUsers = (\n limit = 100,\n offset = 0,\n repostPlaylistId: number,\n followerUserId: number\n) => {\n return {\n endpoint: 'users',\n urlParams:\n '/intersection/repost/playlist/' +\n repostPlaylistId +\n '/' +\n followerUserId,\n queryParams: { limit: limit, offset: offset }\n }\n}\n\nexport const getFollowersForUser = (\n limit = 100,\n offset = 0,\n followeeUserId: string\n) => {\n return {\n endpoint: 'users',\n urlParams: '/followers/' + followeeUserId,\n queryParams: { limit: limit, offset: offset }\n }\n}\n\nexport const getFolloweesForUser = (\n limit = 100,\n offset = 0,\n followerUserId: string\n) => {\n return {\n endpoint: 'users',\n urlParams: '/followees/' + followerUserId,\n queryParams: { limit: limit, offset: offset }\n }\n}\n\nexport const getRepostersForTrack = (\n limit = 100,\n offset = 0,\n repostTrackId: number\n) => {\n return {\n endpoint: 'users',\n urlParams: '/reposts/track/' + repostTrackId,\n queryParams: { limit: limit, offset: offset }\n }\n}\n\nexport const getRepostersForPlaylist = (\n limit = 100,\n offset = 0,\n repostPlaylistId: number\n) => {\n return {\n endpoint: 'users',\n urlParams: '/reposts/playlist/' + repostPlaylistId,\n queryParams: { limit: limit, offset: offset }\n }\n}\n\nexport const getSaversForTrack = (\n limit = 100,\n offset = 0,\n saveTrackId: number\n) => {\n return {\n endpoint: 'users',\n urlParams: '/saves/track/' + saveTrackId,\n queryParams: { limit: limit, offset: offset }\n }\n}\n\nexport const getSaversForPlaylist = (\n limit = 100,\n offset = 0,\n savePlaylistId: number\n) => {\n return {\n endpoint: 'users',\n urlParams: '/saves/playlist/' + savePlaylistId,\n queryParams: { limit: limit, offset: offset }\n }\n}\n\nexport const searchFull = (\n text: string,\n kind: string,\n limit = 100,\n offset = 0\n) => {\n return {\n endpoint: 'search/full',\n queryParams: { query: text, kind, limit, offset }\n }\n}\n\nexport const searchAutocomplete = (text: string, limit = 100, offset = 0) => {\n return {\n endpoint: 'search/autocomplete',\n queryParams: { query: text, limit: limit, offset: offset }\n }\n}\n\nexport const searchTags = (\n text: string,\n userTagCount = 2,\n kind = 'all',\n limit = 100,\n offset = 0\n) => {\n return {\n endpoint: 'search/tags',\n queryParams: {\n query: text,\n user_tag_count: userTagCount,\n kind,\n limit,\n offset\n }\n }\n}\n\nexport const getSavedPlaylists = (\n limit = 100,\n offset = 0,\n withUsers = false\n) => {\n return {\n endpoint: 'saves/playlists',\n queryParams: { limit: limit, offset: offset, with_users: withUsers }\n }\n}\n\nexport const getSavedAlbums = (limit = 100, offset = 0, withUsers = false) => {\n return {\n endpoint: 'saves/albums',\n queryParams: { limit: limit, offset: offset, with_users: withUsers }\n }\n}\n\nexport const getSavedTracks = (limit = 100, offset = 0, withUsers = false) => {\n return {\n endpoint: 'saves/tracks',\n queryParams: { limit: limit, offset: offset, with_users: withUsers }\n }\n}\n\n/**\n * Return user collections (saved & uploaded) along w/ users for those collections\n */\nexport const getUserAccount = (wallet: string) => {\n if (wallet === undefined) {\n throw new Error('Expected wallet to get user account')\n }\n return {\n endpoint: 'users/account',\n queryParams: { wallet }\n }\n}\n\n/**\n * @deprecated Migrate to using getTopFullPlaylists\n */\nexport const getTopPlaylists = (\n type: 'playlist' | 'album',\n limit: number,\n mood: string,\n filter: string,\n withUsers = false\n) => {\n return {\n endpoint: `/top/${type}`,\n queryParams: {\n limit,\n mood,\n filter,\n with_users: withUsers\n }\n }\n}\n\nexport type GetTopFullPlaylistsParams = {\n type: 'playlist' | 'album'\n limit?: number\n mood?: string\n filter?: string\n withUsers?: boolean\n encodedUserId?: string\n}\n\nexport const getTopFullPlaylists = ({\n type,\n limit,\n mood,\n filter,\n encodedUserId,\n withUsers = false\n}: GetTopFullPlaylistsParams) => {\n return {\n endpoint: `/v1/full/playlists/top`,\n queryParams: {\n type,\n limit,\n mood,\n filter,\n with_users: withUsers,\n user_id: encodedUserId\n }\n }\n}\n\n/**\n * @deprecated Migrate to using getBestNewReleases\n */\nexport const getTopFolloweeWindowed = (\n type: string,\n window: string,\n limit: string,\n withUsers = false\n) => {\n return {\n endpoint: `/top_followee_windowed/${type}/${window}`,\n queryParams: {\n limit,\n with_users: withUsers\n }\n }\n}\n\nexport const getBestNewReleases = (\n window: string,\n limit: string,\n encodedUserId: string,\n withUsers = false\n) => {\n return {\n endpoint: `/v1/full/tracks/best_new_releases`,\n queryParams: {\n window,\n limit,\n user_id: encodedUserId,\n with_users: withUsers\n }\n }\n}\n\nexport const getMostLovedTracks = (\n encodedUserId: string,\n limit: string,\n withUsers = false\n) => {\n return {\n endpoint: `/v1/full/tracks/most_loved`,\n queryParams: {\n limit,\n user_id: encodedUserId,\n with_users: withUsers\n }\n }\n}\n\nexport const getFeelingLuckyTracks = (\n encodedUserId: string,\n limit: string,\n withUsers = false\n) => {\n return {\n endpoint: `/v1/full/tracks/feeling_lucky`,\n queryParams: {\n limit,\n user_id: encodedUserId,\n with_users: withUsers\n }\n }\n}\n\nexport const getTopFolloweeSaves = (\n type: string,\n limit: string,\n withUsers = false\n) => {\n return {\n endpoint: `/top_followee_saves/${type}`,\n queryParams: {\n limit,\n with_users: withUsers\n }\n }\n}\n\nexport const getLatest = (type: string, limit = 1, offset = 0) => {\n return {\n endpoint: `/latest/${type}`,\n queryParams: { limit, offset }\n }\n}\n\nexport const getTopCreatorsByGenres = (\n genres: string[],\n limit = 30,\n offset = 0,\n withUsers = false\n) => {\n return {\n endpoint: 'users/genre/top',\n queryParams: { genre: genres, limit, offset, with_users: withUsers }\n }\n}\n\nexport const getURSMContentNodes = (ownerWallet: string | null) => {\n return {\n endpoint: 'ursm_content_nodes',\n queryParams: {\n owner_wallet: ownerWallet\n }\n }\n}\n\nexport const getNotifications = (\n minBlockNumber: string,\n trackIds: string[],\n timeout: number\n) => {\n return {\n endpoint: 'notifications',\n queryParams: {\n min_block_number: minBlockNumber,\n track_id: trackIds\n },\n timeout\n }\n}\n\nexport type GetUserNotificationsParams = {\n encodedUserId: string\n timestamp: number\n groupId?: string\n limit?: number\n validTypes?: string[]\n}\n\nexport const getUserNotifications = ({\n encodedUserId,\n timestamp,\n groupId,\n limit,\n validTypes\n}: GetUserNotificationsParams) => {\n return {\n endpoint: `v1/full/notifications/${encodedUserId}`,\n queryParams: {\n timestamp,\n group_id: groupId,\n limit,\n valid_types: validTypes\n }\n }\n}\n\nexport const getUserSubscribers = (encodedUserId: string, timeout: number) => {\n return {\n endpoint: `v1/full/users/${encodedUserId}/subscribers`,\n method: 'get',\n timeout\n }\n}\n\nexport const bulkGetUserSubscribers = (\n encodedUserIds: string,\n timeout: number\n) => {\n return {\n endpoint: 'v1/full/users/subscribers',\n method: 'post',\n headers: {\n 'Content-Type': 'application/json'\n },\n data: {\n ids: encodedUserIds\n },\n timeout\n }\n}\n\nexport const getCIDData = (\n cid: string,\n responseType: ResponseType = 'json',\n timeout: number\n) => {\n return {\n endpoint: `v1/full/cid_data/${cid}`,\n method: 'get',\n responseType,\n timeout\n }\n}\n\nexport const getSolanaNotifications = (\n minSlotNumber: number,\n timeout: number\n) => {\n return {\n endpoint: 'solana_notifications',\n queryParams: {\n min_slot_number: minSlotNumber\n },\n timeout\n }\n}\n\nexport const getTrackListenMilestones = (timeout: number) => {\n return {\n endpoint: 'track_listen_milestones',\n timeout\n }\n}\n\nexport const getChallengeAttestation = (\n challengeId: string,\n encodedUserId: string,\n specifier: string,\n oracleAddress: string\n) => {\n return {\n endpoint: `/v1/challenges/${challengeId}/attest`,\n queryParams: {\n user_id: encodedUserId,\n specifier,\n oracle: oracleAddress\n }\n }\n}\n\nexport const getCreateSenderAttestation = (senderEthAddress: string) => {\n return {\n endpoint: '/v1/challenges/attest_sender',\n queryParams: {\n sender_eth_address: senderEthAddress\n }\n }\n}\n\nexport const getUndisbursedChallenges = (\n limit: number | null,\n offset: number | null,\n completedBlockNumber: string | null,\n encodedUserId: number | null\n) => {\n return {\n endpoint: '/v1/challenges/undisbursed',\n queryParams: {\n limit,\n offset,\n completed_blocknumber: completedBlockNumber,\n user_id: encodedUserId\n }\n }\n}\n\nexport const verifyToken = (token: string) => {\n return {\n endpoint: '/v1/users/verify_token',\n queryParams: {\n token: token\n }\n }\n}\n\nexport const getUserReplicaSet = (encodedUserId: string) => {\n return {\n endpoint: `/v1/full/users/${encodedUserId}/replica_set`,\n timeout: 5000\n }\n}\n\nexport const getUnclaimedId = (type: 'users' | 'playlists' | 'tracks') => {\n return {\n endpoint: `/v1/${type}/unclaimed_id`,\n timeout: 5000,\n queryParams: {\n noCache: Math.floor(Math.random() * 1000).toString()\n }\n }\n}\n\nexport const getUserListenCountsMonthly = (\n encodedUserId: string,\n startTime: string,\n endTime: string\n) => {\n return {\n endpoint: `/v1/users/${encodedUserId}/listen_counts_monthly`,\n timeout: 10000,\n queryParams: {\n start_time: startTime,\n end_time: endTime\n }\n }\n}\n","import type BN from 'bn.js'\n/**\n * Converts a BN to a Uint8Array of length 8, in little endian notation.\n * Useful for when Rust wants a u64 (8 * 8) represented as a byte array.\n * Ex: https://github.com/AudiusProject/audius-protocol/blob/main/solana-programs/reward-manager/program/src/processor.rs#L389\n */\nexport const padBNToUint8Array = (bn: BN): number[] => bn.toArray('le', 8)\n","import { padBNToUint8Array } from './padBNToUint8Array'\nimport {\n PublicKey,\n PublicKeyInitData,\n TransactionInstruction\n} from '@solana/web3.js'\nimport BN from 'bn.js'\nimport keccak256 from 'keccak256'\nimport secp256k1 from 'secp256k1'\nimport { WAUDIO_DECMIALS } from '../../constants'\n\nexport class SolanaUtils {\n /**\n * Signs arbitrary bytes\n */\n static signBytes(bytes: Buffer, ethPrivateKey: string) {\n const msgHash = keccak256(bytes)\n const ethPrivateKeyArr = Buffer.from(ethPrivateKey, 'hex')\n const signatureObj = secp256k1.ecdsaSign(\n Uint8Array.from(msgHash),\n ethPrivateKeyArr\n )\n const signature = Buffer.from(signatureObj.signature)\n return {\n signature,\n recoveryId: signatureObj.recid\n }\n }\n\n /**\n * Puts an instruction in a serializable form that our relay can understand.\n * Note we are faking the return type for callers to work with it easier\n */\n static prepareInstructionForRelay(instruction: TransactionInstruction) {\n return {\n programId: instruction.programId.toString(),\n data: instruction.data,\n keys: instruction.keys.map(({ isSigner, pubkey, isWritable }) => ({\n pubkey: pubkey.toString(),\n isSigner,\n isWritable\n }))\n }\n }\n\n /**\n * Constructs a transfer ID\n */\n static constructTransferId(challengeId: string, specifier: string) {\n return `${challengeId}:${specifier}`\n }\n\n /**\n * Constructs an attestation from inputs.\n */\n static constructAttestation(\n recipientEthAddress: string,\n tokenAmount: BN,\n transferId: string,\n oracleAddress?: string\n ) {\n const encoder = new TextEncoder()\n const userBytes = SolanaUtils.ethAddressToArray(recipientEthAddress)\n const transferIdBytes = encoder.encode(transferId)\n const amountBytes = padBNToUint8Array(tokenAmount)\n const items = oracleAddress\n ? ([\n userBytes,\n amountBytes,\n transferIdBytes,\n SolanaUtils.ethAddressToArray(oracleAddress)\n ] as const)\n : ([userBytes, amountBytes, transferIdBytes] as const)\n const sep = encoder.encode('_')\n const res = items.slice(1).reduce<Uint8Array>((prev, cur) => {\n return Uint8Array.of(...prev, ...sep, ...cur)\n }, Uint8Array.from(items[0]))\n return res\n }\n\n /**\n * Converts \"UI\" wAudio (i.e. 5) into properly denominated BN representation - (i.e. 5 * 10 ^ 8)\n */\n static uiAudioToBNWaudio(amount: number) {\n return new BN(amount * 10 ** WAUDIO_DECMIALS)\n }\n\n /**\n * Derives a program address from a program ID and pubkey as seed.\n * Optionally takes in seeds.\n * Returns the new pubkey and bump seeds.\n */\n static async findProgramAddressFromPubkey(\n programId: PublicKey,\n pubkey: PublicKey,\n seed?: Uint8Array\n ) {\n const seedsArr = [pubkey.toBytes().slice(0, 32)]\n if (seed) {\n seedsArr.push(seed)\n }\n return await PublicKey.findProgramAddress(seedsArr, programId)\n }\n\n /**\n * Finds a program address, using both seeds, pubkey, and the derived authority.\n * Return [authority, derivedAddress, and bumpSeeds]\n *\n */\n static async findProgramAddressWithAuthority(\n programId: PublicKey,\n address: PublicKey,\n seed: Uint8Array\n ) {\n // Finds the authority account by generating a PDA with the address as a seed\n const [authority] = await SolanaUtils.findProgramAddressFromPubkey(\n programId,\n address\n )\n\n const [derivedAddress, bumpSeed] =\n await SolanaUtils.findProgramAddressFromPubkey(programId, authority, seed)\n return [authority, derivedAddress, bumpSeed] as const\n }\n\n /**\n * Converts an eth address hex represenatation to an array of Uint8s in big endian notation\n * @param ethAddress\n */\n static ethAddressToArray(ethAddress: string) {\n const strippedEthAddress = ethAddress.replace('0x', '')\n // Need to pad the array to length 20 - otherwise, hex eth keys starting with '0' would\n // result in truncated arrays, while eth spec is always 20 bytes\n return Uint8Array.of(...new BN(strippedEthAddress, 'hex').toArray('be', 20))\n }\n\n // Safely create pubkey from nullable val\n static newPublicKeyNullable<T extends PublicKeyInitData | null>(\n val: T\n ): NullablePublicKey<T> {\n return val\n ? (new PublicKey(val) as NullablePublicKey<T>)\n : (null as NullablePublicKey<T>)\n }\n}\n\ntype NullablePublicKey<T> = T extends null ? null : PublicKey\n","import { SolanaUtils } from './SolanaUtils'\nimport {\n Transaction,\n PublicKey,\n Connection,\n Keypair,\n TransactionInstruction\n} from '@solana/web3.js'\nimport type { IdentityService, RelayTransactionData } from '../identity'\nimport type { Logger, Nullable } from '../../utils'\n\ntype HandleTransactionParams = {\n instructions: TransactionInstruction[]\n errorMapping?: Nullable<{ fromErrorCode: (errorCode: number) => string }>\n recentBlockhash?: Nullable<string>\n logger?: Logger\n skipPreflight?: Nullable<boolean>\n feePayerOverride?: Nullable<PublicKey>\n sendBlockhash?: boolean\n signatures?: Nullable<Array<{ publicKey: string; signature: Buffer }>>\n retry?: boolean\n}\n\n/**\n * Handles sending Solana transactions, either directly via `sendAndConfirmTransaction`,\n * or via IdentityService's relay.\n */\nexport class TransactionHandler {\n private readonly connection: Connection\n private readonly useRelay: boolean\n private readonly identityService: IdentityService | null\n private readonly feePayerKeypairs: Keypair[] | null\n private readonly skipPreflight: boolean\n private readonly retryTimeoutMs: number\n private readonly pollingFrequencyMs: number\n private readonly sendingFrequencyMs: number\n\n /**\n * Creates an instance of TransactionHandler.\n */\n constructor({\n connection,\n useRelay,\n identityService = null,\n feePayerKeypairs = null,\n skipPreflight = true,\n retryTimeoutMs = 60000,\n pollingFrequencyMs = 300,\n sendingFrequencyMs = 300\n }: {\n connection: Connection\n useRelay: boolean\n identityService?: IdentityService | null\n feePayerKeypairs?: Keypair[] | null\n skipPreflight?: boolean\n retryTimeoutMs?: number\n pollingFrequencyMs?: number\n sendingFrequencyMs?: number\n }) {\n this.connection = connection\n this.useRelay = useRelay\n this.identityService = identityService\n this.feePayerKeypairs = feePayerKeypairs\n this.skipPreflight = skipPreflight\n this.retryTimeoutMs = retryTimeoutMs\n this.pollingFrequencyMs = pollingFrequencyMs\n this.sendingFrequencyMs = sendingFrequencyMs\n }\n\n /**\n * Primary method to send a Solana transaction.\n */\n async handleTransaction({\n instructions,\n errorMapping = null,\n recentBlockhash = null,\n logger = console,\n skipPreflight = false,\n feePayerOverride = null,\n sendBlockhash = false,\n signatures = null,\n retry = true\n }: HandleTransactionParams) {\n let result: {\n res: string | null\n errorCode: string | number | null\n error: string | null\n } | null = null\n if (this.useRelay) {\n result = await this._relayTransaction(\n instructions,\n recentBlockhash,\n skipPreflight,\n feePayerOverride,\n sendBlockhash,\n signatures,\n retry\n )\n } else {\n result = await this._locallyConfirmTransaction(\n instructions,\n recentBlockhash,\n logger,\n skipPreflight,\n feePayerOverride,\n signatures,\n retry\n )\n }\n if (result.error && result.errorCode !== null && errorMapping) {\n result.errorCode = errorMapping.fromErrorCode(result.errorCode as number)\n }\n return result\n }\n\n async _relayTransaction(\n instructions: TransactionInstruction[],\n recentBlockhash: string | null,\n skipPreflight: boolean | null,\n feePayerOverride: Nullable<PublicKey> = null,\n sendBlockhash: boolean,\n signatures: Array<{ publicKey: string; signature: Buffer }> | null,\n retry: boolean\n ) {\n const relayable = instructions.map(SolanaUtils.prepareInstructionForRelay)\n\n const transactionData: RelayTransactionData = {\n signatures,\n instructions: relayable,\n skipPreflight:\n skipPreflight === null ? this.skipPreflight : skipPreflight,\n feePayerOverride: feePayerOverride ? feePayerOverride.toString() : null,\n retry\n }\n\n if (sendBlockhash || Array.isArray(signatures)) {\n transactionData.recentBlockhash =\n recentBlockhash ??\n (await this.connection.getLatestBlockhash('confirmed')).blockhash\n }\n\n try {\n const response = await this.identityService?.solanaRelay(transactionData)\n return {\n res: response?.transactionSignature ?? null,\n error: null,\n errorCode: null\n }\n } catch (e) {\n let error = null\n if (typeof e === 'object' && e !== null) {\n error = (e as any).response?.data?.error || (e as Error).message\n }\n const errorCode = error ? this._parseSolanaErrorCode(error) : null\n return { res: null, error, errorCode }\n }\n }\n\n async _locallyConfirmTransaction(\n instructions: TransactionInstruction[],\n recentBlockhash: string | null,\n logger: Logger,\n skipPreflight: boolean | null,\n feePayerOverride: Nullable<PublicKey> = null,\n signatures: Array<{ publicKey: string; signature: Buffer }> | null = null,\n retry = true\n ) {\n const feePayerKeypairOverride = (() => {\n if (feePayerOverride && this.feePayerKeypairs) {\n const stringFeePayer = feePayerOverride.toString()\n return this.feePayerKeypairs.find(\n (keypair) => keypair.publicKey.toString() === stringFeePayer\n )\n }\n return null\n })()\n\n const feePayerAccount =\n feePayerKeypairOverride ?? this.feePayerKeypairs?.[0]\n if (!feePayerAccount) {\n logger.error(\n 'transactionHandler: Local feepayer keys missing for direct confirmation!'\n )\n return {\n res: null,\n error: 'Missing keys',\n errorCode: null\n }\n }\n\n // Get blockhash\n\n recentBlockhash =\n recentBlockhash ??\n (await this.connection.getLatestBlockhash('confirmed')).blockhash\n\n // Construct the txn\n\n const tx = new Transaction({ recentBlockhash })\n instructions.forEach((i) => tx.add(i))\n tx.feePayer = feePayerAccount.publicKey\n tx.sign(feePayerAccount)\n\n if (Array.isArray(signatures)) {\n signatures.forEach(({ publicKey, signature }) => {\n tx.addSignature(new PublicKey(publicKey), signature)\n })\n }\n\n const rawTransaction = tx.serialize()\n\n // Send the txn\n\n const sendRawTransaction = async () => {\n return await this.connection.sendRawTransaction(rawTransaction, {\n skipPreflight:\n skipPreflight === null ? this.skipPreflight : skipPreflight,\n preflightCommitment: 'processed',\n maxRetries: retry ? 0 : undefined\n })\n }\n\n let txid\n try {\n txid = await sendRawTransaction()\n } catch (e) {\n // Rarely, this intiial send will fail\n logger.warn(`transactionHandler: Initial send failed: ${e}`)\n let errorCode = null\n let error = null\n if (e instanceof Error) {\n error = e.message\n errorCode = this._parseSolanaErrorCode(error)\n }\n return {\n res: null,\n error,\n errorCode\n }\n }\n\n let done = false\n\n // Start up resubmission loop\n let sendCount = 0\n const startTime = Date.now()\n if (retry) {\n ;(async () => {\n let elapsed = Date.now() - startTime\n // eslint-disable-next-line no-unmodified-loop-condition\n while (!done && elapsed < this.retryTimeoutMs) {\n try {\n sendRawTransaction()\n } catch (e) {\n logger.warn(\n `transactionHandler: error in send loop: ${e} for txId ${txid}`\n )\n }\n sendCount++\n await delay(this.sendingFrequencyMs)\n elapsed = Date.now() - startTime\n }\n })()\n }\n\n // Await for tx confirmation\n try {\n await this._awaitTransactionSignatureConfirmation(txid, logger)\n done = true\n logger.info(\n `transactionHandler: finished for txid ${txid} with ${sendCount} retries`\n )\n return {\n res: txid,\n error: null,\n errorCode: null\n }\n } catch (e) {\n logger.warn(\n `transactionHandler: error in awaitTransactionSignature: ${JSON.stringify(\n e\n )}, ${txid}`\n )\n done = true\n let errorCode = null\n let error = null\n if (e instanceof Error) {\n error = e.message\n errorCode = this._parseSolanaErrorCode(error)\n }\n return {\n res: null,\n error,\n errorCode\n }\n }\n }\n\n async _awaitTransactionSignatureConfirmation(txid: string, logger: Logger) {\n let done = false\n\n const result = await new Promise((resolve, reject) => {\n ;(async () => {\n // Setup timeout if nothing else finishes\n setTimeout(() => {\n if (done) {\n return\n }\n done = true\n const message = `transactionHandler: Timed out in await, ${txid}`\n logger.warn(message)\n reject(new Error(message))\n }, this.retryTimeoutMs)\n\n // Setup WS listener\n try {\n this.connection.onSignature(\n txid,\n (result) => {\n if (done) return\n done = true\n if (result.err) {\n const err = JSON.stringify(result.err)\n logger.warn(\n `transactionHandler: Error in onSignature ${txid}, ${err}`\n )\n reject(new Error(err))\n } else {\n resolve(txid)\n }\n },\n 'processed'\n )\n } catch (e) {\n done = true\n logger.error(`transactionHandler: WS error in setup ${txid}, ${e}`)\n }\n\n // Setup polling\n while (!done) {\n ;(async () => {\n try {\n const signatureStatuses =\n await this.connection.getSignatureStatuses([txid])\n const result = signatureStatuses?.value[0]\n\n // Early return this iteration if already done, or no result\n if (done || !result) return\n\n // End loop if error\n if (result.err) {\n const err = JSON.stringify(result.err)\n logger.error(\n `transactionHandler: polling saw result error: ${err}, tx: ${txid}`\n )\n done = true\n reject(new Error(err))\n return\n }\n\n // Early return if response without confirmation\n if (\n !(\n (result.confirmations !== null &&\n result.confirmations !== 0) ||\n result.confirmationStatus === 'confirmed' ||\n result.confirmationStatus === 'finalized'\n )\n ) {\n return\n }\n // Otherwise, we made it\n done = true\n resolve(txid)\n } catch (e) {\n if (!done) {\n logger.error(\n `transactionHandler: REST polling connection error: ${e}, tx: ${txid}`\n )\n }\n }\n })()\n\n await delay(this.pollingFrequencyMs)\n }\n })()\n })\n done = true\n return result\n }\n\n /**\n * Attempts to parse an error code out of a message of the form:\n * \"... custom program error: 0x1\", where the return in this case would be the number 1.\n * Returns null for unparsable strings.\n */\n _parseSolanaErrorCode(errorMessage: string) {\n if (!errorMessage) return null\n // Match on custom solana program errors\n const matcher = /(?:custom program error: 0x)(.*)$/\n const res = errorMessage.match(matcher)\n if (res && res.length === 2)\n return res[1] ? parseInt(res[1], 16) || null : null\n // Match on custom anchor errors\n const matcher2 = /(?:\"Custom\":)(\\d+)/\n const res2 = errorMessage.match(matcher2)\n if (res2 && res2.length === 2)\n return res2[1] ? parseInt(res2[1], 10) || null : null\n return null\n }\n}\n\nasync function delay(ms: number) {\n return await new Promise((resolve) => setTimeout(resolve, ms))\n}\n"],"names":["AUDIO_DECMIALS","WAUDIO_DECMIALS","CURRENT_USER_EXISTS_LOCAL_STORAGE_KEY","AuthHeaders","getTrackListens","timeFrame","idsArray","startTime","endTime","limit","offset","queryUrl","Error","queryParams","id","start","end","req","url","method","params","getUsers","walletAddress","handle","minBlockNumber","includeIncomplete","wallet","min_block_number","Array","isArray","include_incomplete","endpoint","getTracks","targetUserId","sort","filterDeleted","withUsers","user_id","filter_deleted","with_users","getTracksByHandleAndSlug","slug","getTracksIncludingUnlisted","identifiers","data","tracks","getRandomTracks","genre","exclusionList","time","getStemsForTrack","trackId","getRemixesOfTrack","getRemixTrackParents","getTrendingTracks","_objectSpread","getPlaylists","playlist_id","getFullPlaylist","encodedPlaylistId","encodedUserId","urlParams","getSocialFeed","filter","tracksOnly","tracks_only","getUserRepostFeed","userId","getFollowIntersectionUsers","followeeUserId","followerUserId","getTrackRepostIntersectionUsers","repostTrackId","getPlaylistRepostIntersectionUsers","repostPlaylistId","getFollowersForUser","getFolloweesForUser","getRepostersForTrack","getRepostersForPlaylist","getSaversForTrack","saveTrackId","getSaversForPlaylist","savePlaylistId","searchFull","text","kind","query","searchAutocomplete","searchTags","userTagCount","user_tag_count","getSavedPlaylists","getSavedAlbums","getSavedTracks","getUserAccount","undefined","getTopPlaylists","type","mood","getTopFullPlaylists","getTopFolloweeWindowed","window","getBestNewReleases","getMostLovedTracks","getFeelingLuckyTracks","getTopFolloweeSaves","getLatest","getTopCreatorsByGenres","genres","getURSMContentNodes","ownerWallet","owner_wallet","getNotifications","trackIds","timeout","track_id","getUserNotifications","timestamp","groupId","validTypes","group_id","valid_types","getUserSubscribers","bulkGetUserSubscribers","encodedUserIds","headers","ids","getCIDData","cid","responseType","getSolanaNotifications","minSlotNumber","min_slot_number","getTrackListenMilestones","getChallengeAttestation","challengeId","specifier","oracleAddress","oracle","getCreateSenderAttestation","senderEthAddress","sender_eth_address","getUndisbursedChallenges","completedBlockNumber","completed_blocknumber","verifyToken","token","getUserReplicaSet","getUnclaimedId","noCache","Math","floor","random","toString","getUserListenCountsMonthly","start_time","end_time","padBNToUint8Array","bn","toArray","SolanaUtils","bytes","ethPrivateKey","msgHash","keccak256","ethPrivateKeyArr","Buffer","from","signatureObj","secp256k1","ecdsaSign","Uint8Array","signature","recoveryId","recid","instruction","programId","keys","map","isSigner","pubkey","isWritable","recipientEthAddress","tokenAmount","transferId","encoder","TextEncoder","userBytes","ethAddressToArray","transferIdBytes","encode","amountBytes","items","sep","res","slice","reduce","prev","cur","of","amount","BN","seed","seedsArr","toBytes","push","PublicKey","findProgramAddress","address","findProgramAddressFromPubkey","authority","derivedAddress","bumpSeed","ethAddress","strippedEthAddress","replace","val","TransactionHandler","connection","useRelay","identityService","feePayerKeypairs","skipPreflight","retryTimeoutMs","pollingFrequencyMs","sendingFrequencyMs","instructions","errorMapping","recentBlockhash","logger","console","feePayerOverride","sendBlockhash","signatures","retry","result","_relayTransaction","_locallyConfirmTransaction","error","errorCode","fromErrorCode","relayable","prepareInstructionForRelay","transactionData","getLatestBlockhash","blockhash","solanaRelay","response","transactionSignature","message","_parseSolanaErrorCode","feePayerKeypairOverride","stringFeePayer","find","keypair","publicKey","feePayerAccount","tx","Transaction","forEach","i","add","feePayer","sign","addSignature","rawTransaction","serialize","sendRawTransaction","preflightCommitment","maxRetries","txid","warn","done","sendCount","Date","now","elapsed","e","delay","_awaitTransactionSignatureConfirmation","info","JSON","stringify","Promise","resolve","reject","setTimeout","onSignature","err","getSignatureStatuses","signatureStatuses","value","confirmations","confirmationStatus","errorMessage","matcher","match","length","parseInt","matcher2","res2","ms"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"core.js","sources":["../src/constants.ts","../src/services/identity/requests.ts","../src/services/discoveryProvider/requests.ts","../src/services/solana/padBNToUint8Array.ts","../src/services/solana/SolanaUtils.ts","../src/services/solana/transactionHandler.ts"],"sourcesContent":["export const AUDIO_DECMIALS = 18\nexport const WAUDIO_DECMIALS = 8\nexport const CURRENT_USER_EXISTS_LOCAL_STORAGE_KEY = '@audius/libs:found-user'\nexport enum AuthHeaders {\n MESSAGE = 'Encoded-Data-Message',\n SIGNATURE = 'Encoded-Data-Signature'\n}\n","import type { AxiosRequestConfig } from 'axios'\n\nexport type TimeFrame = 'day' | 'week' | 'month' | 'year' | 'millennium'\n\ntype QueryParams = {\n id?: number[]\n limit?: number\n offset?: number\n start?: string\n end?: string\n}\n\nexport const getTrackListens = (\n timeFrame: TimeFrame | null = null,\n idsArray: number[] | null = null,\n startTime: string | null = null,\n endTime: string | null = null,\n limit: number | null = null,\n offset: number | null = null\n) => {\n let queryUrl = 'tracks/listens/'\n\n if (timeFrame != null) {\n switch (timeFrame) {\n case 'day':\n case 'week':\n case 'month':\n case 'year':\n case 'millennium':\n break\n default:\n throw new Error('Invalid timeFrame value provided')\n }\n queryUrl += timeFrame\n }\n\n const queryParams: QueryParams = {}\n\n if (idsArray !== null) {\n queryParams.id = idsArray\n }\n\n if (limit !== null) {\n queryParams.limit = limit\n }\n\n if (offset !== null) {\n queryParams.offset = offset\n }\n\n if (startTime != null) {\n queryParams.start = startTime\n }\n\n if (endTime != null) {\n queryParams.end = endTime\n }\n\n const req: AxiosRequestConfig = {\n url: queryUrl,\n method: 'get',\n params: queryParams\n }\n return req\n}\n","/* eslint-disable @typescript-eslint/restrict-plus-operands */\n\nimport type { Nullable } from '../../utils'\nimport type { ResponseType } from 'axios'\n\nexport const getUsers = (\n limit = 100,\n offset = 0,\n idsArray: Nullable<number[]>,\n walletAddress?: Nullable<string>,\n handle?: Nullable<string>,\n minBlockNumber?: Nullable<number>,\n includeIncomplete?: Nullable<boolean>\n) => {\n type QueryParams = {\n limit: number\n offset: number\n handle?: string\n wallet?: string\n min_block_number?: number\n id?: string[]\n include_incomplete?: boolean\n }\n\n const queryParams: QueryParams = { limit: limit, offset: offset }\n if (handle) {\n queryParams.handle = handle\n }\n if (walletAddress) {\n queryParams.wallet = walletAddress\n }\n if (minBlockNumber) {\n queryParams.min_block_number = minBlockNumber\n }\n if (idsArray != null) {\n if (!Array.isArray(idsArray)) {\n throw new Error('Expected integer array of user ids')\n }\n queryParams.id = idsArray as unknown as string[]\n }\n if (includeIncomplete != null) {\n queryParams.include_incomplete = includeIncomplete\n }\n\n const req = { endpoint: 'users', queryParams }\n\n return req\n}\n\nexport const getTracks = (\n limit = 100,\n offset = 0,\n idsArray: Nullable<string[]>,\n targetUserId: Nullable<string>,\n sort: Nullable<boolean>,\n minBlockNumber: Nullable<number>,\n filterDeleted: Nullable<boolean>,\n withUsers = false\n) => {\n type QueryParams = {\n limit: number\n offset: number\n id?: string[]\n min_block_number?: number\n user_id?: string\n sort?: boolean\n filter_deleted?: boolean\n with_users?: boolean\n }\n\n const queryParams: QueryParams = { limit: limit, offset: offset }\n\n if (idsArray) {\n if (!Array.isArray(idsArray)) {\n throw new Error('Expected array of track ids')\n }\n queryParams.id = idsArray\n }\n if (minBlockNumber) {\n queryParams.min_block_number = minBlockNumber\n }\n if (targetUserId) {\n queryParams.user_id = targetUserId\n }\n if (sort) {\n queryParams.sort = sort\n }\n if (typeof filterDeleted === 'boolean') {\n queryParams.filter_deleted = filterDeleted\n }\n if (withUsers) {\n queryParams.with_users = true\n }\n\n const req = { endpoint: 'tracks', queryParams }\n return req\n}\n\nexport const getTracksByHandleAndSlug = (handle: string, slug: string) => {\n return {\n endpoint: 'v1/tracks',\n method: 'get',\n queryParams: { handle, slug }\n }\n}\n\nexport const getTracksIncludingUnlisted = (\n identifiers: string[],\n withUsers = false\n) => {\n const queryParams: { with_users?: boolean } = {}\n\n if (withUsers) {\n queryParams.with_users = true\n }\n\n const req = {\n endpoint: 'tracks_including_unlisted',\n method: 'post',\n data: {\n tracks: identifiers\n },\n queryParams\n }\n\n return req\n}\n\nexport const getRandomTracks = (\n genre: string,\n limit: number,\n exclusionList: number[],\n time: string\n) => {\n const req = {\n endpoint: 'tracks/random',\n queryParams: {\n genre,\n limit,\n exclusionList,\n time\n }\n }\n return req\n}\n\nexport const getStemsForTrack = (trackId: number) => {\n const req = {\n endpoint: `stems/${trackId}`,\n queryParams: {\n with_users: true\n }\n }\n return req\n}\n\nexport const getRemixesOfTrack = (\n trackId: number,\n limit: number | null = null,\n offset: number | null = null\n) => {\n const req = {\n endpoint: `remixes/${trackId}/children`,\n queryParams: {\n with_users: true,\n limit,\n offset\n }\n }\n return req\n}\n\nexport const getRemixTrackParents = (\n trackId: number,\n limit: number | null = null,\n offset: number | null = null\n) => {\n const req = {\n endpoint: `remixes/${trackId}/parents`,\n queryParams: {\n with_users: true,\n limit,\n offset\n }\n }\n return req\n}\n\nexport const getTrendingTracks = (\n genre: string | null = null,\n timeFrame: string | null = null,\n idsArray: number[] | null = null,\n limit: number | null = null,\n offset: number | null = null,\n withUsers = false\n) => {\n let endpoint = '/trending/'\n\n if (timeFrame != null) {\n switch (timeFrame) {\n case 'day':\n case 'week':\n case 'month':\n case 'year':\n break\n default:\n throw new Error('Invalid timeFrame value provided')\n }\n endpoint += `${endpoint}${timeFrame}`\n }\n\n const req = {\n endpoint,\n method: 'get',\n queryParams: {\n ...(idsArray !== null ? { id: idsArray } : {}),\n ...(limit !== null ? { limit } : {}),\n ...(offset !== null ? { offset } : {}),\n ...(genre !== null ? { genre } : {}),\n ...(withUsers ? { with_users: withUsers } : {})\n }\n }\n return req\n}\n\nexport const getPlaylists = (\n limit = 100,\n offset = 0,\n idsArray: Nullable<number[]> = null,\n targetUserId: Nullable<number> = null,\n withUsers = false\n) => {\n if (idsArray != null) {\n if (!Array.isArray(idsArray)) {\n throw new Error('Expected integer array of user ids')\n }\n }\n return {\n endpoint: 'playlists',\n queryParams: {\n limit,\n offset,\n ...(idsArray != null ? { playlist_id: idsArray } : {}),\n ...(targetUserId ? { user_id: targetUserId } : {}),\n ...(withUsers ? { with_users: true } : {})\n }\n }\n}\n\nexport const getFullPlaylist = (\n encodedPlaylistId: string,\n encodedUserId: string\n) => {\n return {\n endpoint: 'v1/full/playlists',\n urlParams: '/' + encodedPlaylistId,\n queryParams: {\n user_id: encodedUserId\n }\n }\n}\n\nexport const getSocialFeed = (\n filter: string,\n limit = 100,\n offset = 0,\n withUsers = false,\n tracksOnly = false\n) => {\n return {\n endpoint: 'feed',\n queryParams: {\n filter,\n limit,\n offset,\n with_users: withUsers,\n tracks_only: tracksOnly\n }\n }\n}\n\nexport const getUserRepostFeed = (\n userId: number,\n limit = 100,\n offset = 0,\n withUsers = false\n) => {\n return {\n endpoint: 'feed',\n urlParams: '/reposts/' + userId,\n queryParams: { limit, offset, with_users: withUsers }\n }\n}\n\nexport const getFollowIntersectionUsers = (\n limit = 100,\n offset = 0,\n followeeUserId: number,\n followerUserId: number\n) => {\n return {\n endpoint: 'users',\n urlParams: '/intersection/follow/' + followeeUserId + '/' + followerUserId,\n queryParams: { limit, offset }\n }\n}\n\nexport const getTrackRepostIntersectionUsers = (\n limit = 100,\n offset = 0,\n repostTrackId: number,\n followerUserId: number\n) => {\n return {\n endpoint: 'users',\n urlParams:\n '/intersection/repost/track/' + repostTrackId + '/' + followerUserId,\n queryParams: { limit: limit, offset: offset }\n }\n}\n\nexport const getPlaylistRepostIntersectionUsers = (\n limit = 100,\n offset = 0,\n repostPlaylistId: number,\n followerUserId: number\n) => {\n return {\n endpoint: 'users',\n urlParams:\n '/intersection/repost/playlist/' +\n repostPlaylistId +\n '/' +\n followerUserId,\n queryParams: { limit: limit, offset: offset }\n }\n}\n\nexport const getFollowersForUser = (\n limit = 100,\n offset = 0,\n followeeUserId: string\n) => {\n return {\n endpoint: 'users',\n urlParams: '/followers/' + followeeUserId,\n queryParams: { limit: limit, offset: offset }\n }\n}\n\nexport const getFolloweesForUser = (\n limit = 100,\n offset = 0,\n followerUserId: string\n) => {\n return {\n endpoint: 'users',\n urlParams: '/followees/' + followerUserId,\n queryParams: { limit: limit, offset: offset }\n }\n}\n\nexport const getRepostersForTrack = (\n limit = 100,\n offset = 0,\n repostTrackId: number\n) => {\n return {\n endpoint: 'users',\n urlParams: '/reposts/track/' + repostTrackId,\n queryParams: { limit: limit, offset: offset }\n }\n}\n\nexport const getRepostersForPlaylist = (\n limit = 100,\n offset = 0,\n repostPlaylistId: number\n) => {\n return {\n endpoint: 'users',\n urlParams: '/reposts/playlist/' + repostPlaylistId,\n queryParams: { limit: limit, offset: offset }\n }\n}\n\nexport const getSaversForTrack = (\n limit = 100,\n offset = 0,\n saveTrackId: number\n) => {\n return {\n endpoint: 'users',\n urlParams: '/saves/track/' + saveTrackId,\n queryParams: { limit: limit, offset: offset }\n }\n}\n\nexport const getSaversForPlaylist = (\n limit = 100,\n offset = 0,\n savePlaylistId: number\n) => {\n return {\n endpoint: 'users',\n urlParams: '/saves/playlist/' + savePlaylistId,\n queryParams: { limit: limit, offset: offset }\n }\n}\n\nexport const searchFull = (\n text: string,\n kind: string,\n limit = 100,\n offset = 0\n) => {\n return {\n endpoint: 'search/full',\n queryParams: { query: text, kind, limit, offset }\n }\n}\n\nexport const searchAutocomplete = (text: string, limit = 100, offset = 0) => {\n return {\n endpoint: 'search/autocomplete',\n queryParams: { query: text, limit: limit, offset: offset }\n }\n}\n\nexport const searchTags = (\n text: string,\n userTagCount = 2,\n kind = 'all',\n limit = 100,\n offset = 0\n) => {\n return {\n endpoint: 'search/tags',\n queryParams: {\n query: text,\n user_tag_count: userTagCount,\n kind,\n limit,\n offset\n }\n }\n}\n\nexport const getSavedPlaylists = (\n limit = 100,\n offset = 0,\n withUsers = false\n) => {\n return {\n endpoint: 'saves/playlists',\n queryParams: { limit: limit, offset: offset, with_users: withUsers }\n }\n}\n\nexport const getSavedAlbums = (limit = 100, offset = 0, withUsers = false) => {\n return {\n endpoint: 'saves/albums',\n queryParams: { limit: limit, offset: offset, with_users: withUsers }\n }\n}\n\nexport const getSavedTracks = (limit = 100, offset = 0, withUsers = false) => {\n return {\n endpoint: 'saves/tracks',\n queryParams: { limit: limit, offset: offset, with_users: withUsers }\n }\n}\n\n/**\n * Return user collections (saved & uploaded) along w/ users for those collections\n */\nexport const getUserAccount = (wallet: string) => {\n if (wallet === undefined) {\n throw new Error('Expected wallet to get user account')\n }\n return {\n endpoint: 'users/account',\n queryParams: { wallet }\n }\n}\n\n/**\n * @deprecated Migrate to using getTopFullPlaylists\n */\nexport const getTopPlaylists = (\n type: 'playlist' | 'album',\n limit: number,\n mood: string,\n filter: string,\n withUsers = false\n) => {\n return {\n endpoint: `/top/${type}`,\n queryParams: {\n limit,\n mood,\n filter,\n with_users: withUsers\n }\n }\n}\n\nexport type GetTopFullPlaylistsParams = {\n type: 'playlist' | 'album'\n limit?: number\n mood?: string\n filter?: string\n withUsers?: boolean\n encodedUserId?: string\n}\n\nexport const getTopFullPlaylists = ({\n type,\n limit,\n mood,\n filter,\n encodedUserId,\n withUsers = false\n}: GetTopFullPlaylistsParams) => {\n return {\n endpoint: `/v1/full/playlists/top`,\n queryParams: {\n type,\n limit,\n mood,\n filter,\n with_users: withUsers,\n user_id: encodedUserId\n }\n }\n}\n\n/**\n * @deprecated Migrate to using getBestNewReleases\n */\nexport const getTopFolloweeWindowed = (\n type: string,\n window: string,\n limit: string,\n withUsers = false\n) => {\n return {\n endpoint: `/top_followee_windowed/${type}/${window}`,\n queryParams: {\n limit,\n with_users: withUsers\n }\n }\n}\n\nexport const getBestNewReleases = (\n window: string,\n limit: string,\n encodedUserId: string,\n withUsers = false\n) => {\n return {\n endpoint: `/v1/full/tracks/best_new_releases`,\n queryParams: {\n window,\n limit,\n user_id: encodedUserId,\n with_users: withUsers\n }\n }\n}\n\nexport const getMostLovedTracks = (\n encodedUserId: string,\n limit: string,\n withUsers = false\n) => {\n return {\n endpoint: `/v1/full/tracks/most_loved`,\n queryParams: {\n limit,\n user_id: encodedUserId,\n with_users: withUsers\n }\n }\n}\n\nexport const getFeelingLuckyTracks = (\n encodedUserId: string,\n limit: string,\n withUsers = false\n) => {\n return {\n endpoint: `/v1/full/tracks/feeling_lucky`,\n queryParams: {\n limit,\n user_id: encodedUserId,\n with_users: withUsers\n }\n }\n}\n\nexport const getTopFolloweeSaves = (\n type: string,\n limit: string,\n withUsers = false\n) => {\n return {\n endpoint: `/top_followee_saves/${type}`,\n queryParams: {\n limit,\n with_users: withUsers\n }\n }\n}\n\nexport const getLatest = (type: string, limit = 1, offset = 0) => {\n return {\n endpoint: `/latest/${type}`,\n queryParams: { limit, offset }\n }\n}\n\nexport const getTopCreatorsByGenres = (\n genres: string[],\n limit = 30,\n offset = 0,\n withUsers = false\n) => {\n return {\n endpoint: 'users/genre/top',\n queryParams: { genre: genres, limit, offset, with_users: withUsers }\n }\n}\n\nexport const getURSMContentNodes = (ownerWallet: string | null) => {\n return {\n endpoint: 'ursm_content_nodes',\n queryParams: {\n owner_wallet: ownerWallet\n }\n }\n}\n\nexport const getNotifications = (\n minBlockNumber: string,\n trackIds: string[],\n timeout: number\n) => {\n return {\n endpoint: 'notifications',\n queryParams: {\n min_block_number: minBlockNumber,\n track_id: trackIds\n },\n timeout\n }\n}\n\nexport type GetUserNotificationsParams = {\n encodedUserId: string\n timestamp: number\n groupId?: string\n limit?: number\n validTypes?: string[]\n}\n\nexport const getUserNotifications = ({\n encodedUserId,\n timestamp,\n groupId,\n limit,\n validTypes\n}: GetUserNotificationsParams) => {\n return {\n endpoint: `v1/full/notifications/${encodedUserId}`,\n queryParams: {\n timestamp,\n group_id: groupId,\n limit,\n valid_types: validTypes\n }\n }\n}\n\nexport const getUserSubscribers = (encodedUserId: string, timeout: number) => {\n return {\n endpoint: `v1/full/users/${encodedUserId}/subscribers`,\n method: 'get',\n timeout\n }\n}\n\nexport const bulkGetUserSubscribers = (\n encodedUserIds: string,\n timeout: number\n) => {\n return {\n endpoint: 'v1/full/users/subscribers',\n method: 'post',\n headers: {\n 'Content-Type': 'application/json'\n },\n data: {\n ids: encodedUserIds\n },\n timeout\n }\n}\n\nexport const getCIDData = (\n cid: string,\n responseType: ResponseType = 'json',\n timeout: number\n) => {\n return {\n endpoint: `v1/full/cid_data/${cid}`,\n method: 'get',\n responseType,\n timeout\n }\n}\n\nexport const getSolanaNotifications = (\n minSlotNumber: number,\n timeout: number\n) => {\n return {\n endpoint: 'solana_notifications',\n queryParams: {\n min_slot_number: minSlotNumber\n },\n timeout\n }\n}\n\nexport const getTrackListenMilestones = (timeout: number) => {\n return {\n endpoint: 'track_listen_milestones',\n timeout\n }\n}\n\nexport const getChallengeAttestation = (\n challengeId: string,\n encodedUserId: string,\n specifier: string,\n oracleAddress: string\n) => {\n return {\n endpoint: `/v1/challenges/${challengeId}/attest`,\n queryParams: {\n user_id: encodedUserId,\n specifier,\n oracle: oracleAddress\n }\n }\n}\n\nexport const getCreateSenderAttestation = (senderEthAddress: string) => {\n return {\n endpoint: '/v1/challenges/attest_sender',\n queryParams: {\n sender_eth_address: senderEthAddress\n }\n }\n}\n\nexport const getUndisbursedChallenges = (\n limit: number | null,\n offset: number | null,\n completedBlockNumber: string | null,\n encodedUserId: number | null\n) => {\n return {\n endpoint: '/v1/challenges/undisbursed',\n queryParams: {\n limit,\n offset,\n completed_blocknumber: completedBlockNumber,\n user_id: encodedUserId\n }\n }\n}\n\nexport const verifyToken = (token: string) => {\n return {\n endpoint: '/v1/users/verify_token',\n queryParams: {\n token: token\n }\n }\n}\n\nexport const getUserReplicaSet = (encodedUserId: string) => {\n return {\n endpoint: `/v1/full/users/${encodedUserId}/replica_set`,\n timeout: 5000\n }\n}\n\nexport const getUnclaimedId = (type: 'users' | 'playlists' | 'tracks') => {\n return {\n endpoint: `/v1/${type}/unclaimed_id`,\n timeout: 5000,\n queryParams: {\n noCache: Math.floor(Math.random() * 1000).toString()\n }\n }\n}\n\nexport const getUserListenCountsMonthly = (\n encodedUserId: string,\n startTime: string,\n endTime: string\n) => {\n return {\n endpoint: `/v1/users/${encodedUserId}/listen_counts_monthly`,\n timeout: 10000,\n queryParams: {\n start_time: startTime,\n end_time: endTime\n }\n }\n}\n","import type BN from 'bn.js'\n/**\n * Converts a BN to a Uint8Array of length 8, in little endian notation.\n * Useful for when Rust wants a u64 (8 * 8) represented as a byte array.\n * Ex: https://github.com/AudiusProject/audius-protocol/blob/main/solana-programs/reward-manager/program/src/processor.rs#L389\n */\nexport const padBNToUint8Array = (bn: BN): number[] => bn.toArray('le', 8)\n","import { padBNToUint8Array } from './padBNToUint8Array'\nimport {\n PublicKey,\n PublicKeyInitData,\n TransactionInstruction\n} from '@solana/web3.js'\nimport BN from 'bn.js'\nimport keccak256 from 'keccak256'\nimport secp256k1 from 'secp256k1'\nimport { WAUDIO_DECMIALS } from '../../constants'\n\nexport class SolanaUtils {\n /**\n * Signs arbitrary bytes\n */\n static signBytes(bytes: Buffer, ethPrivateKey: string) {\n const msgHash = keccak256(bytes)\n const ethPrivateKeyArr = Buffer.from(ethPrivateKey, 'hex')\n const signatureObj = secp256k1.ecdsaSign(\n Uint8Array.from(msgHash),\n ethPrivateKeyArr\n )\n const signature = Buffer.from(signatureObj.signature)\n return {\n signature,\n recoveryId: signatureObj.recid\n }\n }\n\n /**\n * Puts an instruction in a serializable form that our relay can understand.\n * Note we are faking the return type for callers to work with it easier\n */\n static prepareInstructionForRelay(instruction: TransactionInstruction) {\n return {\n programId: instruction.programId.toString(),\n data: instruction.data,\n keys: instruction.keys.map(({ isSigner, pubkey, isWritable }) => ({\n pubkey: pubkey.toString(),\n isSigner,\n isWritable\n }))\n }\n }\n\n /**\n * Constructs a transfer ID\n */\n static constructTransferId(challengeId: string, specifier: string) {\n return `${challengeId}:${specifier}`\n }\n\n /**\n * Constructs an attestation from inputs.\n */\n static constructAttestation(\n recipientEthAddress: string,\n tokenAmount: BN,\n transferId: string,\n oracleAddress?: string\n ) {\n const encoder = new TextEncoder()\n const userBytes = SolanaUtils.ethAddressToArray(recipientEthAddress)\n const transferIdBytes = encoder.encode(transferId)\n const amountBytes = padBNToUint8Array(tokenAmount)\n const items = oracleAddress\n ? ([\n userBytes,\n amountBytes,\n transferIdBytes,\n SolanaUtils.ethAddressToArray(oracleAddress)\n ] as const)\n : ([userBytes, amountBytes, transferIdBytes] as const)\n const sep = encoder.encode('_')\n const res = items.slice(1).reduce<Uint8Array>((prev, cur) => {\n return Uint8Array.of(...prev, ...sep, ...cur)\n }, Uint8Array.from(items[0]))\n return res\n }\n\n /**\n * Converts \"UI\" wAudio (i.e. 5) into properly denominated BN representation - (i.e. 5 * 10 ^ 8)\n */\n static uiAudioToBNWaudio(amount: number) {\n return new BN(amount * 10 ** WAUDIO_DECMIALS)\n }\n\n /**\n * Derives a program address from a program ID and pubkey as seed.\n * Optionally takes in seeds.\n * Returns the new pubkey and bump seeds.\n */\n static async findProgramAddressFromPubkey(\n programId: PublicKey,\n pubkey: PublicKey,\n seed?: Uint8Array\n ) {\n const seedsArr = [pubkey.toBytes().slice(0, 32)]\n if (seed) {\n seedsArr.push(seed)\n }\n return await PublicKey.findProgramAddress(seedsArr, programId)\n }\n\n /**\n * Finds a program address, using both seeds, pubkey, and the derived authority.\n * Return [authority, derivedAddress, and bumpSeeds]\n *\n */\n static async findProgramAddressWithAuthority(\n programId: PublicKey,\n address: PublicKey,\n seed: Uint8Array\n ) {\n // Finds the authority account by generating a PDA with the address as a seed\n const [authority] = await SolanaUtils.findProgramAddressFromPubkey(\n programId,\n address\n )\n\n const [derivedAddress, bumpSeed] =\n await SolanaUtils.findProgramAddressFromPubkey(programId, authority, seed)\n return [authority, derivedAddress, bumpSeed] as const\n }\n\n /**\n * Converts an eth address hex represenatation to an array of Uint8s in big endian notation\n * @param ethAddress\n */\n static ethAddressToArray(ethAddress: string) {\n const strippedEthAddress = ethAddress.replace('0x', '')\n // Need to pad the array to length 20 - otherwise, hex eth keys starting with '0' would\n // result in truncated arrays, while eth spec is always 20 bytes\n return Uint8Array.of(...new BN(strippedEthAddress, 'hex').toArray('be', 20))\n }\n\n // Safely create pubkey from nullable val\n static newPublicKeyNullable<T extends PublicKeyInitData | null>(\n val: T\n ): NullablePublicKey<T> {\n return val\n ? (new PublicKey(val) as NullablePublicKey<T>)\n : (null as NullablePublicKey<T>)\n }\n}\n\ntype NullablePublicKey<T> = T extends null ? null : PublicKey\n","import { SolanaUtils } from './SolanaUtils'\nimport {\n Transaction,\n PublicKey,\n Connection,\n Keypair,\n TransactionInstruction\n} from '@solana/web3.js'\nimport type { IdentityService, RelayTransactionData } from '../identity'\nimport type { Logger, Nullable } from '../../utils'\n\ntype HandleTransactionParams = {\n instructions: TransactionInstruction[]\n errorMapping?: Nullable<{ fromErrorCode: (errorCode: number) => string }>\n recentBlockhash?: Nullable<string>\n logger?: Logger\n skipPreflight?: Nullable<boolean>\n feePayerOverride?: Nullable<PublicKey>\n sendBlockhash?: boolean\n signatures?: Nullable<Array<{ publicKey: string; signature: Buffer }>>\n retry?: boolean\n}\n\n/**\n * Handles sending Solana transactions, either directly via `sendAndConfirmTransaction`,\n * or via IdentityService's relay.\n */\nexport class TransactionHandler {\n private readonly connection: Connection\n private readonly useRelay: boolean\n private readonly identityService: IdentityService | null\n private readonly feePayerKeypairs: Keypair[] | null\n private readonly skipPreflight: boolean\n private readonly retryTimeoutMs: number\n private readonly pollingFrequencyMs: number\n private readonly sendingFrequencyMs: number\n\n /**\n * Creates an instance of TransactionHandler.\n */\n constructor({\n connection,\n useRelay,\n identityService = null,\n feePayerKeypairs = null,\n skipPreflight = true,\n retryTimeoutMs = 60000,\n pollingFrequencyMs = 300,\n sendingFrequencyMs = 300\n }: {\n connection: Connection\n useRelay: boolean\n identityService?: IdentityService | null\n feePayerKeypairs?: Keypair[] | null\n skipPreflight?: boolean\n retryTimeoutMs?: number\n pollingFrequencyMs?: number\n sendingFrequencyMs?: number\n }) {\n this.connection = connection\n this.useRelay = useRelay\n this.identityService = identityService\n this.feePayerKeypairs = feePayerKeypairs\n this.skipPreflight = skipPreflight\n this.retryTimeoutMs = retryTimeoutMs\n this.pollingFrequencyMs = pollingFrequencyMs\n this.sendingFrequencyMs = sendingFrequencyMs\n }\n\n /**\n * Primary method to send a Solana transaction.\n */\n async handleTransaction({\n instructions,\n errorMapping = null,\n recentBlockhash = null,\n logger = console,\n skipPreflight = false,\n feePayerOverride = null,\n sendBlockhash = false,\n signatures = null,\n retry = true\n }: HandleTransactionParams) {\n let result: {\n res: string | null\n errorCode: string | number | null\n error: string | null\n } | null = null\n if (this.useRelay) {\n result = await this._relayTransaction(\n instructions,\n recentBlockhash,\n skipPreflight,\n feePayerOverride,\n sendBlockhash,\n signatures,\n retry\n )\n } else {\n result = await this._locallyConfirmTransaction(\n instructions,\n recentBlockhash,\n logger,\n skipPreflight,\n feePayerOverride,\n signatures,\n retry\n )\n }\n if (result.error && result.errorCode !== null && errorMapping) {\n result.errorCode = errorMapping.fromErrorCode(result.errorCode as number)\n }\n return result\n }\n\n async _relayTransaction(\n instructions: TransactionInstruction[],\n recentBlockhash: string | null,\n skipPreflight: boolean | null,\n feePayerOverride: Nullable<PublicKey> = null,\n sendBlockhash: boolean,\n signatures: Array<{ publicKey: string; signature: Buffer }> | null,\n retry: boolean\n ) {\n const relayable = instructions.map(SolanaUtils.prepareInstructionForRelay)\n\n const transactionData: RelayTransactionData = {\n signatures,\n instructions: relayable,\n skipPreflight:\n skipPreflight === null ? this.skipPreflight : skipPreflight,\n feePayerOverride: feePayerOverride ? feePayerOverride.toString() : null,\n retry\n }\n\n if (sendBlockhash || Array.isArray(signatures)) {\n transactionData.recentBlockhash =\n recentBlockhash ??\n (await this.connection.getLatestBlockhash('confirmed')).blockhash\n }\n\n try {\n const response = await this.identityService?.solanaRelay(transactionData)\n return {\n res: response?.transactionSignature ?? null,\n error: null,\n errorCode: null\n }\n } catch (e) {\n let error = null\n if (typeof e === 'object' && e !== null) {\n error = (e as any).response?.data?.error || (e as Error).message\n }\n const errorCode = error ? this._parseSolanaErrorCode(error) : null\n return { res: null, error, errorCode }\n }\n }\n\n async _locallyConfirmTransaction(\n instructions: TransactionInstruction[],\n recentBlockhash: string | null,\n logger: Logger,\n skipPreflight: boolean | null,\n feePayerOverride: Nullable<PublicKey> = null,\n signatures: Array<{ publicKey: string; signature: Buffer }> | null = null,\n retry = true\n ) {\n const feePayerKeypairOverride = (() => {\n if (feePayerOverride && this.feePayerKeypairs) {\n const stringFeePayer = feePayerOverride.toString()\n return this.feePayerKeypairs.find(\n (keypair) => keypair.publicKey.toString() === stringFeePayer\n )\n }\n return null\n })()\n\n const feePayerAccount =\n feePayerKeypairOverride ?? this.feePayerKeypairs?.[0]\n if (!feePayerAccount) {\n logger.error(\n 'transactionHandler: Local feepayer keys missing for direct confirmation!'\n )\n return {\n res: null,\n error: 'Missing keys',\n errorCode: null\n }\n }\n\n // Get blockhash\n\n recentBlockhash =\n recentBlockhash ??\n (await this.connection.getLatestBlockhash('confirmed')).blockhash\n\n // Construct the txn\n\n const tx = new Transaction({ recentBlockhash })\n instructions.forEach((i) => tx.add(i))\n tx.feePayer = feePayerAccount.publicKey\n tx.sign(feePayerAccount)\n\n if (Array.isArray(signatures)) {\n signatures.forEach(({ publicKey, signature }) => {\n tx.addSignature(new PublicKey(publicKey), signature)\n })\n }\n\n let rawTransaction: Buffer\n try {\n rawTransaction = tx.serialize()\n } catch (e) {\n logger.warn(`transactionHandler: transaction serialization failed: ${e}`)\n let errorCode = null\n let error = null\n if (e instanceof Error) {\n error = e.message\n errorCode = this._parseSolanaErrorCode(error)\n }\n return {\n res: null,\n error,\n errorCode\n }\n }\n\n // Send the txn\n\n const sendRawTransaction = async () => {\n return await this.connection.sendRawTransaction(rawTransaction, {\n skipPreflight:\n skipPreflight === null ? this.skipPreflight : skipPreflight,\n preflightCommitment: 'processed',\n maxRetries: retry ? 0 : undefined\n })\n }\n\n let txid\n try {\n txid = await sendRawTransaction()\n } catch (e) {\n // Rarely, this intiial send will fail\n logger.warn(`transactionHandler: Initial send failed: ${e}`)\n let errorCode = null\n let error = null\n if (e instanceof Error) {\n error = e.message\n errorCode = this._parseSolanaErrorCode(error)\n }\n return {\n res: null,\n error,\n errorCode\n }\n }\n\n let done = false\n\n // Start up resubmission loop\n let sendCount = 0\n const startTime = Date.now()\n if (retry) {\n ;(async () => {\n let elapsed = Date.now() - startTime\n // eslint-disable-next-line no-unmodified-loop-condition\n while (!done && elapsed < this.retryTimeoutMs) {\n try {\n sendRawTransaction()\n } catch (e) {\n logger.warn(\n `transactionHandler: error in send loop: ${e} for txId ${txid}`\n )\n }\n sendCount++\n await delay(this.sendingFrequencyMs)\n elapsed = Date.now() - startTime\n }\n })()\n }\n\n // Await for tx confirmation\n try {\n await this._awaitTransactionSignatureConfirmation(txid, logger)\n done = true\n logger.info(\n `transactionHandler: finished for txid ${txid} with ${sendCount} retries`\n )\n return {\n res: txid,\n error: null,\n errorCode: null\n }\n } catch (e) {\n logger.warn(\n `transactionHandler: error in awaitTransactionSignature: ${JSON.stringify(\n e\n )}, ${txid}`\n )\n done = true\n let errorCode = null\n let error = null\n if (e instanceof Error) {\n error = e.message\n errorCode = this._parseSolanaErrorCode(error)\n }\n return {\n res: null,\n error,\n errorCode\n }\n }\n }\n\n async _awaitTransactionSignatureConfirmation(txid: string, logger: Logger) {\n let done = false\n\n const result = await new Promise((resolve, reject) => {\n ;(async () => {\n // Setup timeout if nothing else finishes\n setTimeout(() => {\n if (done) {\n return\n }\n done = true\n const message = `transactionHandler: Timed out in await, ${txid}`\n logger.warn(message)\n reject(new Error(message))\n }, this.retryTimeoutMs)\n\n // Setup WS listener\n try {\n this.connection.onSignature(\n txid,\n (result) => {\n if (done) return\n done = true\n if (result.err) {\n const err = JSON.stringify(result.err)\n logger.warn(\n `transactionHandler: Error in onSignature ${txid}, ${err}`\n )\n reject(new Error(err))\n } else {\n resolve(txid)\n }\n },\n 'processed'\n )\n } catch (e) {\n done = true\n logger.error(`transactionHandler: WS error in setup ${txid}, ${e}`)\n }\n\n // Setup polling\n while (!done) {\n ;(async () => {\n try {\n const signatureStatuses =\n await this.connection.getSignatureStatuses([txid])\n const result = signatureStatuses?.value[0]\n\n // Early return this iteration if already done, or no result\n if (done || !result) return\n\n // End loop if error\n if (result.err) {\n const err = JSON.stringify(result.err)\n logger.error(\n `transactionHandler: polling saw result error: ${err}, tx: ${txid}`\n )\n done = true\n reject(new Error(err))\n return\n }\n\n // Early return if response without confirmation\n if (\n !(\n (result.confirmations !== null &&\n result.confirmations !== 0) ||\n result.confirmationStatus === 'confirmed' ||\n result.confirmationStatus === 'finalized'\n )\n ) {\n return\n }\n // Otherwise, we made it\n done = true\n resolve(txid)\n } catch (e) {\n if (!done) {\n logger.error(\n `transactionHandler: REST polling connection error: ${e}, tx: ${txid}`\n )\n }\n }\n })()\n\n await delay(this.pollingFrequencyMs)\n }\n })()\n })\n done = true\n return result\n }\n\n /**\n * Attempts to parse an error code out of a message of the form:\n * \"... custom program error: 0x1\", where the return in this case would be the number 1.\n * Returns null for unparsable strings.\n */\n _parseSolanaErrorCode(errorMessage: string) {\n if (!errorMessage) return null\n // Match on custom solana program errors\n const matcher = /(?:custom program error: 0x)(.*)$/\n const res = errorMessage.match(matcher)\n if (res && res.length === 2)\n return res[1] ? parseInt(res[1], 16) || null : null\n // Match on custom anchor errors\n const matcher2 = /(?:\"Custom\":)(\\d+)/\n const res2 = errorMessage.match(matcher2)\n if (res2 && res2.length === 2)\n return res2[1] ? parseInt(res2[1], 10) || null : null\n return null\n }\n}\n\nasync function delay(ms: number) {\n return await new Promise((resolve) => setTimeout(resolve, ms))\n}\n"],"names":["AUDIO_DECMIALS","WAUDIO_DECMIALS","CURRENT_USER_EXISTS_LOCAL_STORAGE_KEY","AuthHeaders","getTrackListens","timeFrame","idsArray","startTime","endTime","limit","offset","queryUrl","Error","queryParams","id","start","end","req","url","method","params","getUsers","walletAddress","handle","minBlockNumber","includeIncomplete","wallet","min_block_number","Array","isArray","include_incomplete","endpoint","getTracks","targetUserId","sort","filterDeleted","withUsers","user_id","filter_deleted","with_users","getTracksByHandleAndSlug","slug","getTracksIncludingUnlisted","identifiers","data","tracks","getRandomTracks","genre","exclusionList","time","getStemsForTrack","trackId","getRemixesOfTrack","getRemixTrackParents","getTrendingTracks","_objectSpread","getPlaylists","playlist_id","getFullPlaylist","encodedPlaylistId","encodedUserId","urlParams","getSocialFeed","filter","tracksOnly","tracks_only","getUserRepostFeed","userId","getFollowIntersectionUsers","followeeUserId","followerUserId","getTrackRepostIntersectionUsers","repostTrackId","getPlaylistRepostIntersectionUsers","repostPlaylistId","getFollowersForUser","getFolloweesForUser","getRepostersForTrack","getRepostersForPlaylist","getSaversForTrack","saveTrackId","getSaversForPlaylist","savePlaylistId","searchFull","text","kind","query","searchAutocomplete","searchTags","userTagCount","user_tag_count","getSavedPlaylists","getSavedAlbums","getSavedTracks","getUserAccount","undefined","getTopPlaylists","type","mood","getTopFullPlaylists","getTopFolloweeWindowed","window","getBestNewReleases","getMostLovedTracks","getFeelingLuckyTracks","getTopFolloweeSaves","getLatest","getTopCreatorsByGenres","genres","getURSMContentNodes","ownerWallet","owner_wallet","getNotifications","trackIds","timeout","track_id","getUserNotifications","timestamp","groupId","validTypes","group_id","valid_types","getUserSubscribers","bulkGetUserSubscribers","encodedUserIds","headers","ids","getCIDData","cid","responseType","getSolanaNotifications","minSlotNumber","min_slot_number","getTrackListenMilestones","getChallengeAttestation","challengeId","specifier","oracleAddress","oracle","getCreateSenderAttestation","senderEthAddress","sender_eth_address","getUndisbursedChallenges","completedBlockNumber","completed_blocknumber","verifyToken","token","getUserReplicaSet","getUnclaimedId","noCache","Math","floor","random","toString","getUserListenCountsMonthly","start_time","end_time","padBNToUint8Array","bn","toArray","SolanaUtils","bytes","ethPrivateKey","msgHash","keccak256","ethPrivateKeyArr","Buffer","from","signatureObj","secp256k1","ecdsaSign","Uint8Array","signature","recoveryId","recid","instruction","programId","keys","map","isSigner","pubkey","isWritable","recipientEthAddress","tokenAmount","transferId","encoder","TextEncoder","userBytes","ethAddressToArray","transferIdBytes","encode","amountBytes","items","sep","res","slice","reduce","prev","cur","of","amount","BN","seed","seedsArr","toBytes","push","PublicKey","findProgramAddress","address","findProgramAddressFromPubkey","authority","derivedAddress","bumpSeed","ethAddress","strippedEthAddress","replace","val","TransactionHandler","connection","useRelay","identityService","feePayerKeypairs","skipPreflight","retryTimeoutMs","pollingFrequencyMs","sendingFrequencyMs","instructions","errorMapping","recentBlockhash","logger","console","feePayerOverride","sendBlockhash","signatures","retry","result","_relayTransaction","_locallyConfirmTransaction","error","errorCode","fromErrorCode","relayable","prepareInstructionForRelay","transactionData","getLatestBlockhash","blockhash","solanaRelay","response","transactionSignature","message","_parseSolanaErrorCode","feePayerKeypairOverride","stringFeePayer","find","keypair","publicKey","feePayerAccount","tx","Transaction","forEach","i","add","feePayer","sign","addSignature","rawTransaction","serialize","warn","sendRawTransaction","preflightCommitment","maxRetries","txid","done","sendCount","Date","now","elapsed","e","delay","_awaitTransactionSignatureConfirmation","info","JSON","stringify","Promise","resolve","reject","setTimeout","onSignature","err","getSignatureStatuses","signatureStatuses","value","confirmations","confirmationStatus","errorMessage","matcher","match","length","parseInt","matcher2","res2","ms"],"mappings":"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"}
|