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-sdk
Uso 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,});