UNPKG

myria-core-sdk

Version:

Latest version SDK

226 lines (211 loc) 16.3 kB
import { UserAPI, UserMarketplaceAPI } from "../core/apis"; /** * Create DeveloperAccountManager instance object * @class DeveloperAccountManager * @param {EnvTypes} env Environment types enum params (Ex: EnvTypes.DEV / EnvTypes.STAGING / EnvTypes.PREPROD / EnvTypes.PROD) */ export class DeveloperAccountManager { constructor(env) { this.userAPI = new UserAPI(env); this.userMarketplaceAPI = new UserMarketplaceAPI(env); } /** * @description Perform the retrieve user wallet by the Stark Key * @param {string} starkKey Stark Key of user in L2 system of Myria * @example <caption>Sample code</caption> * // Sample code on staging: const developerAccountManager = new DeveloperAccountManager(EnvTypes.STAGING); const starkKey = '0x.....'; const userWalletData = await developerAccountManager.getUserWalletByStarkKey(starkKey); console.log('Testnet Data ->', userWalletData); // Sample code on Production: const developerAccountManager = new DeveloperAccountManager(EnvTypes.PRODUCTION); const starkKey = '0x.....'; const userWalletData = await developerAccountManager.getUserWalletByStarkKey(starkKey); console.log('Production Data ->', userWalletData); * @returns {UserDataResponse | undefined} The details user data response for registration progress (including signature, stark key, wallet address) * @throws {string} Exception: Stark Key is required! * @throws {string} Http Status Code 404: User 0x... is not registered * @throws {string} Http Status Code 500: Get user data failed - unexpected with internal server error * @throws {string} Http Status Code 500: Internal Server Error with ${Exception} */ async getUserWalletByStarkKey(starkKey) { if (!starkKey) { throw new Error("Stark Key is required"); } let res; try { const registerUserResponse = await this.userAPI.getUserByWalletAddress(starkKey); if ((registerUserResponse === null || registerUserResponse === void 0 ? void 0 : registerUserResponse.status) === 'success' && (registerUserResponse === null || registerUserResponse === void 0 ? void 0 : registerUserResponse.data)) { res = registerUserResponse === null || registerUserResponse === void 0 ? void 0 : registerUserResponse.data; } else { throw new Error('Get user data failed - unexpected with internal server error'); } } catch (err) { throw new Error('Internal Server Error with ' + err); } return res; } /** * @description Perform the retrieve full user information by the Wallet address * @param {string} ethAddress The ether wallet address of user (such as Metamask wallet address) * @example <caption>Sample code</caption> * // Sample code on staging: const developerAccountManager = new DeveloperAccountManager(EnvTypes.STAGING); const ethWalletAddress = '0x.....'; const userWalletData = await developerAccountManager.getUserInfoByWalletAddress(ethWalletAddress); console.log('Testnet Data ->', userWalletData); // Sample code on Production: const developerAccountManager = new DeveloperAccountManager(EnvTypes.PRODUCTION); const ethWalletAddress = '0x.....'; const userWalletData = await developerAccountManager.getUserInfoByWalletAddress(ethWalletAddress); console.log('Production Data ->', userWalletData); * @returns {UserDataResponse | undefined} The details user data response for registration progress (including signature, stark key, wallet address) * @throws {string} Exception: Eth address is required! * @throws {string} Http Status Code 404: User 0x... is not registered * @throws {string} Http Status Code 500: Get user data failed - unexpected with internal server error * @throws {string} Http Status Code 500: Internal Server Error with ${Exception} */ async getUserInfoByWalletAddress(ethAddress) { if (!ethAddress) { throw new Error("Eth address is required!"); } let res; try { const registerUserResponse = await this.userAPI.getUserByWalletAddress(ethAddress); if ((registerUserResponse === null || registerUserResponse === void 0 ? void 0 : registerUserResponse.status) === 'success' && (registerUserResponse === null || registerUserResponse === void 0 ? void 0 : registerUserResponse.data)) { res = registerUserResponse === null || registerUserResponse === void 0 ? void 0 : registerUserResponse.data; } else { throw new Error('Get user data failed - unexpected with internal server error'); } } catch (err) { throw new Error('Internal Server Error with ' + err); } return res; } async getUserId(ethAddress) { if (!ethAddress) { throw new Error("Eth address is required!"); } let res; try { const userResponse = await this.userAPI.getUserIDInfo(ethAddress); if ((userResponse === null || userResponse === void 0 ? void 0 : userResponse.status) === 'success' && (userResponse === null || userResponse === void 0 ? void 0 : userResponse.data)) { res = userResponse === null || userResponse === void 0 ? void 0 : userResponse.data; } else { throw new Error('Get user data failed - unexpected with internal server error'); } } catch (err) { throw new Error('Internal Server Error with ' + err); } return res; } /** * @description Perform the retrieve full user information by the Wallet address * @param {UserType} userType Type of user references (CUSTOMER/PARTNER) * @param {string} referrerId Project ID/ReferrerID of referrer that end users have onboard to myria via invitation or games * @param {string?} limit Limit records per page for paging data * @param {UserLastEvaluatedKey?} lastEvaluatedKey Last evaluated key to support paging for users * @example <caption>Sample code</caption> * // Sample code on staging: const developerAccountManager = new DeveloperAccountManager(EnvTypes.STAGING); const partnerIdOfGameA = '10'; // Project game ID A const userWalletData = await developerAccountManager.getUserByReferrerId(UserType.PARTNER, partnerIdOfGameA); console.log('Testnet Data ->', userWalletData); // Sample code on Production: const developerAccountManager = new DeveloperAccountManager(EnvTypes.PRODUCTION); const partnerIdOfGameA = '15'; // Project game ID A const userWalletData = await developerAccountManager.getUserByReferrerId(UserType.PARTNER, partnerIdOfGameA); console.log('Production Data ->', userWalletData); * @returns {UserDataResponse | undefined} The details user data response for registration progress (including signature, stark key, wallet address) * @throws {string} Exception: Eth address is required! * @throws {string} Http Status Code 404: User 0x... is not registered * @throws {string} Http Status Code 500: Get user data failed - unexpected with internal server error * @throws {string} Http Status Code 500: Internal Server Error with ${Exception} */ async getUserByReferrerId(userType, referrerId, limit, lastEvaluatedKey) { if (!userType) { throw new Error('User type is required!'); } if (!referrerId) { throw new Error('ReferrerId is required!'); } try { const result = await this.userAPI.getUserByReferrerIdAndType(userType.toString(), referrerId, limit, lastEvaluatedKey); if (result.status === 'success') { return result.data; } else { throw new Error(`GetUserByReferrerId failed: ${result}`); } } catch (err) { throw new Error(`GetUserByReferrerId failed: ${err}`); } } async getUserAPIKey(myriaUserId) { if (!myriaUserId) { throw new Error("Myria User ID is required!"); } const result = await this.userMarketplaceAPI.getUserInfo(myriaUserId); try { if (result.status === 'success' && result.data) { return result.data; } else { throw new Error(`GetUserAPIKey failed: ${result}`); } } catch (err) { throw new Error(`GetUserAPIKey failed: ${err}`); } } async getBalanceETH(starkKey) { if (!starkKey) { throw new Error("Stark Key is required!"); } let res; try { const balanceResponse = await this.userAPI.getBalanceETH(starkKey); if ((balanceResponse === null || balanceResponse === void 0 ? void 0 : balanceResponse.status) === "success" && (balanceResponse === null || balanceResponse === void 0 ? void 0 : balanceResponse.data)) { res = balanceResponse === null || balanceResponse === void 0 ? void 0 : balanceResponse.data; } else { throw new Error("Error"); } } catch (err) { throw new Error(err); } return res; } async getBalanceERC20(starkKey, assetId) { if (!starkKey) { throw new Error("Stark Key is required!"); } let res; try { const balanceResponse = await this.userAPI.getBalanceERC20(starkKey, assetId); if ((balanceResponse === null || balanceResponse === void 0 ? void 0 : balanceResponse.status) === "success" && (balanceResponse === null || balanceResponse === void 0 ? void 0 : balanceResponse.data)) { res = balanceResponse === null || balanceResponse === void 0 ? void 0 : balanceResponse.data; } else { throw new Error("Error"); } } catch (err) { throw new Error(err); } return res; } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGV2ZWxvcGVyQWNjb3VudE1hbmFnZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9EZXZlbG9wZXJBY2NvdW50TWFuYWdlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sY0FBYyxDQUFDO0FBSzNEOzs7O0dBSUc7QUFDSCxNQUFNLE9BQU8sdUJBQXVCO0lBSWxDLFlBQVksR0FBYTtRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFHRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztTQXlCSztJQUNFLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxRQUFnQjtRQUNuRCxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2IsTUFBTSxJQUFJLEtBQUssQ0FBQyx1QkFBdUIsQ0FBQyxDQUFBO1NBQ3pDO1FBRUQsSUFBSSxHQUFxQixDQUFDO1FBRTFCLElBQUk7WUFDRixNQUFNLG9CQUFvQixHQUFHLE1BQU0sSUFBSSxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUNqRixJQUFJLENBQUEsb0JBQW9CLGFBQXBCLG9CQUFvQix1QkFBcEIsb0JBQW9CLENBQUUsTUFBTSxNQUFLLFNBQVMsS0FBSSxvQkFBb0IsYUFBcEIsb0JBQW9CLHVCQUFwQixvQkFBb0IsQ0FBRSxJQUFJLENBQUEsRUFBRTtnQkFDNUUsR0FBRyxHQUFHLG9CQUFvQixhQUFwQixvQkFBb0IsdUJBQXBCLG9CQUFvQixDQUFFLElBQUksQ0FBQzthQUNsQztpQkFBTTtnQkFDTCxNQUFNLElBQUksS0FBSyxDQUFDLDhEQUE4RCxDQUFDLENBQUE7YUFDaEY7U0FDRjtRQUFDLE9B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