![]() The 'HEAD' call that is done to resolve package revisions from unpinned versions is already quite cheap, but it would still be better to avoid overloading Github with such calls; especially for users of a language-server that would compile on-the-fly very often. Upstream packages don't change often so there's no need to constantly check the etag. So we now keep a local version of etags that we fetched, as well as a timestamp from the last time we fetched them so that we only re-fetch them if more than an hour has elapsed. This should be fairly resilient while still massively improving the UX for people showing up after a day and trying to use latest 'main' features. This means that we now effectively have two caching levels: - In the manifest, we store previously fetched etags. - In the filesystem, we have a cache of already downloaded zip archives. The first cache is basically invalidated every hour, while the second cache is only invalidated when a etag changes. For pinned versions, nothing is invalidated as they are considered immutable. |
||
---|---|---|
.. | ||
validators | ||
.gitignore | ||
README.md | ||
aiken.lock | ||
aiken.toml | ||
generate-credentials.ts | ||
hello_world-lock.ts | ||
hello_world-unlock.ts | ||
plutus.json |
README.md
Hello, World!
An example of an Hello, World! contract using Aiken and Lucid.
See the full tutorial on aiken-lang.org.
Building
aiken build
Generating Credentials
deno run --allow-net --allow-write generate-credentials.ts
Locking Funds
Warning Require
BLOCKFROST_API_KEY
environment variable to be set.
deno run --allow-net --allow-read --allow-env hello_world-lock.ts
Unlocking Funds
Warning Require
BLOCKFROST_API_KEY
environment variable to be set.
deno run --allow-net --allow-read --allow-env hello_world-unlock.ts TRANSACTION_ID_FROM_LOCK