Skip to content

Commit e2afc36

Browse files
Merge pull request #241 from logical-mechanism/240-updated-stdlib-to-300
240 updated stdlib to 300
2 parents 0a6ff76 + 97118a6 commit e2afc36

5 files changed

Lines changed: 38 additions & 37 deletions

File tree

seedelf-contracts/aiken.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ platform = "github"
1212

1313
[[dependencies]]
1414
name = "aiken-lang/stdlib"
15-
version = "v2.2.0"
15+
version = "v3.0.0"
1616
source = "github"
1717

1818
[config]
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
{
22
"type": "PlutusScriptV3",
33
"description": "Generated by Aiken",
4-
"cborHex": "59027f59027c0101003229800aba4aba2aba1aba0aab9faab9eaab9dab9a4888888896600264653001300800198041804800cc0200092225980099b8748008c01cdd500144ca60026018003300c300d0019b874800122259800980098059baa00789919194c004dd71809000cdd71809001cdd718090012444b300130160048acc004c01cc044dd500444cc8966002005159800980498099baa0028992cc00400600513259800800c00e007003801c4cc89660020030058992cc00400600d006803401a264b3001301e0038992cc00660024603e604000323259800acc004cdc4a40000031337100029041404040707ffffffffdeff2ffdfc0d27de755405df442445873ccc1d4efe754d34ef6df0745282036899ba548000cc07cdd4000a5eb82298103d87a8000406c66f2928800cdd7180f180d9baa0099bae301e301b375402c91114c004dd71802180f9baa00d9bae3004301f37540353003001488966002602e60426ea8006264b300130183022375400313377266ee0dd6981318119baa002377600c66ed8ddd80199bb8375a604c60466ea8004ddd80245902118031bc83371466e28cdc50028010019bae30083022375403b16408044c8cc88cc008008004896600200314a115980099b8f375c604200200714a31330020023022001407080f8dd6180f98101810181018101810181018101810180e1baa015375c600260366ea805a29410191180f180f980f800c01d01b1bae0014078603600280c8dd7000980d00120363018001405860286ea800a0028092003001800c005019180a98091baa00814a314a280822c80986024002602200260186ea801e2c805060106ea800a2c8030601000260066ea802629344d959001130010544acabcafe0001"
4+
"cborHex": "59022259021f0101003229800aba4aba2aba1aab9faab9eaab9dab9a488888896600264653001300700198039804000cc01c0092225980099b8748008c01cdd500144ca60026016003300b300c0019b874800122259800980098059baa00789919194c004dd71808800cdd71808801cdd718088012444b300130150048acc004c01cc044dd500444cc8966002005159800980498099baa0028992cc00400600513259800800c00e007003801c4cc89660020030058992cc00400600d006803401a264b3001301d0038992cc00660024603c603e00323370c66f2928800a4105010101c1fffffffff7bfcbff7f0349f79d550177d1091161cf330753bf9d534d3bdb7c1d375c603a60366ea80266eb8c074c06cdd500b24444664466ee4cddc18028019bbb0043376c6eec004cddc18029bc83371466e28cdc50020008011bae3007302137540386eec008dd71802180f9baa00d375c6008603e6ea80691323322330020020012259800800c528456600266e3cdd71810000801c528c4cc008008c08400501c203e3758603c603e603e603e603e603e603e603e603e60386ea8054dd71800980d9baa0168a5040644603a603c603c003007406c6eb800501d180d000a032375c002603200480d0c05c005016180a1baa002800a024800c0060030014060602860246ea8020528c528a0208b20261808800980800098061baa0078b201418041baa0028b200c180380098019baa0088a4d1365640044c010544acabcafe0001"
55
}
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
f2c354195ef789c1292d76f24632c82c2cf4ef4e78d83641e217bf3b
1+
101571e5a0a7a295196e39aa243ba21fed207f54dea49eb443fa6082

seedelf-contracts/lib/schnorr.ak

Lines changed: 34 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
////
33

44
use aiken/crypto.{VerificationKeyHash}
5+
use aiken/crypto/bitwise.{State}
56
use aiken/crypto/bls12_381/g1
67
use aiken/crypto/bls12_381/scalar.{Scalar}
78
use aiken/primitive/bytearray
@@ -61,7 +62,7 @@ test real_fiat_shamir_transform() {
6162
}
6263

