Saltearse al contenido

Guía de Migración

Si vienes de una versión anterior 1.x.x de aptos, necesitarás hacer las siguientes actualizaciones.

El SDK TypeScript V2 está bajo un nuevo repositorio GitHub y con un nuevo nombre de paquete - @aptos-labs/ts-sdk

Ventana de terminal
npm i @aptos-labs/ts-sdk

Remueve todos los módulos <*>Client (i.e AptosClient, FaucetClient, CoinClient, etc.) y reemplaza con una clase de punto de entrada Aptos

V1

const faucetClient = new FaucetClient(NODE_URL, FAUCET_URL);
const aptosClient = new AptosClient(NODE_URL);
const indexerClient = new IndexerClient(INDEXER_URL);
const tokenClient = new TokenClient(aptosClient);

V2

const aptos = new Aptos();
// hacer consultas
const fund = await aptos.fundAccount({ accountAddress: "0x123", amount: 100 });
const modules = await aptos.getAccountModules({ accountAddress: "0x123" });
const tokens = await aptos.getAccountOwnedTokens({ accountAddress: "0x123" });

Para configurar tu cliente Aptos, puedes usar un objeto AptosConfig.

const aptosConfig = new AptosConfig({ network: Network.DEVNET }); // por defecto a devnet
const aptos = new Aptos(config);

Removidas todas las funciones de transacción separadas en favor de un flujo constructor de transacciones más simplificado y amigable

V1

const aptosClient = new AptosClient(NODE_URL);
// payload de argumentos serializados bcs
const entryFunctionPayload =
new TxnBuilderTypes.TransactionPayloadEntryFunction(
TxnBuilderTypes.EntryFunction.natural(
"0x1::aptos_account",
"transfer",
[],
[bcsToBytes(TxnBuilderTypes.AccountAddress.fromHex(receiver.address()))],
),
);
// generar una transacción cruda
const transaction = await client.generateRawTransaction(
sender.address(),
entryFunctionPayload,
);
// payload de argumentos no serializados
const payload: Gen.TransactionPayload = {
type: "entry_function_payload",
function: "0x1::aptos_account::transfer",
type_arguments: [],
arguments: [account2.address().hex(), 100000],
};
// generar una transacción cruda
const transaction = await client.generateTransaction(
account1.address(),
payload,
);
// firmar transacción
const signedTransaction = AptosClient.generateBCSTransaction(
sender,
transaction,
);
// enviar transacción
const txn = await client.submitSignedBCSTransaction(signedTransaction);

V2

const aptos = new Aptos();
// transacción de argumentos no serializados
const transaction = await aptos.build.transaction({
sender: alice.accountAddress,
data: {
function: "0x1::coin::transfer",
typeArguments: ["0x1::aptos_coin::AptosCoin"],
functionArguments: [bobAddress, 100],
},
});
// transacción de argumentos serializados bcs
const transaction = await aptos.build.transaction({
sender: alice.accountAddress,
data: {
function: "0x1::coin::transfer",
typeArguments: [parseTypeTag("0x1::aptos_coin::AptosCoin")],
functionArguments: [bobAddress, new U64(100)],
},
});
// firmar transacción
const senderAuthenticator = aptos.sign.transaction({
signer: alice,
transaction,
});
// enviar transacción
const committedTransaction = await aptos.submit.transaction({
transaction,
senderAuthenticator,
});

Renombra AptosAccount a Account y usa métodos estáticos para generar / derivar una cuenta

V1

// generar una nueva cuenta (o par de claves) O derivar de clave privada O derivar de clave privada y dirección
const account = new AptosAccount(); // soporta solo Legacy Ed25519
// derivar cuenta de ruta de derivación
const account = AptosAccount.fromDerivePath(..)

V2

// generar una nueva cuenta (o par de claves)
const account = Account.generate(); // por defecto a Legacy Ed25519
const account = Account.generate({ scheme: SigningSchemeInput.Secp256k1Ecdsa }); // Single Sender Secp256k1
const account = Account.generate({
scheme: SigningSchemeInput.Ed25519,
legacy: false,
}); // Single Sender Ed25519
// derivar cuenta de clave privada
const account = Account.fromPrivateKey({ privateKey });
// derivar cuenta de clave privada y dirección
const account = Account.fromPrivateKeyAndAddress({
privateKey,
address: accountAddress,
});
// derivar cuenta de ruta de derivación
const account = Account.fromDerivationPath({
path,
mnemonic,
scheme: SigningSchemeInput.Ed25519,
});