Skip to content
This repository was archived by the owner on Sep 17, 2024. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions fractionalize-scripts/data/datum.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,10 @@
"constructor": 0,
"fields": [
{
"bytes": "d15070626abe6a5c0e3d042daccf72f3df5b401955ada1c58da7d061"
"bytes": "7e1d6eafff5ba11b68493bfc00a66dedf48bafe12fe3c21f81e314c8"
},
{
"bytes": "a896333a052024101cca7218b1ea94d87af763e2b7166bac67a34566"
"bytes": "5b970e0d6ab8baa43bab2c2a0c65e0d5cd8f70cff090e86a2c1ec008"
},
{
"bytes": "4e65774d5f30"
Expand Down
3 changes: 2 additions & 1 deletion fractionalize-scripts/lockAndFractionalize.sh
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,8 @@ seller_pkh=$(cardano-cli address key-hash --payment-verification-key-file wallet
#
policy_id=$(cat ../minting-contract/policy.id)
#
SC_ASSET="1 a896333a052024101cca7218b1ea94d87af763e2b7166bac67a34566.4e65774d5f30"
SC_ASSET="1 5b970e0d6ab8baa43bab2c2a0c65e0d5cd8f70cff090e86a2c1ec008.4e65774d5f30"
#
MINT_ASSET="100000000 ${policy_id}.4e65774d5f30"
UTXO_VALUE=$(${cli} transaction calculate-min-required-utxo \
--protocol-params-file tmp/protocol.json \
Expand Down
5 changes: 3 additions & 2 deletions fractionalize-scripts/unlockAndSolidify.sh
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,9 @@ buyer_pkh=$(cardano-cli address key-hash --payment-verification-key-file wallets
seller_address=$(cat wallets/seller-wallet/payment.addr)
seller_pkh=$(cardano-cli address key-hash --payment-verification-key-file wallets/seller-wallet/payment.vkey)
policy_id=$(cat ../minting-contract/policy.id)

SC_ASSET="1 a896333a052024101cca7218b1ea94d87af763e2b7166bac67a34566.4e65774d5f30"
#
SC_ASSET="1 5b970e0d6ab8baa43bab2c2a0c65e0d5cd8f70cff090e86a2c1ec008.4e65774d5f30"
#
BURN_ASSET="-100000000 ${policy_id}.4e65774d5f30"
UTXO_VALUE=$(${cli} transaction calculate-min-required-utxo \
--protocol-params-file tmp/protocol.json \
Expand Down
4 changes: 2 additions & 2 deletions hie.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,9 @@ cradle:
cabal:
- path: "./locking-contract/src"
component: "locking-contract:lib:locking-contract"
- path: "./locking-contract/pab"
component: "plutus-starter:exe:plutus-starter-pab"
- path: "./minting-contract/src"
component: "minting-contract:lib:minting-contract"
- path: "./nft-minting-contract/src"
component: "nft-minting-contract:lib:nft-minting-contract"
- path: "./nft-locking-contract/src"
component: "nft-locking-contract:lib:nft-locking-contract"
2 changes: 1 addition & 1 deletion locking-contract/locking_contract.plutus

Large diffs are not rendered by default.

26 changes: 5 additions & 21 deletions locking-contract/src/CheckFuncs.hs
Original file line number Diff line number Diff line change
Expand Up @@ -27,20 +27,18 @@
{-# OPTIONS_GHC -fexpose-all-unfoldings #-}
module CheckFuncs
( isValueContinuing
-- , isPKHGettingPaid
, isAddrGettingPaid
, isSingleScript
, createAddress
) where
import Plutus.V1.Ledger.Credential
-- import qualified Plutus.V1.Ledger.Address as Address
import qualified Plutus.V1.Ledger.Value as Value
import Ledger hiding ( singleton )
import PlutusTx.Prelude
{- |
Author : The Ancient Kraken
Copyright: 2022
Version : Rev 2
Version : Rev 1
-}
-------------------------------------------------------------------------
-- | Create a proper Address Type.
Expand Down Expand Up @@ -72,29 +70,15 @@ isAddrGettingPaid (x:xs) addr val

checkVal :: Bool
checkVal = Value.geq (txOutValue x) val
-- -------------------------------------------------------------------------------
-- -- | Search each TxOut for an address and value.
-- -------------------------------------------------------------------------------
-- isPKHGettingPaid :: [TxOut] -> PubKeyHash -> Value -> Bool
-- isPKHGettingPaid [] _pkh _val = False
-- isPKHGettingPaid (x:xs) pkh val
-- | checkAddr && checkVal = True
-- | otherwise = isPKHGettingPaid xs pkh val
-- where
-- checkAddr :: Bool
-- checkAddr = txOutAddress x == Address.pubKeyHashAddress pkh

-- checkVal :: Bool
-- checkVal = Value.geq (txOutValue x) val
-------------------------------------------------------------------------------
-- | Force a single script utxo input.
-------------------------------------------------------------------------------
isSingleScript :: [TxInInfo] -> Bool
isSingleScript txInputs = loopInputs txInputs 0
where
loopInputs :: [TxInInfo] -> Integer -> Bool
loopInputs [] counter = counter == 1
loopInputs (x:xs) !counter =
loopInputs [] counter = counter == (1 :: Integer)
loopInputs (x:xs) counter =
case txOutDatumHash $ txInInfoResolved x of
Nothing -> do counter <= 1 && loopInputs xs counter
Just _ -> do counter <= 1 && loopInputs xs (counter + 1)
Nothing -> loopInputs xs counter
Just _ -> loopInputs xs (counter + 1)
30 changes: 14 additions & 16 deletions locking-contract/src/LockingContract.hs
Original file line number Diff line number Diff line change
Expand Up @@ -32,28 +32,26 @@ module LockingContract
, Schema
, contract
) where
import Cardano.Api.Shelley (PlutusScript (..), PlutusScriptV1)
import Codec.Serialise ( serialise )
import qualified Data.ByteString.Lazy as LBS
import qualified Data.ByteString.Short as SBS
import Ledger hiding ( singleton )
import qualified Ledger.Typed.Scripts as Scripts
import qualified PlutusTx
import PlutusTx.Prelude
import Plutus.Contract
import qualified Plutus.V1.Ledger.Scripts as Plutus
-- import qualified Plutus.V1.Ledger.Ada as Ada
import qualified Plutus.V1.Ledger.Value as Value
import Data.Aeson ( FromJSON, ToJSON )
import Data.OpenApi.Schema ( ToSchema )
import GHC.Generics ( Generic )
import Prelude ( Show )
import CheckFuncs
import Cardano.Api.Shelley ( PlutusScript (..), PlutusScriptV1 )
import Codec.Serialise ( serialise )
import qualified Data.ByteString.Lazy as LBS
import qualified Data.ByteString.Short as SBS
import Ledger hiding ( singleton )
import qualified Ledger.Typed.Scripts as Scripts
import qualified Plutus.V1.Ledger.Scripts as Plutus
import qualified Plutus.V1.Ledger.Value as Value
import Data.Aeson ( FromJSON, ToJSON )
import Data.OpenApi.Schema ( ToSchema )
import GHC.Generics ( Generic )
import Prelude ( Show )
import CheckFuncs
{- |
Author : The Ancient Kraken
Copyright: 2022
Version : Rev 0
A lightweight smart contract solution for pure ADA group payouts.
Version : Rev 1
-}
-------------------------------------------------------------------------------
-- | Create the datum parameters data object.
Expand Down
2 changes: 1 addition & 1 deletion locking-contract/validator.hash
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ceb5b477efe434f6e811b6d39531fe7afedf66417f782f9c66e2bd73
49cf1d9cb7c80faac818e2e3673f06f381e2e4a9cd40e75e91e4f440
2 changes: 1 addition & 1 deletion minting-contract/minting_contract.plutus
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
{
"type": "PlutusScriptV1",
"description": "",
"cborHex": "590b44590b41010000332323322332232323232323232323233223232323232323232323232323232323232323232222323253353232323302253353233027502c00132350012222222222007500213024498884d40088894cd40104cc09ccd540a0c0a9240113496e636f727265637420506f6c6963792049640033026003350082233335001232635335738921024c680001f01e20012326353357389201024c680001f01e2326353357389201024c680001f01e3355028302a4911a496e636f7272656374204d696e742f4275726e20416d6f756e7400323253350021030100133026002483fe0ebd7ccc094005208084af5f221302b498cc0952410c5369676e6572204572726f720053353001323500122222222220095002213355024302649110496e636f7272656374205369676e657200330233301a500335009220013301a5003350012222200213302549010e4e6f20446174756d20466f756e64000283200135502c2253350011501e221533532323500222350032232335005233500425335333573466e3c0080040d40d05400c40d080d08cd401080d094cd4ccd5cd19b8f002001035034150031034153350032153350022133500223350022335002233500223303000200120372335002203723303000200122203722233500420372225335333573466e1c01800c0e80e454cd4ccd5cd19b8700500203a03913303100400110391039103215335001210321032323301f302000150223500c2200235002222003153353500222200121533532350012222222222533533355302e12001502b235001225335333573466e3c00803c0ec0e84d40c000c540bc00884d40b8d400488004540b140188c8c8c8c8c84cd540b540a0cccd5cd19b8735573aa00a90001191919191909199998008030028020018011bae357426ae894018dd71aba15005375c6ae854014dd71aba15005375c6ae8540148c98d4cd5ce01181101081009aba25001135744a00226ae8940044d55cf280089baa001130050021300400113004001135001220023333573466e1cd55cea8012400046644246600200600464646464646464646464646666ae68cdc39aab9d500a480008cccccccccc888888888848cccccccccc00402c02802402001c01801401000c008cd404c8c8c8cccd5cd19b8735573aa0049000119910919800801801180e1aba150023018357426ae8940088c98d4cd5ce01301281201189aab9e5001137540026ae854028cd404c050d5d0a804999aa80b3ae501535742a010666aa02ceb94054d5d0a80399a80980e1aba15006335013335501f01d75a6ae854014c8c8c8cccd5cd19b8735573aa00490001199109198008018011919191999ab9a3370e6aae754009200023322123300100300233502275a6ae854008c08cd5d09aba2500223263533573805405205004e26aae7940044dd50009aba150023232323333573466e1cd55cea8012400046644246600200600466a044eb4d5d0a80118119aba135744a004464c6a66ae700a80a40a009c4d55cf280089baa001357426ae8940088c98d4cd5ce01301281201189aab9e5001137540026ae854010cd404dd71aba15003335013335501f75c40026ae854008c064d5d09aba2500223263533573804404204003e26ae8940044d5d1280089aba25001135744a00226ae8940044d5d1280089aba25001135744a00226aae7940044dd50009aba150023232323333573466e1d400520062321222230040053014357426aae79400c8cccd5cd19b875002480108c848888c008014c058d5d09aab9e500423333573466e1d400d20022321222230010053012357426aae7940148cccd5cd19b875004480008c848888c00c014dd71aba135573ca00c464c6a66ae7007407006c06806406005c4d55cea80089baa001357426ae8940088c98d4cd5ce00b00a80a009880a09931a99ab9c49010350543500014013135573ca00226ea800448c88c008dd6000990009aa812911999aab9f00125026233502530043574200460066ae880080448c8c8c8cccd5cd19b8735573aa00690001199911091998008020018011919191999ab9a3370e6aae7540092000233019301335742a00466a0180246ae84d5d1280111931a99ab9c017016015014135573ca00226ea8004d5d0a801999aa803bae500635742a00466a010eb8d5d09aba2500223263533573802602402202026ae8940044d55cf280089baa0011335500175ceb44488c88c008dd5800990009aa81191191999aab9f0022502523350243355026300635573aa004600a6aae794008c010d5d100180809aba100112232323333573466e1d400520002350163005357426aae79400c8cccd5cd19b87500248008940588c98d4cd5ce00880800780700689aab9d500113754002464646666ae68cdc39aab9d5002480008cc8848cc00400c008c014d5d0a8011bad357426ae8940088c98d4cd5ce00700680600589aab9e5001137540024646666ae68cdc39aab9d5001480008dd71aba135573ca004464c6a66ae7003002c0280244dd500089119191999ab9a3370ea00290021091100091999ab9a3370ea00490011190911180180218031aba135573ca00846666ae68cdc3a801a400042444004464c6a66ae7003c03803403002c0284d55cea80089baa0012323333573466e1d40052002201b23333573466e1d40092000201b23263533573801601401201000e26aae74dd5000919191919191999ab9a3370ea002900610911111100191999ab9a3370ea004900510911111100211999ab9a3370ea00690041199109111111198008048041bae35742a00a6eb4d5d09aba2500523333573466e1d40112006233221222222233002009008375c6ae85401cdd71aba135744a00e46666ae68cdc3a802a400846644244444446600c01201060186ae854024dd71aba135744a01246666ae68cdc3a8032400446424444444600e010601a6ae84d55cf280591999ab9a3370ea00e900011909111111180280418071aba135573ca018464c6a66ae7004c04804404003c03803403002c0284d55cea80209aab9e5003135573ca00426aae7940044dd50009191919191999ab9a3370ea002900111999110911998008028020019bad35742a0086eb4d5d0a8019bad357426ae89400c8cccd5cd19b875002480008c8488c00800cc020d5d09aab9e500623263533573801801601401201026aae75400c4d5d1280089aab9e500113754002464646666ae68cdc3a800a4004460166eb8d5d09aab9e500323333573466e1d400920002321223002003375c6ae84d55cf280211931a99ab9c009008007006005135573aa00226ea800444888c8c8cccd5cd19b8735573aa0049000119aa80e98031aba150023005357426ae8940088c98d4cd5ce00480400380309aab9e5001137540029309000a49035054310022350022222222222533533355301212001500f25335333573466e3c0300040740704d40480045404400c84074406c8848cc00400c0088488c00400c4c848cc004894cd40088400c4004009400448488c00800c4488004c8004d5403888448894cd40044d400c88004884ccd401488008c010008ccd54c01c4800401401000488ccd5cd19b8700200100b00a22333573466e3c008004028024894cd4008400440204488c0080048cc00924010f4d696e742f4275726e204572726f72000052253350011006133573800400a640026aa00e444a66a00220044426a004446600e66601000400c002006640026aa00c4444a66a00220044426a00444a66a666ae68cdc3800a4000014012266601000e00c006266601000e66a0162466600201000600400c006244004244002224400424424466002008006224424660020060042246460020024466006600400400266a2446600491011cceb5b477efe434f6e811b6d39531fe7afedf66417f782f9c66e2bd730048811ca2108b7b1704f9fe12c906096ea1634df8e089c9ccfd651abae4a4390022123300100300220011"
"cborHex": "590b44590b41010000332323322332232323232323232323233223232323232323232323232323232323232323232222323253353232323302253353233027502c00132350012222222222007500213024498884d40088894cd40104cc09ccd540a0c0a9240113496e636f727265637420506f6c6963792049640033026003350082233335001232635335738921024c680001f01e20012326353357389201024c680001f01e2326353357389201024c680001f01e3355028302a4911a496e636f7272656374204d696e742f4275726e20416d6f756e7400323253350021030100133026002483fe0ebd7ccc094005208084af5f221302b498cc0952410c5369676e6572204572726f720053353001323500122222222220095002213355024302649110496e636f7272656374205369676e657200330233301a500335009220013301a5003350012222200213302549010e4e6f20446174756d20466f756e64000283200135502c2253350011501e221533532323500222350032232335005233500425335333573466e3c0080040d40d05400c40d080d08cd401080d094cd4ccd5cd19b8f002001035034150031034153350032153350022133500223350022335002233500223303000200120372335002203723303000200122203722233500420372225335333573466e1c01800c0e80e454cd4ccd5cd19b8700500203a03913303100400110391039103215335001210321032323301f302000150223500c2200235002222003153353500222200121533532350012222222222533533355302e12001502b235001225335333573466e3c00803c0ec0e84d40c000c540bc00884d40b8d400488004540b140188c8c8c8c8c84cd540b540a0cccd5cd19b8735573aa00a90001191919191909199998008030028020018011bae357426ae894018dd71aba15005375c6ae854014dd71aba15005375c6ae8540148c98d4cd5ce01181101081009aba25001135744a00226ae8940044d55cf280089baa001130050021300400113004001135001220023333573466e1cd55cea8012400046644246600200600464646464646464646464646666ae68cdc39aab9d500a480008cccccccccc888888888848cccccccccc00402c02802402001c01801401000c008cd404c8c8c8cccd5cd19b8735573aa0049000119910919800801801180e1aba150023018357426ae8940088c98d4cd5ce01301281201189aab9e5001137540026ae854028cd404c050d5d0a804999aa80b3ae501535742a010666aa02ceb94054d5d0a80399a80980e1aba15006335013335501f01d75a6ae854014c8c8c8cccd5cd19b8735573aa00490001199109198008018011919191999ab9a3370e6aae754009200023322123300100300233502275a6ae854008c08cd5d09aba2500223263533573805405205004e26aae7940044dd50009aba150023232323333573466e1cd55cea8012400046644246600200600466a044eb4d5d0a80118119aba135744a004464c6a66ae700a80a40a009c4d55cf280089baa001357426ae8940088c98d4cd5ce01301281201189aab9e5001137540026ae854010cd404dd71aba15003335013335501f75c40026ae854008c064d5d09aba2500223263533573804404204003e26ae8940044d5d1280089aba25001135744a00226ae8940044d5d1280089aba25001135744a00226aae7940044dd50009aba150023232323333573466e1d400520062321222230040053014357426aae79400c8cccd5cd19b875002480108c848888c008014c058d5d09aab9e500423333573466e1d400d20022321222230010053012357426aae7940148cccd5cd19b875004480008c848888c00c014dd71aba135573ca00c464c6a66ae7007407006c06806406005c4d55cea80089baa001357426ae8940088c98d4cd5ce00b00a80a009880a09931a99ab9c49010350543500014013135573ca00226ea800448c88c008dd6000990009aa812911999aab9f00125026233502530043574200460066ae880080448c8c8c8cccd5cd19b8735573aa00690001199911091998008020018011919191999ab9a3370e6aae7540092000233019301335742a00466a0180246ae84d5d1280111931a99ab9c017016015014135573ca00226ea8004d5d0a801999aa803bae500635742a00466a010eb8d5d09aba2500223263533573802602402202026ae8940044d55cf280089baa0011335500175ceb44488c88c008dd5800990009aa81191191999aab9f0022502523350243355026300635573aa004600a6aae794008c010d5d100180809aba100112232323333573466e1d400520002350163005357426aae79400c8cccd5cd19b87500248008940588c98d4cd5ce00880800780700689aab9d500113754002464646666ae68cdc39aab9d5002480008cc8848cc00400c008c014d5d0a8011bad357426ae8940088c98d4cd5ce00700680600589aab9e5001137540024646666ae68cdc39aab9d5001480008dd71aba135573ca004464c6a66ae7003002c0280244dd500089119191999ab9a3370ea00290021091100091999ab9a3370ea00490011190911180180218031aba135573ca00846666ae68cdc3a801a400042444004464c6a66ae7003c03803403002c0284d55cea80089baa0012323333573466e1d40052002201b23333573466e1d40092000201b23263533573801601401201000e26aae74dd5000919191919191999ab9a3370ea002900610911111100191999ab9a3370ea004900510911111100211999ab9a3370ea00690041199109111111198008048041bae35742a00a6eb4d5d09aba2500523333573466e1d40112006233221222222233002009008375c6ae85401cdd71aba135744a00e46666ae68cdc3a802a400846644244444446600c01201060186ae854024dd71aba135744a01246666ae68cdc3a8032400446424444444600e010601a6ae84d55cf280591999ab9a3370ea00e900011909111111180280418071aba135573ca018464c6a66ae7004c04804404003c03803403002c0284d55cea80209aab9e5003135573ca00426aae7940044dd50009191919191999ab9a3370ea002900111999110911998008028020019bad35742a0086eb4d5d0a8019bad357426ae89400c8cccd5cd19b875002480008c8488c00800cc020d5d09aab9e500623263533573801801601401201026aae75400c4d5d1280089aab9e500113754002464646666ae68cdc3a800a4004460166eb8d5d09aab9e500323333573466e1d400920002321223002003375c6ae84d55cf280211931a99ab9c009008007006005135573aa00226ea800444888c8c8cccd5cd19b8735573aa0049000119aa80e98031aba150023005357426ae8940088c98d4cd5ce00480400380309aab9e5001137540029309000a49035054310022350022222222222533533355301212001500f25335333573466e3c0300040740704d40480045404400c84074406c8848cc00400c0088488c00400c4c848cc004894cd40088400c4004009400448488c00800c4488004c8004d5403888448894cd40044d400c88004884ccd401488008c010008ccd54c01c4800401401000488ccd5cd19b8700200100b00a22333573466e3c008004028024894cd4008400440204488c0080048cc00924010f4d696e742f4275726e204572726f72000052253350011006133573800400a640026aa00e444a66a00220044426a004446600e66601000400c002006640026aa00c4444a66a00220044426a00444a66a666ae68cdc3800a4000014012266601000e00c006266601000e66a0162466600201000600400c006244004244002224400424424466002008006224424660020060042246460020024466006600400400266a2446600491011c49cf1d9cb7c80faac818e2e3673f06f381e2e4a9cd40e75e91e4f4400048811ca2108b7b1704f9fe12c906096ea1634df8e089c9ccfd651abae4a4390022123300100300220011"
}
2 changes: 1 addition & 1 deletion minting-contract/policy.id
Original file line number Diff line number Diff line change
@@ -1 +1 @@
d15070626abe6a5c0e3d042daccf72f3df5b401955ada1c58da7d061
7e1d6eafff5ba11b68493bfc00a66dedf48bafe12fe3c21f81e314c8
4 changes: 1 addition & 3 deletions minting-contract/src/MintingContract.hs
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,10 @@
{-# OPTIONS_GHC -fobject-code #-}
{-# OPTIONS_GHC -fno-specialise #-}
{-# OPTIONS_GHC -fexpose-all-unfoldings #-}

module MintingContract
( apiExamplePlutusMintingScript
, mintingScriptShortBs
) where

import Codec.Serialise
import qualified PlutusTx
import Ledger hiding (singleton)
Expand Down Expand Up @@ -126,7 +124,7 @@ policy mp = mkMintingPolicyScript ($$(PlutusTx.compile [|| Scripts.wrapMintingPo
-------------------------------------------------------------------------------
plutusScript :: Script
plutusScript = unMintingPolicyScript (policy params)
where params = MintParams { mpValidatorHash = "ceb5b477efe434f6e811b6d39531fe7afedf66417f782f9c66e2bd73" -- locking script
where params = MintParams { mpValidatorHash = "49cf1d9cb7c80faac818e2e3673f06f381e2e4a9cd40e75e91e4f440" -- locking script
, mpNewmPKH = "a2108b7b1704f9fe12c906096ea1634df8e089c9ccfd651abae4a439" -- newm pkh
}

Expand Down
Loading