algorand-ts-migration
1
总安装量
1
周安装量
#55198
全站排名
安装命令
npx skills add https://github.com/algorand-devrel/algorand-agent-skills --skill algorand-ts-migration
Agent 安装分布
github-copilot
1
claude-code
1
antigravity
1
Skill 文档
Algorand TypeScript Migration
Migrate smart contracts to Algorand TypeScript 1.0 from TEALScript or Algorand TypeScript Beta.
Migration Workflow
1. Identify Source Language
Determine whether the code is TEALScript or Algorand TypeScript Beta:
| Indicator | TEALScript | Algorand TypeScript Beta |
|---|---|---|
| Import source | @algorandfoundation/tealscript |
@algorandfoundation/algorand-typescript |
| Global types | Uses assert, uint64 without imports |
Requires explicit imports |
| Event logging | new EventLogger<...>() |
N/A |
| Inner transactions | sendAssetConfig({...}) |
itxn.assetConfig({...}) |
| Logic sig method | logic() |
program() |
| Type syntax | uint256, uint8 literals |
arc4.UintN<256>, arc4.UintN8 |
2. Load Migration Guide
Based on the source language, read the appropriate reference:
- From TEALScript: Read references/from-tealscript.md
- From Algorand TypeScript Beta: Read references/from-beta.md
3. Execute Migration
Follow the checklist in the loaded reference file. Apply transformations systematically:
- Start with imports and type renames (mechanical changes)
- Update syntax patterns (inner transactions, method calls)
- Add explicit type annotations where required
- Handle semantic changes (mutability, resource encoding)
- Rename test files if applicable
4. Verify Migration
After migration:
- Ensure all imports resolve from
@algorandfoundation/algorand-typescript - Verify no TypeScript errors remain
- Run the Algorand TypeScript compiler to validate
Quick Reference
Common Import Pattern (1.0)
import {
Contract,
GlobalState,
LocalState,
Box,
BoxMap,
arc4,
uint64,
bytes,
Bytes,
Uint64,
assert,
err,
emit,
clone,
itxn,
gtxn,
Txn,
Global,
op,
} from '@algorandfoundation/algorand-typescript';
Key Type Changes
| Old | New (1.0) |
|---|---|
uint8, uint16, uint256 |
arc4.Uint<8>, arc4.Uint<16>, arc4.Uint<256> |
arc4.UintN64, arc4.UintN<N> |
arc4.Uint64, arc4.Uint<N> |
arc4.UFixedNxM<N,M> |
arc4.UFixed<N,M> |
MutableArray |
ReferenceArray |
BoxRef |
Box<bytes> |
Address (TEALScript) |
Account |
AppID (TEALScript) |
Application |
AssetID (TEALScript) |
Asset |
Key Function Changes
| Old | New (1.0) |
|---|---|
x.copy() |
clone(x) |
arc4EncodedLength<T>() |
sizeOf<T>() |
arc4.interpretAsArc4<T>(b) |
arc4.convertBytes<T>(b, { strategy: 'validate' }) |
x.native |
x.asUint64() or x.asBigUint() |
sendMethodCall<T>({...}) |
arc4.abiCall({ method: T, ... }) |
Resources
references/
-
from-beta.md: Complete migration guide from Algorand TypeScript Beta to 1.0. Includes checklist of 13 breaking changes with before/after examples.
-
from-tealscript.md: Complete migration guide from TEALScript to Algorand TypeScript 1.0. Includes type migration table and 13 migration patterns with examples.