@myria/airdrop-js
Version:
Airdrop in L1 with claim based approach
75 lines • 5.33 kB
JavaScript
;
/**
* Collection of utils functions use for internal
* DO NOT export for our consumers use. Otherwise, Move to core or wrapper instead
*/
Object.defineProperty(exports, "__esModule", { value: true });
exports.doSubmitTransaction = exports.getThirdWebChain = exports.logFunctionDuration = exports.logFunctionTrackStartTime = void 0;
// Internal imports below this line
const chains_1 = require("thirdweb/chains");
const type_1 = require("../type");
const core_1 = require("./core");
/**
* Log with start time to keep track
*
* @param {string} functionName - The source's function name invoke this function
* @returns {number} the current start time in milliseconds
*/
const logFunctionTrackStartTime = (functionName) => {
const currentDate = new Date();
console.log(` 👉 [@myria/airdrop-js]>[${functionName}] is executing...🏃 at ⏰ ${currentDate.toLocaleTimeString()} 👈`);
return currentDate.getMilliseconds();
};
exports.logFunctionTrackStartTime = logFunctionTrackStartTime;
/**
* Log function's duration to keep track
*
* @param {string} functionName - The source's function name invoke this function
* @param {number} startTime - The start time in milliseconds when you perform the same functionName
*/
const logFunctionDuration = (functionName, startTime) => {
const currentDate = new Date();
console.log(` ✅ [@myria/airdrop-js]>[${functionName}] has been executed at ⏰ ${currentDate.toLocaleTimeString()} in 💁 ${currentDate.getMilliseconds() - startTime} milliseconds ✅ `);
};
exports.logFunctionDuration = logFunctionDuration;
/**
* Retrieve thirdweb chain from a supporting chain in our sdk
*
* @param {SupportingChain} supportingChain - The selected chain by invoker.
* @returns {Chain} A thirdweb chain.
*/
const getThirdWebChain = (supportingChain) => {
switch (supportingChain) {
case type_1.SupportingChain.ETHEREUM:
return chains_1.ethereum;
case type_1.SupportingChain.SEPOLIA:
return chains_1.sepolia;
}
};
exports.getThirdWebChain = getThirdWebChain;
/**
* Private method Sends a transaction using the provided wallet.
*
* @param {SendTransactionOptions} options - The options for sending the transaction.
* @param {transactionCallback} callback - The callback that handles the post-submit state.
* @param {boolean} isLogResult - Whether to log the result or not. Default true.
* @returns {Promise<TransactionReceipt>} A promise that resolves to the confirmed transaction receipt.
* @throws An error if the wallet is not connected.
*/
const doSubmitTransaction = async (options, callback, isLogResult = true) => {
if (isLogResult) {
// TODO: replace with the logger library for better format or other targets
console.log(`[request] options = ${JSON.stringify(options)}`);
}
const transactionReceipt = await (0, core_1.sendTransactionAndWaitForReceipt)(options);
if (isLogResult) {
// TODO: replace with the logger library for better format or other targets
console.log(`[response] result = ${JSON.stringify(transactionReceipt)}`);
}
if (callback) {
callback(transactionReceipt);
}
return transactionReceipt;
};
exports.doSubmitTransaction = doSubmitTransaction;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWxVc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvdHJhbnNhY3Rpb24vaW50ZXJuYWxVc2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7R0FHRzs7O0FBTUgsbUNBQW1DO0FBQ25DLDRDQUFvRDtBQUNwRCxrQ0FBMEM7QUFDMUMsaUNBQTBEO0FBRTFEOzs7OztHQUtHO0FBQ0ksTUFBTSx5QkFBeUIsR0FBRyxDQUFDLFlBQW9CLEVBQVUsRUFBRTtJQUN0RSxNQUFNLFdBQVcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQy9CLE9BQU8sQ0FBQyxHQUFHLENBQ1AsOEJBQThCLFlBQVksNEJBQTRCLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxLQUFLLENBQzlHLENBQUM7SUFDRixPQUFPLFdBQVcsQ0FBQyxlQUFlLEVBQUUsQ0FBQztBQUN6QyxDQUFDLENBQUM7QUFOVyxRQUFBLHlCQUF5Qiw2QkFNcEM7QUFFRjs7Ozs7R0FLRztBQUNJLE1BQU0sbUJBQW1CLEdBQUcsQ0FDL0IsWUFBb0IsRUFDcEIsU0FBaUIsRUFDYixFQUFFO0lBQ04sTUFBTSxXQUFXLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztJQUMvQixPQUFPLENBQUMsR0FBRyxDQUNQLDZCQUE2QixZQUFZLDRCQUE0QixXQUFXLENBQUMsa0JBQWtCLEVBQUUsVUFBVSxXQUFXLENBQUMsZUFBZSxFQUFFLEdBQUcsU0FBUywyQkFBMkIsQ0FDdEwsQ0FBQztBQUNOLENBQUMsQ0FBQztBQVJXLFFBQUEsbUJBQW1CLHVCQVE5QjtBQUVGOzs7OztHQUtHO0FBQ0ksTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLGVBQWdDLEVBQVMsRUFBRTtJQUN4RSxRQUFRLGVBQWUsRUFBRSxDQUFDO1FBQ3RCLEtBQUssc0JBQWUsQ0FBQyxRQUFRO1lBQ3pCLE9BQU8saUJBQVEsQ0FBQztRQUNwQixLQUFLLHNCQUFlLENBQUMsT0FBTztZQUN4QixPQUFPLGdCQUFPLENBQUM7SUFDdkIsQ0FBQztBQUNMLENBQUMsQ0FBQztBQVBXLFFBQUEsZ0JBQWdCLG9CQU8zQjtBQUVGOzs7Ozs7OztHQVFHO0FBQ0ksTUFBTSxtQkFBbUIsR0FBRyxLQUFLLEVBQ3BDLE9BQStCLEVBQy9CLFFBQStDLEVBQy9DLFdBQVcsR0FBRyxJQUFJLEVBQ1MsRUFBRTtJQUM3QixJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2QsMkVBQTJFO1FBQzNFLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7SUFDRCxNQUFNLGtCQUFrQixHQUFHLE1BQU0sSUFBQSx1Q0FBZ0MsRUFBQyxPQUFPLENBQUMsQ0FBQztJQUMzRSxJQUFJLFdBQVcsRUFBRSxDQUFDO1FBQ2QsMkVBQTJFO1FBQzNFLE9BQU8sQ0FBQyxHQUFHLENBQ1AsdUJBQXVCLElBQUksQ0FBQyxTQUFTLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUM5RCxDQUFDO0lBQ04sQ0FBQztJQUNELElBQUksUUFBUSxFQUFFLENBQUM7UUFDWCxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBQ0QsT0FBTyxrQkFBa0IsQ0FBQztBQUM5QixDQUFDLENBQUM7QUFwQlcsUUFBQSxtQkFBbUIsdUJBb0I5QiJ9