From 771e0116309f0647c510c35b62022d335b6969b7 Mon Sep 17 00:00:00 2001 From: rvcas Date: Wed, 16 Nov 2022 11:47:30 -0500 Subject: [PATCH] feat(aiken_stdlib): add script context type --- examples/aiken_std/lib/aiken/bytearray.ak | 2 +- examples/aiken_std/lib/aiken/context.ak | 17 +++++++++++++++++ examples/aiken_std/lib/aiken/context/mint.ak | 3 +++ examples/aiken_std/validators/always_true.ak | 5 ++++- 4 files changed, 25 insertions(+), 2 deletions(-) create mode 100644 examples/aiken_std/lib/aiken/context.ak create mode 100644 examples/aiken_std/lib/aiken/context/mint.ak diff --git a/examples/aiken_std/lib/aiken/bytearray.ak b/examples/aiken_std/lib/aiken/bytearray.ak index 0a334385..a5b26fbe 100644 --- a/examples/aiken_std/lib/aiken/bytearray.ak +++ b/examples/aiken_std/lib/aiken/bytearray.ak @@ -9,7 +9,7 @@ pub fn length(bytes: ByteArray) -> Int { } pub fn is_empty(bytes: ByteArray) -> Bool { - builtin.emptyByteArray(bytes) + length(bytes) == 0 } pub fn concat(left front: ByteArray, right back: ByteArray) -> ByteArray { diff --git a/examples/aiken_std/lib/aiken/context.ak b/examples/aiken_std/lib/aiken/context.ak new file mode 100644 index 00000000..3cc49644 --- /dev/null +++ b/examples/aiken_std/lib/aiken/context.ak @@ -0,0 +1,17 @@ +pub type ScriptContext(purpose) { + transaction: Transaction, + purpose: purpose, +} + +pub type Transaction { + inputs: List(Nil), + outputs: List(Nil), + fee: Nil, + mint: Nil, + certificates: List(Nil), + withdrawals: List(Nil), + validity_range: Nil, + extra_signatories: Nil, + datums: List(Nil), + id: ByteArray, +} diff --git a/examples/aiken_std/lib/aiken/context/mint.ak b/examples/aiken_std/lib/aiken/context/mint.ak new file mode 100644 index 00000000..e1efad2e --- /dev/null +++ b/examples/aiken_std/lib/aiken/context/mint.ak @@ -0,0 +1,3 @@ +pub type Mint { + currency_symbol: ByteArray, +} diff --git a/examples/aiken_std/validators/always_true.ak b/examples/aiken_std/validators/always_true.ak index 2b805045..b792130a 100644 --- a/examples/aiken_std/validators/always_true.ak +++ b/examples/aiken_std/validators/always_true.ak @@ -1,3 +1,6 @@ -pub fn spend(d: Nil, r: Nil, ctx: Nil) -> Bool { +use aiken/context.{ScriptContext} +use aiken/context/mint.{Mint} + +pub fn mint(d: Nil, r: Nil, ctx: ScriptContext(Mint)) -> Bool { True }