人生で初めて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
)おわり。