Last active
April 25, 2022 18:41
-
-
Save judeebene/2c647c2212d0d7aaad5c6854e533fea1 to your computer and use it in GitHub Desktop.
offer datum
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
//based on https://gist.github.com/judeebene/021b9c77bb761378e59a8e657cb76cbc datum.json | |
const serializeOfferDatum = ({ | |
tradeOwnerAddress, | |
assetPolicyId, | |
assetSymbol, | |
quantity, | |
mediatorAddress, | |
tresuryAddress, | |
SwapDeadLine, | |
}) => { | |
const offerFields = loader.Cardano.PlutusList.new(); | |
// //1 tradeOwnerAddress | |
offerFields.add(loader.Cardano.PlutusData.new_bytes(fromHex(tradeOwnerAddress))); | |
//2tokenmap | |
offerFields.add( | |
loader.Cardano.PlutusData.new_map( | |
loader.Cardano.PlutusData.new_bytes(fromHex(assetPolicyId)), | |
loader.Cardano.PlutusData.new_map( | |
loader.Cardano.PlutusData.new_bytes(fromHex(assetSymbol)), | |
loader.Cardano.PlutusData.new_bytes(fromHex(quantity)), | |
), | |
), | |
); | |
//3 list of Recipients | |
// seller, volibraTresury | |
// // 3.1 seller | |
const recipient1 = loader.Cardano.PlutusList.new(); | |
recipient1.add(loader.Cardano.PlutusData.new_bytes(fromHex(tradeOwnerAddress))); | |
tokenmap of recipients 1 | |
recipient1.add( | |
loader.Cardano.PlutusData.new_map( | |
loader.Cardano.PlutusData.new_bytes(fromHex(assetPolicyId)), | |
loader.Cardano.PlutusData.new_map( | |
loader.Cardano.PlutusData.new_bytes(fromHex(assetSymbol)), | |
loader.Cardano.PlutusData.new_bytes(fromHex(quantity)), | |
), | |
), | |
); | |
// 3.2 volibraTresury | |
const recipient2 = loader.Cardano.PlutusList.new(); | |
recipient2.add(loader.Cardano.PlutusData.new_bytes(fromHex(tresuryAddress))); | |
//tokenmap of recipients 2 | |
recipient2.add( | |
loader.Cardano.PlutusData.new_map( | |
loader.Cardano.PlutusData.new_bytes(fromHex(assetPolicyId)), | |
loader.Cardano.PlutusData.new_map( | |
loader.Cardano.PlutusData.new_bytes(fromHex(assetSymbol)), | |
loader.Cardano.PlutusData.new_bytes(fromHex(quantity)), | |
), | |
), | |
); | |
const recipientsList = loader.Cardano.PlutusList.new(); | |
recipientsList.add( | |
loader.Cardano.PlutusData.new_constr_plutus_data( | |
loader.Cardano.ConstrPlutusData.new(Loader.Cardano.BigNum.from_str('0'), recipient1), | |
), | |
); | |
recipientsList.add( | |
loader.Cardano.PlutusData.new_constr_plutus_data( | |
loader.Cardano.ConstrPlutusData.new(Loader.Cardano.BigNum.from_str('0'), recipient2), | |
), | |
); | |
offerFields.add(loader.Cardano.PlutusData.new_list(recipientsList)); | |
// //4 timestamp | |
offerFields.add( | |
loader.Cardano.PlutusData.new_integer(loader.Cardano.BigInt.from_str(`${SwapDeadLine}`)), | |
); | |
// //5 mediator | |
offerFields.add(loader.Cardano.PlutusData.new_bytes(fromHex(mediatorAddress))); | |
const datum = loader.Cardano.PlutusData.new_constr_plutus_data( | |
loader.Cardano.ConstrPlutusData.new(loader.Cardano.BigNum.from_str('0'), offerFields), | |
); | |
return datum; | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment