SDK for Aptos Node API

API Docs
Docs can be found here
Usage
For Javascript or Typescript usage, check out the ./examples
folder with ready-made package.json
files to get you going quickly!
If you are using the types in a commonjs
module, like in a Node app, you just have to enable esModuleInterop
and allowSyntheticDefaultImports
in your tsconfig
for types compatibility:
{
...
"compilerOptions": {
"allowSyntheticDefaultImports": true,
"esModuleInterop": true
...
}
}
Requirements
yarn install
Generating API client
This SDK is composed of two parts, a core client generated from the OpenAPI spec of the API, and a set of wrappers that make it nicer to use, enable certain content types, etc.
To generate the core client from the spec, run:
yarn generate-client
Testing against devnet
yarn test
Testing against local node
Run a local node (run from the root of the repo):
cargo run -p aptos -- node run-local-testnet --with-faucet --faucet-port 8081 --force-restart --assume-yes
Setup an env to configure the URLs:
rm .env
echo 'APTOS_NODE_URL="http://127.0.0.1:8080/v1"' >> .env
echo 'APTOS_FAUCET_URL="http://127.0.01:8081"' >> .env
Run the tests:
yarn test
If you see strange behavior regarding HTTP clients, try running the tests with --detectOpenHandles
.
Semantic versioning
This project follows semver as closely as possible.
References
Release process
To release a new version of the SDK do the following.
- Regenerate the client:
yarn generate-client
- Test, lint and format:
yarn test
yarn lint
yarn fmt
- Bump the version in
package.json
according to semver. - Add an entry in the CHANGELOG for the version. We adhere to Keep a Changelog.
- Once you're confident everything is correct, submit your PR. The CI will ensure that you have followed all the previous steps, specifically ensuring that the API, API spec, and SDK client are all compatible, that you've updated the changelog, that the tests pass, etc. Once it is approved and lands in main, CI will detect that the version has changed, build a new package, and upload it automatically to npmjs.