chore: fix the issue in gift card
This commit is contained in:
parent
d337e601cb
commit
6bbc6a8f2f
|
@ -13,4 +13,4 @@ requirements = []
|
||||||
source = "github"
|
source = "github"
|
||||||
|
|
||||||
[etags]
|
[etags]
|
||||||
"aiken-lang/stdlib@v2" = [{ secs_since_epoch = 1724791385, nanos_since_epoch = 321810000 }, "cdbbce58b61deb385e7ea787a2e0fc2dc8fe94db9999e0e6275bc9c70e5796be"]
|
"aiken-lang/stdlib@v2" = [{ secs_since_epoch = 1724799279, nanos_since_epoch = 877917000 }, "cdbbce58b61deb385e7ea787a2e0fc2dc8fe94db9999e0e6275bc9c70e5796be"]
|
||||||
|
|
|
@ -68,6 +68,37 @@
|
||||||
"compiledCode": "59041b0100003232323232323232232253330043232323232323232325323233300f300100613232323232325333015300830163754002264a66602c6010602e6ea80044c94ccc05cc028c060dd5003099b8732325333019300b301a37540022900009bad301e301b375400264a666032601660346ea8004530103d87a8000132330010013756603e60386ea8008894ccc078004530103d87a8000132323232533301f337220100042a66603e66e3c0200084c050cc08cdd4000a5eb80530103d87a8000133006006003375a60400066eb8c078008c088008c080004cc030014008dd7180e180c9baa0064800458dd7180d980c1baa00116301a301737546034602e6ea8c068c06cc05cdd5180d180b9baa0011632330010013758603400644a6660320022980103d87a80001323253330183375e601c60346ea80080204c034cc0700092f5c0266008008002603a00460360026eacc060c064c064c064c064004c050dd5006980b180b801180a80098089baa0071533300f3002006132323253330123005001132533301600116132533333301b0011616161325333018301b0031500516375a0022c603000260286ea802c54ccc048c01000454ccc054c050dd50058a8010b0b18091baa00a1323232323232325333017300a3018375402026464a66603266002008466e3c0600044c8c8cc004004014894ccc07c004528899191919299981019804004919b8f00100315333020323300100100e22533302500114a0264a6660466464a66604a66ebcc0a8c0acc0ac008cdd2a4008660526ea401d2f5c0266ebcc06cc09cdd50008060a50302900130253754605000429444cc00c00c004c0a000454ccc080c0480044cc01801800c5280b0b1bad3021003375c603e0046046004604200266e9520023301d375201497ae014a044646600200200644a66603e00229404c94ccc074c010dd718110010a5113300300300130220013232333001001375a603c60366ea80492f5c0444a666036601c0042002266600600666e0000920013301f37526e50cdc58010020009bb3300d30193754603800c2646600200200444a66603800229444c94ccc068cdc39bad301c301f002480044cc00c00c004528180f80099299980b9804980c1baa00114bd6f7b63009bab301c30193754002660146eacc06c00801cdd6180d180d980d980d980d800980d180d0011bac3018001301830180023758602c00260246ea802cdd7180a18089baa00716370e90011b874800088c8cc00400400c894ccc04c004530103d87a800013232323253330143372200e0042a66602866e3c01c0084c024cc060dd3000a5eb80530103d87a80001330060060033756602a0066eb8c04c008c05c008c054004dd2a40004602000260146ea8004c034c038008c030004c030008c028004c018dd50008a4c26cac6eb80055cd2ab9d5573caae7d5d02ba15744ae91",
|
"compiledCode": "59041b0100003232323232323232232253330043232323232323232325323233300f300100613232323232325333015300830163754002264a66602c6010602e6ea80044c94ccc05cc028c060dd5003099b8732325333019300b301a37540022900009bad301e301b375400264a666032601660346ea8004530103d87a8000132330010013756603e60386ea8008894ccc078004530103d87a8000132323232533301f337220100042a66603e66e3c0200084c050cc08cdd4000a5eb80530103d87a8000133006006003375a60400066eb8c078008c088008c080004cc030014008dd7180e180c9baa0064800458dd7180d980c1baa00116301a301737546034602e6ea8c068c06cc05cdd5180d180b9baa0011632330010013758603400644a6660320022980103d87a80001323253330183375e601c60346ea80080204c034cc0700092f5c0266008008002603a00460360026eacc060c064c064c064c064004c050dd5006980b180b801180a80098089baa0071533300f3002006132323253330123005001132533301600116132533333301b0011616161325333018301b0031500516375a0022c603000260286ea802c54ccc048c01000454ccc054c050dd50058a8010b0b18091baa00a1323232323232325333017300a3018375402026464a66603266002008466e3c0600044c8c8cc004004014894ccc07c004528899191919299981019804004919b8f00100315333020323300100100e22533302500114a0264a6660466464a66604a66ebcc0a8c0acc0ac008cdd2a4008660526ea401d2f5c0266ebcc06cc09cdd50008060a50302900130253754605000429444cc00c00c004c0a000454ccc080c0480044cc01801800c5280b0b1bad3021003375c603e0046046004604200266e9520023301d375201497ae014a044646600200200644a66603e00229404c94ccc074c010dd718110010a5113300300300130220013232333001001375a603c60366ea80492f5c0444a666036601c0042002266600600666e0000920013301f37526e50cdc58010020009bb3300d30193754603800c2646600200200444a66603800229444c94ccc068cdc39bad301c301f002480044cc00c00c004528180f80099299980b9804980c1baa00114bd6f7b63009bab301c30193754002660146eacc06c00801cdd6180d180d980d980d980d800980d180d0011bac3018001301830180023758602c00260246ea802cdd7180a18089baa00716370e90011b874800088c8cc00400400c894ccc04c004530103d87a800013232323253330143372200e0042a66602866e3c01c0084c024cc060dd3000a5eb80530103d87a80001330060060033756602a0066eb8c04c008c05c008c054004dd2a40004602000260146ea8004c034c038008c030004c030008c028004c018dd50008a4c26cac6eb80055cd2ab9d5573caae7d5d02ba15744ae91",
|
||||||
"hash": "6c10e19fb5e6669d8b542369d650bcffe72bad1368f50b83b30fb78c"
|
"hash": "6c10e19fb5e6669d8b542369d650bcffe72bad1368f50b83b30fb78c"
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
"title": "oneshot.gift_card.spend",
|
||||||
|
"datum": {
|
||||||
|
"title": "_d",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/Data"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"redeemer": {
|
||||||
|
"title": "_r",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/Data"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"parameters": [
|
||||||
|
{
|
||||||
|
"title": "token_name",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/ByteArray"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"title": "utxo_ref",
|
||||||
|
"schema": {
|
||||||
|
"$ref": "#/definitions/cardano~1transaction~1OutputReference"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"compiledCode": "5902750100003232323232323223222533300532323232323232323232532333010300500613232323232325333016300730173754002264a66602e601860306ea80044c8c94ccc070c07c0084c94ccc068cdc39bad301c002480044cdc780080c0a50375c60340022c603a002660160066eb8c070c064dd50008b1804980c1baa3009301837546036603860306ea8c06cc060dd50008b198039bac301a00223375e601260306ea8004014dd5980c980d180d180d180d000980a9baa00d3017301800230160013012375400e2a666020600200c2646464a66602660080022a66602c602a6ea802c540085854ccc04cc02000454ccc058c054dd50058a8010b0b18099baa00a1323232325333018301b00213232533301730083018375401e2a66602e601060306ea8cc0240148cdd79805980d1baa00101515333017300c00113371e00402a29405854ccc05ccdc3800a4002266e3c0080545281bad3018002375c602c0022c60320026600e6eacc060c064c064c064c06400800cdd6180b80098099baa00b375c602a60246ea801c58dc3a400044646600200200644a66602a0022980103d87a8000132325333014300500213374a90001980c00125eb804cc010010004c064008c05c0048c04c00488c94ccc03cc010c040dd50008a5eb7bdb1804dd5980a18089baa001323300100100322533301300114c103d87a800013232323253330143372200e0042a66602866e3c01c0084cdd2a4000660306e980052f5c02980103d87a80001330060060033756602a0066eb8c04c008c05c008c054004dc3a400460166ea8004c038c03c008c034004c034008c02c004c01cdd50008a4c26cac6eb80055cd2ab9d5573caae7d5d02ba15745",
|
||||||
|
"hash": "d5ac4a4aa7f04745655feaec25f3570d715b577052f5cd94585e3e43"
|
||||||
|
},
|
||||||
{
|
{
|
||||||
"title": "oneshot.gift_card.mint",
|
"title": "oneshot.gift_card.mint",
|
||||||
"redeemer": {
|
"redeemer": {
|
||||||
|
@ -90,8 +121,8 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"compiledCode": "5901ae01000032323232323232232225333005323232323253323300b3001300c3754004264646464a66601e600a0022a66602460226ea801c540085854ccc03cc00c00454ccc048c044dd50038a8010b0b18079baa006132323232533301430170021323253330133009301437540162a666026601260286ea8c8cc004004018894ccc0600045300103d87a80001323253330173375e603860326ea80080504cdd2a40006603600497ae0133004004001301c002301a00115333013300700113371e00402229405854ccc04ccdc3800a4002266e3c0080445281bad3014002375c60240022c602a00264a666020600860226ea800452f5bded8c026eacc054c048dd500099198008009bab3015301630163016301600322533301400114c103d87a80001323232325333015337220140042a66602a66e3c0280084cdd2a4000660326e980052f5c02980103d87a80001330060060033756602c0066eb8c050008c060008c058004dd6180980098079baa007370e90011bae3010300d37540046e1d200016300e300f002300d001300d002300b0013007375400229309b2b1bae0015734aae7555cf2ab9f5740ae855d11",
|
"compiledCode": "5902750100003232323232323223222533300532323232323232323232532333010300500613232323232325333016300730173754002264a66602e601860306ea80044c8c94ccc070c07c0084c94ccc068cdc39bad301c002480044cdc780080c0a50375c60340022c603a002660160066eb8c070c064dd50008b1804980c1baa3009301837546036603860306ea8c06cc060dd50008b198039bac301a00223375e601260306ea8004014dd5980c980d180d180d180d000980a9baa00d3017301800230160013012375400e2a666020600200c2646464a66602660080022a66602c602a6ea802c540085854ccc04cc02000454ccc058c054dd50058a8010b0b18099baa00a1323232325333018301b00213232533301730083018375401e2a66602e601060306ea8cc0240148cdd79805980d1baa00101515333017300c00113371e00402a29405854ccc05ccdc3800a4002266e3c0080545281bad3018002375c602c0022c60320026600e6eacc060c064c064c064c06400800cdd6180b80098099baa00b375c602a60246ea801c58dc3a400044646600200200644a66602a0022980103d87a8000132325333014300500213374a90001980c00125eb804cc010010004c064008c05c0048c04c00488c94ccc03cc010c040dd50008a5eb7bdb1804dd5980a18089baa001323300100100322533301300114c103d87a800013232323253330143372200e0042a66602866e3c01c0084cdd2a4000660306e980052f5c02980103d87a80001330060060033756602a0066eb8c04c008c05c008c054004dc3a400460166ea8004c038c03c008c034004c034008c02c004c01cdd50008a4c26cac6eb80055cd2ab9d5573caae7d5d02ba15745",
|
||||||
"hash": "b02c999c27c47e9618f0a3021d12a6d44be46da54cf10843435b5ef4"
|
"hash": "d5ac4a4aa7f04745655feaec25f3570d715b577052f5cd94585e3e43"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"title": "oneshot.gift_card.else",
|
"title": "oneshot.gift_card.else",
|
||||||
|
@ -109,58 +140,8 @@
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"compiledCode": "5901ae01000032323232323232232225333005323232323253323300b3001300c3754004264646464a66601e600a0022a66602460226ea801c540085854ccc03cc00c00454ccc048c044dd50038a8010b0b18079baa006132323232533301430170021323253330133009301437540162a666026601260286ea8c8cc004004018894ccc0600045300103d87a80001323253330173375e603860326ea80080504cdd2a40006603600497ae0133004004001301c002301a00115333013300700113371e00402229405854ccc04ccdc3800a4002266e3c0080445281bad3014002375c60240022c602a00264a666020600860226ea800452f5bded8c026eacc054c048dd500099198008009bab3015301630163016301600322533301400114c103d87a80001323232325333015337220140042a66602a66e3c0280084cdd2a4000660326e980052f5c02980103d87a80001330060060033756602c0066eb8c050008c060008c058004dd6180980098079baa007370e90011bae3010300d37540046e1d200016300e300f002300d001300d002300b0013007375400229309b2b1bae0015734aae7555cf2ab9f5740ae855d11",
|
"compiledCode": "5902750100003232323232323223222533300532323232323232323232532333010300500613232323232325333016300730173754002264a66602e601860306ea80044c8c94ccc070c07c0084c94ccc068cdc39bad301c002480044cdc780080c0a50375c60340022c603a002660160066eb8c070c064dd50008b1804980c1baa3009301837546036603860306ea8c06cc060dd50008b198039bac301a00223375e601260306ea8004014dd5980c980d180d180d180d000980a9baa00d3017301800230160013012375400e2a666020600200c2646464a66602660080022a66602c602a6ea802c540085854ccc04cc02000454ccc058c054dd50058a8010b0b18099baa00a1323232325333018301b00213232533301730083018375401e2a66602e601060306ea8cc0240148cdd79805980d1baa00101515333017300c00113371e00402a29405854ccc05ccdc3800a4002266e3c0080545281bad3018002375c602c0022c60320026600e6eacc060c064c064c064c06400800cdd6180b80098099baa00b375c602a60246ea801c58dc3a400044646600200200644a66602a0022980103d87a8000132325333014300500213374a90001980c00125eb804cc010010004c064008c05c0048c04c00488c94ccc03cc010c040dd50008a5eb7bdb1804dd5980a18089baa001323300100100322533301300114c103d87a800013232323253330143372200e0042a66602866e3c01c0084cdd2a4000660306e980052f5c02980103d87a80001330060060033756602a0066eb8c04c008c05c008c054004dc3a400460166ea8004c038c03c008c034004c034008c02c004c01cdd50008a4c26cac6eb80055cd2ab9d5573caae7d5d02ba15745",
|
||||||
"hash": "b02c999c27c47e9618f0a3021d12a6d44be46da54cf10843435b5ef4"
|
"hash": "d5ac4a4aa7f04745655feaec25f3570d715b577052f5cd94585e3e43"
|
||||||
},
|
|
||||||
{
|
|
||||||
"title": "oneshot.redeem.spend",
|
|
||||||
"datum": {
|
|
||||||
"title": "_d",
|
|
||||||
"schema": {
|
|
||||||
"$ref": "#/definitions/Data"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"redeemer": {
|
|
||||||
"title": "_r",
|
|
||||||
"schema": {
|
|
||||||
"$ref": "#/definitions/Data"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"parameters": [
|
|
||||||
{
|
|
||||||
"title": "token_name",
|
|
||||||
"schema": {
|
|
||||||
"$ref": "#/definitions/ByteArray"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"title": "policy_id",
|
|
||||||
"schema": {
|
|
||||||
"$ref": "#/definitions/ByteArray"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"compiledCode": "59011501000032323232323232232232253330063232323232533300b3370e900118061baa001132323232325333013301600213253330113370e6eb4c04c009200113371e00201e2940dd718088008b180a00099299980799b8748008c040dd50008a5eb7bdb1804dd5980a18089baa001323300100137566028602a602a602a602a60226ea8020894ccc04c004530103d87a80001323232325333014337220200042a66602866e3c0400084cdd2a4000660306e980052f5c02980103d87a80001330060060033756602a0066eb8c04c008c05c008c054004c048c04c008c044004c034dd50008b1807980800118070009807001180600098041baa00114984d958dd70009bae0015734aae7555cf2ab9f5740ae855d101",
|
|
||||||
"hash": "9c1ef9eac46243dc82e3f9c7ca83fa07027eb0806835c67d578e010e"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"title": "oneshot.redeem.else",
|
|
||||||
"parameters": [
|
|
||||||
{
|
|
||||||
"title": "token_name",
|
|
||||||
"schema": {
|
|
||||||
"$ref": "#/definitions/ByteArray"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"title": "policy_id",
|
|
||||||
"schema": {
|
|
||||||
"$ref": "#/definitions/ByteArray"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"compiledCode": "59011501000032323232323232232232253330063232323232533300b3370e900118061baa001132323232325333013301600213253330113370e6eb4c04c009200113371e00201e2940dd718088008b180a00099299980799b8748008c040dd50008a5eb7bdb1804dd5980a18089baa001323300100137566028602a602a602a602a60226ea8020894ccc04c004530103d87a80001323232325333014337220200042a66602866e3c0400084cdd2a4000660306e980052f5c02980103d87a80001330060060033756602a0066eb8c04c008c05c008c054004c048c04c008c044004c034dd50008b1807980800118070009807001180600098041baa00114984d958dd70009bae0015734aae7555cf2ab9f5740ae855d101",
|
|
||||||
"hash": "9c1ef9eac46243dc82e3f9c7ca83fa07027eb0806835c67d578e010e"
|
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"definitions": {
|
"definitions": {
|
||||||
|
|
|
@ -1,6 +1,7 @@
|
||||||
use aiken/collection/dict
|
use aiken/collection/dict
|
||||||
use aiken/collection/list
|
use aiken/collection/list
|
||||||
use cardano/assets.{PolicyId}
|
use cardano/assets.{PolicyId}
|
||||||
|
use cardano/credential.{Script}
|
||||||
use cardano/transaction.{OutputReference, Transaction} as tx
|
use cardano/transaction.{OutputReference, Transaction} as tx
|
||||||
|
|
||||||
pub type Action {
|
pub type Action {
|
||||||
|
@ -9,6 +10,22 @@ pub type Action {
|
||||||
}
|
}
|
||||||
|
|
||||||
validator gift_card(token_name: ByteArray, utxo_ref: OutputReference) {
|
validator gift_card(token_name: ByteArray, utxo_ref: OutputReference) {
|
||||||
|
spend(_d, _r, own_ref: OutputReference, transaction: Transaction) {
|
||||||
|
let Transaction { mint, inputs, .. } = transaction
|
||||||
|
|
||||||
|
expect Some(own_input) =
|
||||||
|
list.find(inputs, fn(input) { input.output_reference == own_ref })
|
||||||
|
|
||||||
|
expect Script(policy_id) = own_input.output.address.payment_credential
|
||||||
|
|
||||||
|
expect [Pair(asset_name, amount)] =
|
||||||
|
mint
|
||||||
|
|> assets.tokens(policy_id)
|
||||||
|
|> dict.to_pairs()
|
||||||
|
|
||||||
|
amount == -1 && asset_name == token_name
|
||||||
|
}
|
||||||
|
|
||||||
mint(rdmr: Action, policy_id: PolicyId, transaction: Transaction) {
|
mint(rdmr: Action, policy_id: PolicyId, transaction: Transaction) {
|
||||||
let Transaction { inputs, mint, .. } = transaction
|
let Transaction { inputs, mint, .. } = transaction
|
||||||
|
|
||||||
|
@ -32,20 +49,3 @@ validator gift_card(token_name: ByteArray, utxo_ref: OutputReference) {
|
||||||
fail
|
fail
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
validator redeem(token_name: ByteArray, policy_id: ByteArray) {
|
|
||||||
spend(_d, _r, _o_ref: Data, transaction: Transaction) {
|
|
||||||
let Transaction { mint, .. } = transaction
|
|
||||||
|
|
||||||
expect [Pair(asset_name, amount)] =
|
|
||||||
mint
|
|
||||||
|> assets.tokens(policy_id)
|
|
||||||
|> dict.to_pairs()
|
|
||||||
|
|
||||||
amount == -1 && asset_name == token_name
|
|
||||||
}
|
|
||||||
|
|
||||||
else(_) {
|
|
||||||
fail
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
Loading…
Reference in New Issue