UNPKG

@fanitrade/fani-solana-tokenlist

Version:
113 lines 9.28 kB
import { Octokit } from '@octokit/rest'; import axios from 'axios'; export const sendToSolanaTokenList = async (githubAccessToken, tokenDetails) => { const { chainId, address, symbol, name, decimals, logoURI, extensions } = tokenDetails; const octokit = new Octokit({ auth: githubAccessToken }); const getURL = await (await axios.get('https://api.github.com/repos/FaniTrade-Investment-L-L-C/fani-token-list/contents/src/tokens')).data[0].git_url; const config = { method: 'get', url: getURL, }; const response = await axios(config); const cnt = response.data.content; let decoded = Buffer.from(cnt, 'base64').toString(); const strAsUnicode = (str) => { return str .split('') .map((s) => { return `\\u${s.charCodeAt(0).toString(16).padStart(4, '0')}`; }) .join(''); }; decoded = JSON.parse(decoded); const newToken = { chainId, address, symbol, name, decimals: +decimals, logoURI, tags: ['currency'], extensions: extensions ? extensions : {} }; const handledNewToken = JSON.parse(JSON.stringify(newToken), (_key, value) => (value === null || value === '' ? undefined : value)); decoded.tokens.push(handledNewToken); const branchName = `${name.replace(' ', '-')}`; const pushFiles = async () => { try { // git fetch upstream await octokit.rest.repos.mergeUpstream({ owner: 'FaniTrade-Investment-L-L-C', repo: 'fani-token-list', branch: 'main' }); //git pull const commits = await octokit.repos.listCommits({ owner: 'FaniTrade-Investment-L-L-C', repo: 'fani-token-list' }); const latestCommitSHA = commits.data[0].sha; // git checkout -b name await octokit.git.createRef({ owner: 'FaniTrade-Investment-L-L-C', repo: 'fani-token-list', ref: `refs/heads/${name.replaceAll(' ', '-')}`, sha: latestCommitSHA }); // git add . const { data: { sha: treeSHA } } = await octokit.git.createTree({ owner: 'FaniTrade-Investment-L-L-C', repo: 'fani-token-list', tree: [ { path: 'src/tokens/solana.tokenlist.json', mode: '100644', type: 'blob', content: JSON.stringify(decoded, null, 2) .replaceAll('&', strAsUnicode('&')) .replaceAll('>', strAsUnicode('>')) .replaceAll('<', strAsUnicode('<')) } ], base_tree: latestCommitSHA }); // git commit -m const { data: { sha: newCommitSHA } } = await octokit.git.createCommit({ owner: 'FaniTrade-Investment-L-L-C', repo: 'fani-token-list', tree: treeSHA, message: `Create ${name} Token`, parents: [latestCommitSHA] }); // git push origin HEAD await octokit.rest.git.updateRef({ owner: 'FaniTrade-Investment-L-L-C', repo: 'fani-token-list', ref: `heads/${branchName}`, sha: newCommitSHA }); await octokit.rest.pulls.create({ owner: 'FaniTrade-Investment-L-L-C', repo: 'fani-token-list', title: `Create ${name} Token`, head: `FaniTrade-Investment-L-L-C:${branchName}`, base: 'main' }); return ({ status: "Created", message: "Token Created", }); } catch (err) { return ({ status: "Failed", message: "Error Creating Token", detail: "Reference Already exist or invalid input" }); } }; return await pushFiles(); }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VuZFRva2VuVG9Tb2xhbmFUb2tlbkxpc3QuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdXRpbHMvc2VuZFRva2VuVG9Tb2xhbmFUb2tlbkxpc3QudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4QyxPQUFPLEtBQTRDLE1BQU0sT0FBTyxDQUFDO0FBSWpFLE1BQU0sQ0FBQyxNQUFNLHFCQUFxQixHQUFHLEtBQUssRUFDeEMsaUJBQXlCLEVBQ3pCLFlBQWlCLEVBQ2pCLEVBQUU7SUFDRCxNQUFNLEVBQUUsT0FBTyxFQUFFLE9BQU8sRUFBRyxNQUFNLEVBQUcsSUFBSSxFQUFHLFFBQVEsRUFBRyxPQUFPLEVBQUcsVUFBVSxFQUFDLEdBQUcsWUFBWSxDQUFDO0lBRTVGLE1BQU0sT0FBTyxHQUFHLElBQUksT0FBTyxDQUFDO1FBQzFCLElBQUksRUFBRSxpQkFBaUI7S0FDeEIsQ0FBQyxDQUFDO0lBRUgsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUNuQixNQUFNLEtBQUssQ0FBQyxHQUFHLENBQ2IsNkZBQTZGLENBQzlGLENBQ0YsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO0lBRWxCLE1BQU0sTUFBTSxHQUF1QjtRQUNqQyxNQUFNLEVBQUUsS0FBSztRQUNiLEdBQUcsRUFBRSxNQUFNO0tBQ1osQ0FBQztJQUVGLE1BQU0sUUFBUSxHQUFtQixNQUFNLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUVyRCxNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUNoQyxJQUFJLE9BQU8sR0FBUyxNQUFNLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMxRCxNQUFNLFlBQVksR0FBRyxDQUFDLEdBQVEsRUFBRSxFQUFFO1FBQ2hDLE9BQU8sR0FB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