
# Cardano Example Dapp

## **Plutus Script Parametrization**

Parameterizes a Plutus Script with same original parameters and verifies the hashes remains equal. Modify parameters to trigger a hash mismatch error. Remove 'strictScriptHashHex' to allow for the new parametrization


## Try it online: 

-  Visit [HTML+JS Dapp](https://gamechangerfinance.github.io/gamechanger.wallet/examples/Plutus%20Script%20Parametrization.html)
-  Visit [HTML+React Dapp](https://gamechangerfinance.github.io/gamechanger.wallet/examples/Plutus%20Script%20Parametrization_react.html)
-  Visit [Native HTML dapp](https://gamechangerfinance.github.io/gamechanger.wallet/examples/Plutus%20Script%20Parametrization_nolib.html)
-  Run [Standalone URL dapp connection](https://wallet.gamechanger.finance/api/2/run/1-H4sIAAAAAAAAA51ZXY_buhH9K4Zf0gJJQFKkRO1b3_JS4KJ5LIqCIqmsgd11ajtfDfLfe84MJXk3m-Q29sqypeHwzPeM9uv-crjc1f3N_o-7D5cP593bfDq8v-z-SKd0Xy-nw3_T5XB82L_cl3qWW_wFar1fQVDPu7R7vPrT4XK7O4Ngdzwd3h0e0t3u_bIA1A9l9xEr5wOWXm7r7jadb_H1VO_T4eG8q__5kO5e7_5-LIf5y_XCy3EHRO_e1RN25KLd_eF8ny75dldPp-Pp9e4f9f74se5enEGXL4rmDQjf1M8vuDzd3R0_7ebjSfZ9qJ8W9leCXr68pz5UWvxOp3fn_c3X_XsR8VW7frMPo0n9LJ_ZWLxNJy-nrzEak6bkcTgcFodJaRpnflR-FBxpnFIxptdT0JPXk_Nxe419zw2MsTiGbgje2Mnh-4Qj4_Jo8Yc3tpU_Z63LuOHBHSts5wgt8P44TiPgDtgiJqHJJQ_RdNFYr_Q5mj457pnw1xuHbxHXYimDjaQwAMm9i0KacfKm824cUqlzn3sSBI_tXF9tcTiPUxx4waqGgEi0hGOwU0qrEIsI-L6KAEpruhKHhFsmjqPeoeZ5t8fuQOsytxlSJQUYkEcU9TioszO2F5gBiHEFRNGMvOnxmppywd9jtR2X3TPUlE3wpQQaJVArjnv1FWAgTO_x7jcOFdxHMZGZoPdF53Gk8AJXKbuB4IFso4omAnQZVR0CYwEB9VNQ_3i3bjAVIjgbrVUlrjaFlbgKsHGz4wG02eexCdDhACcKIYwbfECnrgR-R7dZoNkg_pFzbBz6OkH_2GjI2DHlUryFmJBppqSjm0O2VlavbuadVyXRASEmdOUyDtVXP-EE1_GAFpxAe6T0RWyRMtDIXvguIsm6uIpUJ9zmkQ20AAn47hflJk9PglSgARcRh19JLj8TzsW1oMFfXkxPjyyW0Qhwnfi4G701rvgVy8INNILYym5ND1lcE6D6BmrUaAIlrU63nVKP375J6g1CtjlSJJkTPVKRzAeNJEY7ADyCF8CYFxKhCEliaNG3jJ7hKxILUxlI4TYxxcQL6jXiQNjPwwRMuC1sISA1F5uqFiXyD_lsyT4wORTt6ejIL1u22a5RIEa3J66kuJzgwiuLrp5gAX9vsm2JouO2ntFvqqFDGySfvtLknpyFoZe4tzlK8uodY9wOCVZz7QB_qN7Sz5l_E3zSrn5pAXf0En2qUUcDLL5oxRebbE_Mj8NI4oCngQlE74RO_ZFh27fcpxrRTy_uMlqf6KCmqdkJBJXGw9ErnQNoEUE-uOiMr-oII51zCJXBAKB9HeMatSLtmqMlwywZN4U6DVOZoKNGLBmAbgl2UFtNBFYKxd6IsYEYSEM3ZNapgaFCgFzdaS1bNUOnxlEpSx83W3m1FQwfHtUlr3kLVAY5hq6LjAfDMPbrAtFvEEnVqaMbDRBUMSQH6BGEVlxhypstN3VcxbpX8637dV6rvP1JLHjNIn4JC_oppLqOBWO6RZp8xX3YuD-V_tf0rBNMIeM0GWjeaUTS5VqikXzgZgeLWMkB0EfIHs7WgEMzSetbxwyeYC1r-kCn7_zkg9SCoTNL7cFn7RcPwZbiV1wjrulJ0GKjax4m6Yfp0rYNRlRO4tr0XXJw9P4uTKG4UeI8jgs1r0ICqZGyYKV3K_VopRwYlzR_DWJqN2o3hu299DPYN1jWJ2SKtTgzM8LROnY9ld0BNtPYXksX9SZZK0jdNY0wSrDK4t4xwwAsa3Furg_9JM05kj_U22mHKE0U1No5DR-vjdozOnHDNJQlXy4aGZpGWKO7lor464qBRNmWp1q9hIKYJaVjHZBA6EcOkq_aDSArWTrBpMpKAJy1OGhRYVLuWEJWPM9zYFrmR2yd1SNusAAagG4UOxWmAhqLaJxp8iJqs5biJ5Isu9Jbnmrmh75iG-3iKbaqp7T6UBZPYVFRTyE42K7vYZ8o9gE5fyRRT5DGWpQI1H10Ay1wtS_a9KjNPJWhAgKHk_LmW7hc94N-bDe03HgtfnBuba3Cyki4s3u9clC0svB3-CLTMl2EPk7GXCG5ZUnCVA9SBUiTFFMsmUaxKHRvuMZIuWCSwc69ejiaaSQliXvblEIjY60RFSPNuEzW7lmfRJqyV44dpBN83BlolElvs_qmdUWHH8YQkWm8L-0Blzld5uKqGaIOijoQqzrTBDl7mahybLMFa9pVvWP-XcYLMQKdF-GSrts-OG0QLKZVGCt-KlSoyaNprK-qHkveSJiM-9y2GyhNVKMn0YqYmVdTu-q89KOOTSEC90mlz5Js-9YAiTTmujOR2hGve3bPPoh8V6erUkaD0iMXhaxNmfZlSTwi5Fbek5a7VuO8Nsswe2X7ZtUztLVW_u5qgjCzGn9t12GV4NmuZ6lVHCE4rJBV0DbdxyU5M7pkitLvrXq1Bj9FqV52HRR05PRrcxZgIDZTVGZqHZnswsZT2z2Y0UXNwk5wSbDoYexspYmx0IdPcXLssCWxB6eypGXsyHTyDNPg0J0szAoltjHMtvaS2YOMvNPPzuhsJL0To9zrScY0ndhy05XXfaDPH3mxNNBPhzUC4moFZbX_NApHxj67Tq340TUH902P4hPCHhrsOLhJ2RJC6JWNdYeWs4ubItixYXyGWXu41sx8QulnbMcjN20Di4VB-yCfzaxscXqdXjHigpX2yaIytqRYLY5MzIjPrqmoX78uA7oAmRI_E8QPOhyHnCUn4KvPOtpv811l8339xERal20AXGd_hg0wh2JXuvhzOn4aItnCwJKyaa265SkC7GFlDJenMNCJaYAj4A58rIFjsqvxbC_E0Mm6r0jmktexqGvdcdG53KeOYHyxW6bmuagD8ulA568PzYePpp7r7ghI0HVbtDNMGVan4m1aoVE6GWgwi2IxJqh-kVDaBNceRbRHTJxCxnEzOQdez0c47dkNTyyLyIfIC5MDCXIalVkxJ47jHNBipPJ7b_S86HR8Qf9bw4w-eGYX7Os8t2dOgTJ2xUgd2q747DkEbFf6PMchtyvBKLIN3wyOA9rv2IW-DHDAwWIUQVTmAY0C3K9Db8uZcYAf9jQueqyhjPN8zWnj19uCzhN7ujoh9JJLc0nziGxoa0ai912afIUkeaqorWHy8I4a-7m9GnIA4ORi7P7l48eer_jUdX-z7y36gDnOY0GBCyj5xQxjnZwdohsDje8xg0LioZvK2M95BPpYPfjdpYd34KBs__2xw6WH-unV9ph3f_PPr_t8fDhfTh_y5Xja35iX-_lQ74remr5cKr7tf9e2-28vNybPm3n_7V8kOjxc9jdeO431d3jyG4HkRFm88hPYf0Ki3_WGBvf3Nv8TuH7Xq4hL36uyoCb82p_q5cPpgU_V74-FT9vv0vkCw-zr5_fH0-Vv3LWkS4JznD4I3fGuvG1P3r8uj-jVh94uD-rP63399qZ-BtHXd_Xylxd8iP_6kSu_-Ou3zRuviHiF974BzbVTrrvep3w6PgK2Msgp39bXK9TXupP8r-Ss-8HVH2_32PeXjXH1_5D2-392_ERuCWEF872anheA_z35XltPaRfFLXxV7Cfkm6iUfBF35r-I7r78VMmbfL9C2_7fI1DWm8-i-YWlfrjleu-5Ldebz275dOm25Te8_gfggHEsjxsAAA)

## Source code:

- dapp connection code: [GCScript DSL](Plutus%20Script%20Parametrization.gcscript)
- frontend (using @gamechanger-finance/gc): [HTML+JS dapp](Plutus%20Script%20Parametrization.html)
- frontend (using @gamechanger-finance/gc): [HTML+React dapp](Plutus%20Script%20Parametrization_react.html)
- frontend (without official library): [Native HTML dapp](Plutus%20Script%20Parametrization_nolib.html)

Dapp code was autogenerated by [Playground IDE in GameChanger Wallet ](https://wallet.gamechanger.finance/playground)

## GCScript code (dapp connection):
```json
{
  "title": "Plutus Script Parametrization",
  "description": "Parameterizes a Plutus Script with same original parameters and verifies the hashes remains equal. Modify parameters to trigger a hash mismatch error. Remove 'strictScriptHashHex' to allow for the new parametrization",
  "type": "script",
  "args": {
    "plutus-script": "590a6f590a6c01010033333322222229800aba4aba2aba1aba0aab9faab9eaab9dab9a9bad0069bad0059bad0049bad00248888888888896600330013007375401b2300b300c00191191919800800802112cc00400600713233225980099b910070028acc004cdc78038014400600c806a26600a00a60260088068dd718060009bab300d001300f0014034297adef6c609ba5480026e1d20029b87480012222223232980098071baa001911919800800801912cc004006298103d87a80008992cc004c010006260146602c00297ae0899801801980c0012024301600140513012008980900124444b3001300800489919912cc004c028c054dd50024566002602c6ea8012264646644b3001300e3019375400b1325980099b89480000062b30013371000202b132598009808180d9baa001899192cc004c08800626464646644b30013370e900218111baa0028acc004c060c088dd518131813801c4c966002603260466ea8006264b30013019302437540031323259800981580144cc896600266ebc014c07ccc0acdd419b8000f480092f5c1159800acc004cdc42400130010079bae302c3029375406b375c604260526ea80d500245660026644b30010028a508994c004c966002604260586ea800626eb4c0b4c0c0dd5981818169baa0018a40008158c0bc0066ebcc0bcc0c00066eac00d22259800800c566002600400d13300500348002294102d44c96600266ebcc0bc00530010140008acc004cc018010dd6981818199bab3030001898019ba630340028a5040b91598009980300224001130030078a5040b88170c0c80050300ca600200300a9119818001198181ba60014bd7020022225980080144cc005300103d87a80004bd6f7b63044ca60026eb8c0b80066eacc0bc00660660069112cc004cdc8a441000038acc004cdc7a4410000389980298141981a1ba60024bd70000c4cc015300103d87a800000640c119800803c006446600e0046606c66ec0dd48029ba6004001401c81806062004817a294229422941030181098149baa30213029375401a449462646600200202244b30010018a508acc004c96600266ebcc0bcc0b0dd500081a44cdc3cc004dd5981218161baa001a44100a44100401400914a08150c0b80062946266004004605e002814902c4528204e8a50409d13375e60580226e98cc8966002942297adef6c608991919800800a5eb7bdb1808966002003133030337606ea4014dd3001a5eb7bdb1822653001375c605c0033756605e003303300248896600266e4002400e26606866ec0dd48049ba60070058acc004cdc7804801c4cc0d0cdd81ba9009374c00e003133034337606ea400cdd300119803003000a06040c0303100140bc646600200297adef6c602259800800c4cc0bccdd81ba90034c010101004bd6f7b63044ca60026eb8c0b40066eb4c0b800660640049112cc004cdc8003801c4cc0cccdd81ba90074c010101000058acc004cdc7803801c4cc0cccdd81ba90074c0101010000189981999bb037520066ea0008cc01801800502f205e1818000a05c40a46eb8c0b0c0a4dd500319b8a4881065449434b455400373064646644646e6660020033750029488100400444464b30010038991919911980500119b8a48901280059800800c4cdc52441035b5d2900006899b8a489035b5f20009800800ccdc52441025d2900006914c00402a00530070014029229800805400a0028051009206c5980099b880014803a266e0120f2010018acc004cdc4000a41000513370066e01208014001480362c81890311bac3033002375a60620026466ec0dd418188009ba73032001375400713259800800c4cdc52441027b7d00003899b8a489037b5f20003232330010010032259800800c400e264b30010018994c00402a606c003337149101023a200098008054c0dc00600a805100a181c80144ca6002015303600199b8a489023a200098008054c0dc006600e66008008004805100a181c801206e303900140d866e29220102207d0000340cc6eac00e264b3001001899b8a489025b5d00003899b8a489035b5f20009800800ccdc52441015d00003914c00401e0053004001401d229800803c00a002803900620663758007133006375a0060051323371491102682700329800800ccdc01b8d0024800666e292210127000044004444b3001337100049000440062646645300100699b800054800666e2ccdc00012cc004cdc40012402914818229037206c3371666e000056600266e2000520148a40c11481b9036002200c33706002901019b8600148080cdc70020012066375c00681b0dc5245022c200022323300100100322598009811800c4cdc52450130000038acc004cdc4000a40011337149101012d0033002002337029000000c4cc014cdc2000a402866e2ccdc019b8500148051206000340b481688888c8cc004004014896600200310058992cc004006266008606a00400d13300530350023300300300140cc606a0028190c0040048896600266e2400920008800c6600200733708004900a4cdc599b803370a004900a240c0002801902a4528204e8a50409c4446466446600400400244b3001001801c4c8cc896600266e4401c00a2b30013371e00e0051001803205c899802802981a002205c375c605a0026eb4c0b8004c0c000502e198110020018a4000b300132323259800980f800c4c966002604060546ea8c08cc0acdd5181198159baa004899b88001026899b8900102640a46eb4c0b4c0a8dd5001456600266e1d20040018a508a5140a08140c0a0dd5000981598141baa302030283754002605460566056605601f10248811a04a8b2050375a6052002604a6ea80062c8118c09cc090dd5001c59022181318119baa30260058b20428b204230240013756604800460480026046002603c6ea8c0840062c80f8c8cc004004014896600200314bd7044cc896600266ebcc090c084dd5001181218109baa30193021375400b13302300233004004001899802002000a03e302200130230014080603e60386ea80062c80d0cc02cdd6180f002919baf301f301c37540020111640651640646eb4c074c068dd5180e980d1baa0058b2030301c301c0013758603600260366036002602c6ea80162c80ba2c80a0c05c004c05cc060004c04cdd5002c566002600e0091323322598009805000c566002602c6ea801200516405d1598009805800c566002602c6ea801200516405d16405080a04c966002601260286ea800e2b30013009301437546600a6eb0c0600048cdd7980c980b1baa301930163754601c602c6ea8004cdd2a4004660306ea400d2f5c114a316404d132330010013300d37566032603460346034603400400644b30010018a518acc004cdc41bad3017301a00148002266004004603600314a080a901820263014375400660266ea8008dd7180b18099baa0058b20224044301130120013011006452689b2b200a26012ed8799f581cadadadadadadadadadadadadadadadadadadadadadadadadadadadad4b41444d494e5f544f4b454eff004c01051a003d0900004c01051a004c4b40004c01051a06cf87c0004c0150d8799fd8799f581cfeff70b08356d72c571ade218c7e2933235d2cdc37259646013a27d9ffd8799fd8799fd8799f581c61d11bcf82ebd0ca2afdaf96e11ec71e43ab4e454cbe1495b42a4e86ffffffff004c010218640001",
    "plutus-script-hash": "610cdf8f9d889522cd079eb2178295014849d101573bd96fc99648e4",
    "lang": "plutus_v3",
    "new-parameters": [
      {
        "constructor": 0,
        "fields": [
          {
            "bytes": "adadadadadadadadadadadadadadadadadadadadadadadadadadadad"
          },
          {
            "bytes": "41444d494e5f544f4b454e"
          }
        ]
      },
      {
        "int": 4000000
      },
      {
        "int": 5000000
      },
      {
        "int": 114264000
      },
      {
        "constructor": 0,
        "fields": [
          {
            "constructor": 0,
            "fields": [
              {
                "bytes": "feff70b08356d72c571ade218c7e2933235d2cdc37259646013a27d9"
              }
            ]
          },
          {
            "constructor": 0,
            "fields": [
              {
                "constructor": 0,
                "fields": [
                  {
                    "constructor": 0,
                    "fields": [
                      {
                        "bytes": "61d11bcf82ebd0ca2afdaf96e11ec71e43ab4e454cbe1495b42a4e86"
                      }
                    ]
                  }
                ]
              }
            ]
          }
        ]
      },
      {
        "int": 100
      }
    ]
  },
  "return": {
    "mode": "last"
  },
  "exportAs": "data",
  "run": {
    "oldScript": {
      "type": "plutusScript",
      "script": {
        "scriptHex": "{get('args.plutus-script')}",
        "lang": "{get('args.lang')}"
      }
    },
    "parameters": {
      "type": "macro",
      "run": {
        "old": "{get('cache.oldScript.scriptParams')}",
        "new": "{get('args.new-parameters')}"
      }
    },
    "newScript": {
      "type": "plutusScript",
      "script": {
        "strictScriptHashHex": "{get('args.plutus-script-hash')}",
        "scriptHex": "{get('cache.oldScript.scriptHex')}",
        "lang": "{get('cache.oldScript.lang')}",
        "scriptParams": "{get('cache.parameters.new')}"
      }
    },
    "finally": {
      "type": "macro",
      "run": {
        "oldScriptHash": "{get('cache.oldScript.scriptHashHex')}",
        "oldScriptParams": "{get('cache.oldScript.scriptParams')}",
        "newScriptHash": "{get('cache.newScript.scriptHashHex')}",
        "newScriptParams": "{get('cache.newScript.scriptParams')}"
      }
    }
  }
}
```

## Run standalone QR dapp connection: 

You can use [Playground IDE in GameChanger Wallet ](https://wallet.gamechanger.finance/playground) in `QR URL Transport` mode to capture results

[![This GCScript/URL is too large! make it shorter uploading parts to GCFS. Unable to generate QR code](Plutus%20Script%20Parametrization.png)](https://gamechangerfinance.github.io/gamechanger.wallet/examples/Plutus%20Script%20Parametrization.png)

## Resources
- [How to connect?](https://www.npmjs.com/package/@gamechanger-finance/gc)
- [Docs and examples on Github](https://github.com/GameChangerFinance/gamechanger.wallet/)
- [GCScript documentation](https://wallet.gamechanger.finance/doc/api/v2)
- [Playground IDE in GameChanger Wallet ](https://wallet.gamechanger.finance/playground)
- [Tutorials on Youtube](https://www.youtube.com/@gamechanger.finance)
- [Support on Discord](https://discord.gg/vpbfyRaDKG)
- [News on Twitter](https://twitter.com/GameChangerOk)
- [Website](https://gamechanger.finance)

## License
MIT 
    
