Endless TypeScript SDK
package.json files to get you going quickly!
The Endless TypeScript SDK provides a convenient way to interact with the Endless blockchain using TypeScript. It offers a set of utility functions, classes, and types to simplify the integration process and enhance developer productivity.
##### For use in Node.js or a web application
Install with your favorite package manager such as npm, yarn, or pnpm:
``bash`
pnpm install @endlesslab/endless-ts-sdkUsage
Initialize Endless to access the SDK API.
`ts`
// initiate the main entry point into Endless SDK
const endless = new Endless();
If you want to pass in a custom config
`ts`
// an optional config information for the SDK client instance.
const config = new EndlessConfig({
network: Network.LOCAL,
// If it is a mini program environment, set miniprogram to true
// miniprogram: true
}); // default network is devnet
const endless = new Endless(config);
> Note: We introduce a Single Sender authentication. Generating an account defaults to Legacy Ed25519 authentication with the option to use the Single Sender unified authentication
#### Generate new keys
`ts`
const account = Account.generate(); // defaults to Legacy Ed25519
#### Derive from private key
`ts
// Create a private key instance for Ed25519 scheme
const privateKey = new Ed25519PrivateKey("myEd25519privatekeystring");
// Derive an account from private key
// This is used as a local calculation and therefore is used to instantiate an Account`
// that has not had its authentication key rotated
const account = await Account.fromPrivateKey({ privateKey });
#### Derive from private key and address
`ts`
// Create a private key instance for Ed25519 scheme
const privateKey = new Ed25519PrivateKey("myEd25519privatekeystring");
#### Derive from path
`ts`
const path = "m/44'/637'/0'/0'/1";
const mnemonic = "various float stumble...";
const account = Account.fromDerivationPath({ path, mnemonic });
---
#### Single Signer transaction
Using transaction submission api
`ts
const alice: Account = Account.generate();
const bobAddress = "0xb0b";
// build transaction
const transaction = await endless.transaction.build.simple({
sender: alice.accountAddress,
data: {
function: "0x1::coin::transfer",
typeArguments: ["0x1::endless_coin::EndlessCoin"],
functionArguments: [bobAddress, 100],
},
});
// using sign and submit separately
const senderAuthenticator = endless.transaction.sign({ signer: alice, transaction });
const committedTransaction = await endless.transaction.submit.simple({ transaction, senderAuthenticator });
// using signAndSubmit combined
const committedTransaction = await endless.signAndSubmitTransaction({ signer: alice, transaction });
`
Using built in transferCoinTransaction
`ts
const alice: Account = Account.generate();
const bobAddress = "0xb0b";
// build transaction
const transaction = await endless.transferCoinTransaction({
sender: alice,
recipient: bobAddress,
amount: 100,
});
const pendingTransaction = await endless.signAndSubmitTransaction({ signer: alice, transaction });
`
If you see import error when you do this
`typescript`
import { Endless, EndlessConfig, Network } from "@endlesslab/endless-ts-sdk";
It could be your tsconfig.json is not incompatible, make sure your moduleResolution is set to node instead of bundler`.