aiken/crates/uplc
KtorZ 46c357df7b Fix Int/BigInt pivot
We've been wrongly representing large ints as BigInt, causing them to
  behave differently in the VM through builtins like 'serialise_data'.

  Indeed, we expect anything that fits in 8 bytes to be encoded as Major
  Type 0 or 1. But we were switching to encoding as Major type 6
  (tagged, PosBigInt, NegBigInt) for much smaller values! Anything
  outside of the range [-2^32, 2^32-1] would be treated as big int
  (positive or negative).

  Why? Because we checked whether a value i would fit in an i64, and if
  it didn't we treated it as big int. But the reality is more subtle...
  Fortunately, Rust has i128 and the minicbor library implements TryFrom
  which enforces that the value fits in a range of [-2^64, 2^64 - 1], so
  we're back on track easily.
2024-02-25 14:09:56 -05:00
..
src Fix Int/BigInt pivot 2024-02-25 14:09:56 -05:00
test_data chore: update the conformance tests 2024-02-20 13:05:28 -05:00
tests chore: update the conformance tests 2024-02-20 13:05:28 -05:00
Cargo.toml chore: Release 2024-01-31 13:48:20 -05:00
README.md chore: readmes in uplc and cli 2022-06-18 23:15:05 -04:00

README.md

Untyped Plutus Core

A crate for working with untyped plutus core. It handles parsing, conversion between various forms, and flat encoding/decoding.