The public SDK downloaded from npmjs is compatible with the Aptos devnet. To start building, run below command in your project directory:
pnpm add aptos
or use the browser bundle
<script src="https://unpkg.com/aptos@latest/dist/index.global.js" />
Then, the SDK can be accessed through window.aptosSDK
.
Learn the basics of how to use the SDK by following this tutorial in the Aptos developer site.
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
...
}
}
pnpm install
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:
pnpm generate-client
See the quickstart above.
To develop in a local environment, you need to use the SDK from the main branch.
NOTE SDK from the main branch might not be compatible with the devnet.
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
Run the SDK tests and make sure they pass. Go to the SDK directory, and 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.0.1:8081"' >> .env
Run the tests:
pnpm test
If you see strange behavior regarding HTTP clients, try running the tests with --detectOpenHandles
.
Package the SDK and start building:
pnpm build
pnpm pack
# In your project directory
pnpm add PATH_TO_LOCAL_SDK_PACKAGE
This project follows semver as closely as possible.
To release a new version of the SDK do the following.
main
) is green ln CI. Go to GitHub and make sure there is a green tick, specifically for the sdk-release
release CI step. This ensures that the all tests, formatters, and linters passed, including server / client compatibility tests (within that commit) and tests to ensure the API, API spec, and client were all generated and match up.package.json
according to semver.npm_cccaCVg0bWaaR741D5Gdsd12T4JpQre444aaaa
.pnpm publish --dry-run
. From here, make some sanity checks:
a. Look closely at the output of the command. {ay close attention to what is packaged. Make sure we're not including some files that were included accidentally. For example .aptos
. Add those to .npmignore if needed.
b. Compare the summary with the public npm package summary on npmjs. The number of files and sizes should not vary too much.NODE_AUTH_TOKEN=<token> pnpm checked-publish
Generated using TypeDoc