Guía de Migración
Si vienes de una versión anterior 1.x.x de aptos, necesitarás hacer las siguientes actualizaciones.
Instalar el SDK
Sección titulada «Instalar el SDK»El SDK TypeScript V2 está bajo un nuevo repositorio GitHub y con un nuevo nombre de paquete - @aptos-labs/ts-sdk
npm i @aptos-labs/ts-sdkUso del SDK y consulta de la cadena Aptos
Sección titulada «Uso del SDK y consulta de la cadena Aptos»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 consultasconst fund = await aptos.fundAccount({ accountAddress: "0x123", amount: 100 });const modules = await aptos.getAccountModules({ accountAddress: "0x123" });const tokens = await aptos.getAccountOwnedTokens({ accountAddress: "0x123" });Clase de configuración
Sección titulada «Clase de configuración»Para configurar tu cliente Aptos, puedes usar un objeto AptosConfig.
const aptosConfig = new AptosConfig({ network: Network.DEVNET }); // por defecto a devnetconst aptos = new Aptos(config);Flujo del Constructor de Transacciones
Sección titulada «Flujo del Constructor de Transacciones»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 bcsconst entryFunctionPayload = new TxnBuilderTypes.TransactionPayloadEntryFunction( TxnBuilderTypes.EntryFunction.natural( "0x1::aptos_account", "transfer", [], [bcsToBytes(TxnBuilderTypes.AccountAddress.fromHex(receiver.address()))], ), );// generar una transacción crudaconst transaction = await client.generateRawTransaction( sender.address(), entryFunctionPayload,);
// payload de argumentos no serializadosconst payload: Gen.TransactionPayload = { type: "entry_function_payload", function: "0x1::aptos_account::transfer", type_arguments: [], arguments: [account2.address().hex(), 100000],};// generar una transacción crudaconst transaction = await client.generateTransaction( account1.address(), payload,);
// firmar transacciónconst signedTransaction = AptosClient.generateBCSTransaction( sender, transaction,);// enviar transacciónconst txn = await client.submitSignedBCSTransaction(signedTransaction);V2
const aptos = new Aptos();
// transacción de argumentos no serializadosconst 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 bcsconst 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ónconst senderAuthenticator = aptos.sign.transaction({ signer: alice, transaction,});// enviar transacciónconst 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ónconst account = new AptosAccount(); // soporta solo Legacy Ed25519
// derivar cuenta de ruta de derivaciónconst account = AptosAccount.fromDerivePath(..)V2
// generar una nueva cuenta (o par de claves)const account = Account.generate(); // por defecto a Legacy Ed25519const account = Account.generate({ scheme: SigningSchemeInput.Secp256k1Ecdsa }); // Single Sender Secp256k1const account = Account.generate({ scheme: SigningSchemeInput.Ed25519, legacy: false,}); // Single Sender Ed25519
// derivar cuenta de clave privadaconst account = Account.fromPrivateKey({ privateKey });
// derivar cuenta de clave privada y direcciónconst account = Account.fromPrivateKeyAndAddress({ privateKey, address: accountAddress,});
// derivar cuenta de ruta de derivaciónconst account = Account.fromDerivationPath({ path, mnemonic, scheme: SigningSchemeInput.Ed25519,});