Tokenアドレス2つでDEXでの取引価格を取得するnpm packageを公開してみた

Tokenアドレス2つでDEXでの取引価格を取得するnpm packageを公開してみた

Slug
anyswap-fetcher
Tags
Web3
Crypto
Node.js
TypeScript
Published
January 14, 2022
人生で初めてnpm packageを公開したので記念も兼ねて。 自分用に作ったツールをライブラリ化しました。
 

これはなに?

Tokenアドレス2つ, RPCのurl, DEX名を渡すだけで交換レートが取得できるライブラリです。詳しくはGithubを見てください。
import { V2Fetcher } from "anyswap-fetcher"; const USDC_ADDRESS = "0x2791bca1f2de4661ed88a30c99a7a9449aa84174"; const JPYC_ADDRESS = "0x6ae7dfc73e0dde2aa99ac063dcf7e8a63265108c"; const RPC_NODE_POLYGON = "https://polygon-rpc.com/"; async function main() { const quick = new V2Fetcher( USDC_ADDRESS, JPYC_ADDRESS, RPC_NODE_POLYGON, "QUICK" // exchange ).fetchBidirectionalExchangeRate(); console.log(await quick); // Output: [ 114.288142, 0.008731 ] } main();

なぜ作った?

  • 複数のDEXから価格取得をする際にプロジェクトごとにSDKをインストールするのが面倒だった
  • そもそもDEXごとにSDKの仕様が違っていて使い勝手が悪い
  • poolアドレスを持ってくるのが面倒だった

公開前に躓いたこと

npm publishしてもbuildファイルがuploadされない

.npmignore を配置していなかったことが原因でした。
 
npm publish 時に.npmignore がないと .gitignore をignoreファイルとして見に行ってしまうらしく、その挙動が悪さをしているようでした。(今回のケースでは .gitignore 内の dist )
 
おわり。