Releases: demergent-labs/azle
0.18.3
0.18.2
npx azle new
was broken for many users. The issue has been fixed with an integration test added to the example tests.
What's Changed
- Update candid types by @dansteren in #1354
- Fix azle new by @lastmjs in #1366
- Azle new test by @lastmjs in #1369
Full Changelog: 0.18.1...0.18.2
0.18.1
0.18.0
Azle 0.18.0 is a complete rearchitecture of Azle. Most concepts remain the same, but there are many breaking changes in syntax and API. See the examples and The Azle Book for guidance.
Migrating from previous versions
It is best to start from scratch:
- Delete
~/.config/azle
in your home directory - Delete
.azle
in your project root directory - Delete
.dfx
in your project root directory - Delete
node_modules
in your project root directory - Start your replica with
--clean
What's Changed
- implement wasi by @lastmjs in #1143
- clean up the new architecture by @lastmjs in #1162
- cleanup and remove_transpilation_step by @lastmjs in #1163
- add candid generation and basic decorators by @bdemann in #1165
- Add blob, vec, opt, variant, and func by @bdemann in #1166
- Generated rust wrapper functions for query and update methods by @dansteren in #1167
- Js rearchitecture by @lastmjs in #1161
- better types, record and variant decorators, simpler func decorator by @bdemann in #1170
- Ic object methods by @lastmjs in #1172
- fix typing by @bdemann in #1173
- fix update decorator by @bdemann in #1174
- fix void returns by @bdemann in #1175
- Implemented half of IC API by @dansteren in #1177
- add last half of ic object by @bdemann in #1180
- Js rearchitecture call raw by @lastmjs in #1184
- Js rearchitecture jordan examples by @lastmjs in #1185
- add support for opt, vec, and tuple by @bdemann in #1187
- update recursive variant by @bdemann in #1188
- fix bug with record by @bdemann in #1189
- Js rearchitecture jordan examples by @lastmjs in #1186
- replace decorator with super class by @bdemann in #1191
- Updated all Motoko Examples to new runtime-powered syntax by @dansteren in #1169
- simple user accounts, stable memory, and tuple types examples updated by @bdemann in #1193
- update the async_await example, make config, cycles, and args all opt… by @lastmjs in #1190
- notify raw and simple_erc20 examples updated by @bdemann in #1194
- run_time_error upgrade by @bdemann in #1195
- async/await example fixed by @lastmjs in #1198
- randomness and query by @bdemann in #1196
- Updated more examples to new runtimized syntax by @dansteren in #1197
- temporarily remove broken tests by @bdemann in #1199
- update management canister by @bdemann in #1205
- list of list updated to new syntax by @bdemann in #1213
- key_value_store by @bdemann in #1214
- ledger example and canister update by @bdemann in #1215
- init examples updated by @bdemann in #1216
- update imports to new syntax by @bdemann in #1219
- update bitcoin example by @bdemann in #1220
- Update Date example to new syntax by @bdemann in #1217
- add support for manual reply by @bdemann in #1221
- json compiler implemented for queries and updates by @lastmjs in #1223
- implement heartbeat! by @lastmjs in #1224
- Inspect message by @lastmjs in #1225
- Updated more examples to new syntax by @dansteren in #1212
- initial implementation of unbounded stable structures! by @lastmjs in #1226
- ethereum_json_rpc example updated by @lastmjs in #1229
- Pre and post upgrade by @lastmjs in #1230
- Http counter by @lastmjs in #1231
- Persistent storage by @lastmjs in #1232
- Ord and partial ord by @lastmjs in #1233
- Manual examples by @bdemann in #1227
- Guard functions by @lastmjs in #1243
- Deleted irrelevant examples by @dansteren in #1241
- Fixed ic.caller API by @dansteren in #1246
- Add Decode Visitor by @bdemann in #1247
- Functional syntax by @lastmjs in #1244
- Functional syntax audio recorder by @lastmjs in #1251
- bitcoin example completed by @lastmjs in #1252
- Functional syntax blob array by @lastmjs in #1253
- Functional syntax bytes by @lastmjs in #1254
- Functional syntax call raw by @lastmjs in #1255
- Functional syntax composite queries by @lastmjs in #1258
- Functional syntax candid encoding by @lastmjs in #1256
- Functional syntax complex init by @lastmjs in #1257
- counter example refactored by @lastmjs in #1259
- Functional syntax cross canister calls by @lastmjs in #1260
- Functional syntax cycles by @lastmjs in #1261
- Functional syntax date by @lastmjs in #1262
- Functional syntax ethereum json rpc by @lastmjs in #1263
- Functional syntax guard functions by @lastmjs in #1264
- Functional syntax heartbeat by @lastmjs in #1265
- Functional syntax ic api by @lastmjs in #1266
- Functional syntax imports by @lastmjs in #1267
- Functional syntax inspect message by @lastmjs in #1268
- Functional syntax key value store by @lastmjs in #1269
- refactor list of lists by @lastmjs in #1270
- refactor management canister by @lastmjs in #1272
- refactor manual_reply by @lastmjs in #1273
- Functional syntax ledger canister by @lastmjs in #1274
- Functional syntax pre and post upgrade by @lastmjs in #1275
- stable structures refactored by @lastmjs in #1276
- fixing pre_and_post_upgrade functionality and test by @lastmjs in #1289
- Updated motoko examples to functional runtime syntax by @dansteren in #1271
- Rust refactor by @lastmjs in #1290
- remove all AZLE_REBUILD=true environment variables, they are no longe… by @lastmjs in #1295
- Remove benchmark scripts by @lastmjs in #1296
- Updated robust imports example to functional runtime syntax by @dansteren in #1291
- Remove opt level by @lastmjs in #1297
- fix recursion by @bdemann in #1298
- fix tests that require redeploy, ensure that they actually redeploy e… by @lastmjs in #1299
- Type inference by @lastmjs in #1301
- Service to canister by @lastmjs in #1300
- Candid keywords by @bdemann in #1338
- Js rearchitecture squashed by @dansteren in #1339
- fix results by @bdemann in #1340
- Print fix by @bdemann in #1341
- add candid_keywords test by @bdemann in https://github.com/demerg...
0.17.1
0.17.0
New Features
- Improved import functionality:
azle
types can now be aliased npx azle clean
ic.canister_version
,ic.is_controller
,ic.instruction_counter
Breaking Changes
Alias
type removedazle/canisters/icrc
types are now prefixed withICRC
What's Changed
- Ckbtc wallet by @lastmjs in #1043
- Added non-panicking error handling for CanisterMethods by @dansteren in #1037
- Basic bitcoin by @lastmjs in #1048
- add Bitcoin documentation by @lastmjs in #1051
- Collect as many results as possible in one go by @bdemann in #1047
- 1045 use locations everywhere by @bdemann in #1052
- robust imports stage 2 by @bdemann in #1057
- Fixed
Promise<void>
andManual<void>
return types by @dansteren in #1075 - Code Coverage: Added tests for aliases and other complex types by @dansteren in #1083
- Added JS Docs for Candid Types and Canister Method Annotations by @dansteren in #1072
- 1056 expunge expects by @bdemann in #1069
- generate alias table from ts.SymbolTable to make imports more robust by @bdemann in #1085
- Breaking Change: Add icrc2 types and methods without tests, refactor icrc slightly by @lastmjs in #1106
- Changed runtime errors to bubble up correctly by @dansteren in #1097
- Update dfx 0.14.2 by @lastmjs in #1115
- Removed remaining
panic
,unwrap
andexpect
statements by @dansteren in #1112 - Added new IC APIs by @dansteren in #1113
- Documentation fixes by @lastmjs in #1104
- Update Boa to fix super class bug, upgrade to es2017 by @lastmjs in #1127
- create a guide for declarativeness and update the Cargo.lock file by @lastmjs in #1129
- Replaced CdkActTryFromVmValueErrors with JsErrors by @dansteren in #1120
- finished going through Azle book by @lastmjs in #1131
- add comment by @lastmjs in #1133
- support type alias declarations (remove Alias keyword) by @bdemann in #1109
- Add npx azle clean, fix global azle directory structure by @lastmjs in #1138
- Add canister version, is controller, instruction counter documentation by @lastmjs in #1134
Full Changelog: 0.16.3...0.17.0
0.16.3
0.16.2
The candid:service
and cdk
metadata sections have been temporarily removed, but the __get_candid_interface_tmp_hack
temporary hack canister method has been reintroduced until a future version of dfx is released with better metadata capabilities.
What's Changed
Full Changelog: 0.16.1...0.16.2
0.16.1
0.16.0
New Features
- cmake dependency requirement removed
- cc dependency requirement removed
- Azle initial prerequisite installation reduced by multiple minutes
- Subsequent Azle compile times decreased significantly
- Set Wasm binary optimization levels in
dfx.json
- Environment variables
Opt
now an algebraic data type- Alpha plugin system
Breaking Changes
Opt
Opt
is now an algebraic data type. This means its type is no longer type Opt<T> = T | null
. Instead, an Opt
is a variant with a Some
and a None
arm.
Before
$query;
export function account(accountArgs: AccountArgs): Opt<Account> {
const account = state.accounts[accountArgs.id];
return account ? account : null;
}
Now
$query;
export function account(accountArgs: AccountArgs): Opt<Account> {
const account = state.accounts[accountArgs.id];
return account ? Opt.Some(account) : Opt.None;
}
Wasm binary optimization
It is possible that your Azle Wasm binaries are now too small without explicit optimization settings in dfx.json
. See here for information on Wasm binary optimization.
What's Changed
- Removed Azle TS Types in favor of SourceMapped types by @dansteren in #998
- Changed Opt to be an algebraic data type by @dansteren in #1008
- Patched name clashes by @dansteren in #1010
- Plugin system v1 by @lastmjs in #1006
- Remove external optimization by @lastmjs in #1009
- Optimize azle generate by @lastmjs in #1019
- Update cargo lock by @lastmjs in #1022
- Documentation for 0.16.0 by @lastmjs in #1021
- Cleanup 0.16.0 by @lastmjs in #1024
Full Changelog: 0.15.0...0.16.0