6364
/// Internal Use Only
64-
fn randomize(datum: Register, s: Scalar) -> Register {
65+
fn randomize(datum: Register, s: State<Scalar>) -> Register {
6566
// decompress the generator and public value
6667
let g: G1Element = g1.decompress(datum.generator)
6768
let u: G1Element = g1.decompress(datum.public_value)
@@ -106,13 +107,13 @@ pub fn verify(
106107
// = g^r * (g^x)^c
107108
// = g^r * u^c
108109
//
109-
expect Some(z): Option<Scalar> = scalar.from_bytearray_big_endian(z_b)
110+
let z: State<Scalar> = scalar.from_bytes(z_b)
110111
let g_z: G1Element = generator |> g1.decompress |> g1.scale(z)
111112
//
112113
// use the fiat-shamir heuristic to calculate the challenge then convert it to an scalar
113-
expect Some(c): Option<Scalar> =
114+
let c: State<Scalar> =
114115
fiat_shamir_heuristic(generator, g_r_b, public_value, bound)
115-
|> scalar.from_bytearray_big_endian()
116+
|> scalar.from_bytes
116117
//
117118
// the u^c computation: u^c = (g^x)^c = g^(x * c)
118119
let u_c: G1Element = public_value |> g1.decompress |> g1.scale(c)
@@ -124,8 +125,8 @@ pub fn verify(
124125

125126
test valid_schnorr_proof() {
126127
// some secret x
127-
expect Some(x): Option<Scalar> =
128-
scalar.new(
128+
let x: State<Scalar> =
129+
scalar.from_int(
129130
42435875175126190479447740508185965837690552500527637822603658699938581184513,
130131
)
131132
// the datum register using the g1 generator and the public value for x
@@ -135,8 +136,8 @@ test valid_schnorr_proof() {
135136
public_value: g1.generator |> g1.scale(x) |> g1.compress,
136137
}
137138
// a random number
138-
expect Some(r): Option<Scalar> =
139-
scalar.new(
139+
let r: State<Scalar> =
140+
scalar.from_int(
140141
32435875175126190479447740508185965837690552500527637822603658699938581184513,
141142
)
142143
// the bound, something unique from the tx
@@ -148,10 +149,10 @@ test valid_schnorr_proof() {
148149
// the challenge number using a fiat shamir transform
149150
let c_b: ByteArray =
150151
fiat_shamir_heuristic(datum.generator, g_r_b, datum.public_value, bound)
151-
expect Some(c): Option<Scalar> = scalar.from_bytearray_big_endian(c_b)
152+
let c: State<Scalar> = scalar.from_bytes(c_b)
152153
// the z value
153-
let z: Scalar = scalar.mul(c, x) |> scalar.add(r)
154-
let z_b: ByteArray = scalar.to_bytearray_big_endian(z, 0)
154+
let z: State<Scalar> = scalar.mul(c, x) |> scalar.add(r)
155+
let z_b: ByteArray = scalar.to_bytes(z)
155156
// trace datum.generator
156157
// trace datum.public_value
157158
// trace z_b
@@ -162,8 +163,8 @@ test valid_schnorr_proof() {
162163

163164
test randomized_valid_schnorr_proof() {
164165
// some secret x
165-
expect Some(x): Option<Scalar> =
166-
scalar.new(
166+
let x: State<Scalar> =
167+
scalar.from_int(
167168
12435875175126190479447740508185965837690552500527637822603658699938581184513,
168169
)
169170
// the datum register using the g1 generator and the public value for x
@@ -173,13 +174,13 @@ test randomized_valid_schnorr_proof() {
173174
public_value: g1.generator |> g1.scale(x) |> g1.compress,
174175
}
175176
// a random number
176-
expect Some(r): Option<Scalar> =
177-
scalar.new(
177+
let r: State<Scalar> =
178+
scalar.from_int(
178179
32435875175126190479447740508185965837690552500527637822603658699938581184513,
179180
)
180181
// another random number
181-
expect Some(d): Option<Scalar> =
182-
scalar.new(
182+
let d: State<Scalar> =
183+
scalar.from_int(
183184
12435875175126190479447740508185965837690552500527637822603658699938581184513,
184185
)
185186
// rerandomize the a0 register
@@ -198,10 +199,10 @@ test randomized_valid_schnorr_proof() {
198199
datum_rng.public_value,
199200
bound,
200201
)
201-
expect Some(c): Option<Scalar> = scalar.from_bytearray_big_endian(c_b)
202+
let c: State<Scalar> = scalar.from_bytes(c_b)
202203
// the z value
203-
let z: Scalar = scalar.mul(c, x) |> scalar.add(r)
204-
let z_b: ByteArray = scalar.to_bytearray_big_endian(z, 0)
204+
let z: State<Scalar> = scalar.mul(c, x) |> scalar.add(r)
205+
let z_b: ByteArray = scalar.to_bytes(z)
205206
// trace datum_rng.generator
206207
// trace datum_rng.public_value
207208
// trace z_b
@@ -212,8 +213,8 @@ test randomized_valid_schnorr_proof() {
212213

213214
test invalid_schnorr_proof() fail {
214215
// some secret x
215-
expect Some(x): Option<Scalar> =
216-
scalar.new(
216+
let x: State<Scalar> =
217+
scalar.from_int(
217218
42435875175126190479447740508185965837690552500527637822603658699938581184513,
218219
)
219220
// the datum register using the g1 generator and the public value for x
@@ -223,8 +224,8 @@ test invalid_schnorr_proof() fail {
223224
public_value: g1.generator |> g1.scale(x) |> g1.compress,
224225
}
225226
// a random number
226-
expect Some(r): Option<Scalar> =
227-
scalar.new(
227+
let r: State<Scalar> =
228+
scalar.from_int(
228229
32435875175126190479447740508185965837690552500527637822603658699938581184513,
229230
)
230231
// the bound, something unique from the tx
@@ -236,25 +237,25 @@ test invalid_schnorr_proof() fail {
236237
// the challenge number using a fiat shamir transform
237238
let c_b: ByteArray =
238239
fiat_shamir_heuristic(datum.generator, g_r_b, datum.public_value, bound)
239-
expect Some(c): Option<Scalar> = scalar.from_bytearray_big_endian(c_b)
240+
let c: State<Scalar> = scalar.from_bytes(c_b)
240241
// the bad z value, it assumes the secret is the challenge
241-
let z: Scalar = scalar.mul(c, c) |> scalar.add(r)
242-
let z_b: ByteArray = scalar.to_bytearray_big_endian(z, 0)
242+
let z: State<Scalar> = scalar.mul(c, c) |> scalar.add(r)
243+
let z_b: ByteArray = scalar.to_bytes(z)
243244
verify(datum.generator, datum.public_value, z_b, g_r_b, bound)
244245
}
245246

246247
// shows how it is constant time
247248
test simple_schnorr_proof() {
248249
// some secret x
249-
expect Some(x): Option<Scalar> = scalar.new(44203)
250+
let x: State<Scalar> = scalar.from_int(44203)
250251
// the datum register using the g1 generator and the public value for x
251252
let datum: Register =
252253
Register {
253254
generator: g1.generator |> g1.compress,
254255
public_value: g1.generator |> g1.scale(x) |> g1.compress,
255256
}
256257
// a random number
257-
expect Some(r): Option<Scalar> = scalar.new(1337)
258+
let r: State<Scalar> = scalar.from_int(1337)
258259
// the bound, something unique from the tx
259260
let bound: ByteArray = #"acab"
260261
// calculate the g^r term
@@ -264,16 +265,16 @@ test simple_schnorr_proof() {
264265
// the challenge number using a fiat shamir transform
265266
let c_b: ByteArray =
266267
fiat_shamir_heuristic(datum.generator, g_r_b, datum.public_value, bound)
267-
expect Some(c): Option<Scalar> = scalar.from_bytearray_big_endian(c_b)
268+
let c: State<Scalar> = scalar.from_bytes(c_b)
268269
// the z value
269-
let z: Scalar = scalar.mul(c, x) |> scalar.add(r)
270-
let z_b: ByteArray = scalar.to_bytearray_big_endian(z, 0)
270+
let z: State<Scalar> = scalar.mul(c, x) |> scalar.add(r)
271+
let z_b: ByteArray = scalar.to_bytes(z)
271272
verify(datum.generator, datum.public_value, z_b, g_r_b, bound)
272273
}
273274

274275
test simple_regsiter() {
275276
// some secret x
276-
expect Some(x): Option<Scalar> = scalar.new(18446744073709551606)
277+
let x: State<Scalar> = scalar.from_int(18446744073709551606)
277278
// the datum register using the g1 generator and the public value for x
278279
let datum: Register =
279280
Register {

seedelf-contracts/validators/wallet.ak

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ validator contract(_any: Data) {
2424
self: Transaction,
2525
) {
2626
//
27-
// first do a data structure check
27+
// do a data structure check
2828
when maybe_register is {
2929
Some(register) ->
3030
if register is Register {

0 commit comments

Comments
 (0)