@aptos-labs/scrip-composer- pack
构建批量的 Aptos 移动脚本有效载荷 动态交易作曲 与瓦斯姆号 预捆绑和基数64-内含,因此不获取网络或手工加载资产 运行时需要.
这个软件包做什么
此包捆绑 @aptos-labs/aptos-dynamic-transaction-composer Web大会模块
直接输入 JavaScript, 无需运行时间 WASM 文件加载或手动
初始化。 打电话 initSync() 一次,然后使用 TransactionComposer 来作曲和序列化
将函数调用到脚本有效载荷中.
这是一个低级,零依赖性绑定. 高级SDK交易
建筑物、签名和提交,见
@aptos-labs/script-composer-sdk。 。 。 .
兼容性
| 同伴依赖关系 | 支持范围 |
|---|---|
@aptos-labs/ts-sdk | ^3.0.0 || ^4.0.0 || ^5.0.0 || ^6.0.0 || ^7.0.0 |
@aptos-labs/aptos-dynamic-transaction-composer | ^0.1.8 |
需要节点.js 18+.
安装
# pnpm
pnpm add @aptos-labs/script-composer-pack \
@aptos-labs/aptos-dynamic-transaction-composer \
@aptos-labs/ts-sdk
# npm
npm install @aptos-labs/script-composer-pack \
@aptos-labs/aptos-dynamic-transaction-composer \
@aptos-labs/ts-sdk
# yarn
yarn add @aptos-labs/script-composer-pack \
@aptos-labs/aptos-dynamic-transaction-composer \
@aptos-labs/ts-sdk
消费者必须安装两个对等依赖.
使用量
import {
initSync,
wasmModule,
TransactionComposer,
CallArgument,
} from "@aptos-labs/script-composer-pack";
import { Aptos, AptosConfig, Network } from "@aptos-labs/ts-sdk";
import { BCS } from "@aptos-labs/ts-sdk";
// Initialize the bundled WASM once at startup — no network fetch needed.
initSync({ module: wasmModule });
// Build a batched script that calls two Move functions in sequence.
const composer = TransactionComposer.single_signer();
// First call: withdraw coins from the signer's account.
const amountBcs = BCS.bcsSerializeUint64(100_000_000n);
const [withdrawnCoin] = composer.add_batched_call(
"0x1::coin",
"withdraw",
["0x1::aptos_coin::AptosCoin"],
[CallArgument.newSigner(0), CallArgument.newBytes(amountBcs)],
);
// Second call: deposit the returned value from the first call.
const recipientBcs = /* BCS-encoded AccountAddress */ new Uint8Array(32);
composer.add_batched_call(
"0x1::coin",
"deposit",
["0x1::aptos_coin::AptosCoin"],
[CallArgument.newBytes(recipientBcs), withdrawnCoin],
);
// Serialize into a Move script payload (Uint8Array).
const scriptPayload = composer.generate_batched_calls(/* with_metadata */ true);
// Hand scriptPayload to @aptos-labs/ts-sdk to build and submit a script transaction.
将序列式脚本分解为函数调用(用于显示或审计):
import { generate_batched_call_payload_wasm } from "@aptos-labs/script-composer-pack";
const calls = generate_batched_call_payload_wasm(scriptPayload); // MoveFunctionCall[]
API 密码
| 导出 | 说明 |
|---|---|
initSync({ module }) | 同步初始化捆绑的WASM模块. 在其他API之前打一次电话. |
wasmModule | 预编译 WebAssembly.Module ——直接通过 initSync。 。 。 . |
TransactionComposer | 核心建设者. 使用 single_signer() 或者说 multi_signer(n) 构造,然后链条 add_batched_call(...) 电话,最后 generate_batched_calls(withMetadata) 连载. |
CallArgument | 代表一个调用参数: newSigner(idx) 以物配主, newBytes(bytes) 对于一个BCS编码的值,或以前的返回值 add_batched_call。 。 。 . |
MoveFunctionCall | 代表一个已取消序列的脚本中的单个移动函数调用 . |
PreviousResult | 内部: 上一个值的返回 add_batched_call 可作为论据转发. |
generate_batched_call_payload_wasm(script) | 将序列化 Uint8Array 脚本输入 MoveFunctionCall[]。 。 。 . |
发展
pnpm install
pnpm build # outputs CJS + ESM bundles to dist/
# Preview a version bump without writing
pnpm run version:bump -- patch --dry-run
# Apply a version bump
pnpm run version:bump -- patch # or minor / major / 1.2.3
释放
通过GitHub Actions实现发布自动化. 在合并一个版本- pump PR后 :
git tag v<version> # e.g. git tag v0.2.5
git push origin v<version>
这个 发布工作流程 验证标签匹配
package.json,检查版本尚未出版,构建,发布到 npm 通过
OIDC信任出版,并创建了GitHub发行.
先决条件: 必须在 npmjs.com 为此寄存器配置 npm 信任的出版器 在推出第一个标签之前.
许可证
阿帕奇-2.0 © Aptos 实验室