diff --git a/.github/workflows/tests.yml b/.github/workflows/tests.yml
new file mode 100644
index 0000000..cb08162
--- /dev/null
+++ b/.github/workflows/tests.yml
@@ -0,0 +1,20 @@
+name: Tests
+
+on:
+ push:
+ branches: ["main"]
+ pull_request:
+
+jobs:
+ build:
+ runs-on: ubuntu-latest
+ steps:
+ - uses: actions/checkout@v3
+
+ - uses: aiken-lang/setup-aiken@v0.1.0
+ with:
+ version: v1.0.29-alpha
+
+ - run: aiken fmt --check
+ - run: aiken check -D
+ - run: aiken build
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..d978eba
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,9 @@
+# Aiken compilation artifacts
+artifacts/
+# Aiken's project working directory
+build/
+# Aiken's default documentation export
+docs/
+node_modules/
+.DS_Store
+plutus.json
\ No newline at end of file
diff --git a/LICENSE.md b/LICENSE.md
new file mode 100644
index 0000000..00d2e13
--- /dev/null
+++ b/LICENSE.md
@@ -0,0 +1,24 @@
+This is free and unencumbered software released into the public domain.
+
+Anyone is free to copy, modify, publish, use, compile, sell, or
+distribute this software, either in source code form or as a compiled
+binary, for any purpose, commercial or non-commercial, and by any
+means.
+
+In jurisdictions that recognize copyright laws, the author or authors
+of this software dedicate any and all copyright interest in the
+software to the public domain. We make this dedication for the benefit
+of the public at large and to the detriment of our heirs and
+successors. We intend this dedication to be an overt act of
+relinquishment in perpetuity of all present and future rights to this
+software under copyright law.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
+EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
+MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
+IN NO EVENT SHALL THE AUTHORS BE LIABLE FOR ANY CLAIM, DAMAGES OR
+OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
+ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
+OTHER DEALINGS IN THE SOFTWARE.
+
+For more information, please refer to
\ No newline at end of file
diff --git a/LICENSE2.md b/LICENSE2.md
new file mode 100644
index 0000000..cd93ffd
--- /dev/null
+++ b/LICENSE2.md
@@ -0,0 +1,7 @@
+Copyright 2024 MICAH KENDALL
+
+Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the “Software”), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
\ No newline at end of file
diff --git a/LICENSE3.md b/LICENSE3.md
new file mode 100644
index 0000000..b6819bb
--- /dev/null
+++ b/LICENSE3.md
@@ -0,0 +1,13 @@
+Copyright 2024 MICAH KENDALL
+
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
\ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..7e7eb1a
--- /dev/null
+++ b/README.md
@@ -0,0 +1,12 @@
+# Ourovoting
+
+Ouravoting is a family of protocols that allows for voting on proposals and the allocation of treasury funds. We aim to replicate Cardano's principles of governance & security within the EUTXO framework. This allows token-governance for decentralised autonomous organisations (DAOs) and the associated tokenomics.
+
+Thanks to Zygomeb (Optim) & Riley (Summon) for various design ideas and discussions.
+
+# Licensing
+
+This repository is released under any of:
+- [Public Domain](LICENSE.md)
+- [MIT](LICENSE2.md)
+- [Apache](LICENSE3.md)
\ No newline at end of file
diff --git a/aiken.lock b/aiken.lock
new file mode 100644
index 0000000..62f2265
--- /dev/null
+++ b/aiken.lock
@@ -0,0 +1,15 @@
+# This file was generated by Aiken
+# You typically do not need to edit this file
+
+[[requirements]]
+name = "aiken-lang/stdlib"
+version = "1.9.0"
+source = "github"
+
+[[packages]]
+name = "aiken-lang/stdlib"
+version = "1.9.0"
+requirements = []
+source = "github"
+
+[etags]
diff --git a/aiken.toml b/aiken.toml
new file mode 100644
index 0000000..40a7c83
--- /dev/null
+++ b/aiken.toml
@@ -0,0 +1,16 @@
+name = "butaneprotocol/ourovoting"
+version = "0.0.0"
+compiler = "v1.0.29-alpha"
+plutus = "v2"
+license = "Apache-2.0"
+description = "Aiken contracts for project 'butaneprotocol/ourovoting'"
+
+[repository]
+user = "butaneprotocol"
+project = "ourovoting"
+platform = "github"
+
+[[dependencies]]
+name = "aiken-lang/stdlib"
+version = "1.9.0"
+source = "github"
diff --git a/package.json b/package.json
new file mode 100644
index 0000000..9e58ed4
--- /dev/null
+++ b/package.json
@@ -0,0 +1,8 @@
+{
+ "scripts": {
+ "build": "aiken build && blueprint plutus.json -o plutus.ts"
+ },
+ "dependencies": {
+ "@blaze-cardano/blueprint": "latest"
+ }
+}
\ No newline at end of file
diff --git a/plutus.ts b/plutus.ts
new file mode 100644
index 0000000..0c16829
--- /dev/null
+++ b/plutus.ts
@@ -0,0 +1,50 @@
+// eslint-disable-next-line @typescript-eslint/ban-ts-comment
+// @ts-nocheck
+import { type Script } from "@blaze-cardano/core";
+import { applyParamsToScript, cborToScript, ScriptType } from "@blaze-cardano/uplc";import { type PlutusData } from "@blaze-cardano/core";
+
+export interface ProposalsNewProposal {
+ new (requiredCollateral:{policyId:string;assetName:string;quantity:bigint}): Script;
+ proposal: {owner:string;data:PlutusData};
+ };
+
+ export const ProposalsNewProposal = Object.assign(
+ function (requiredCollateral:{policyId:string;assetName:string;quantity:bigint}) {return cborToScript(applyParamsToScript("5905f70100003232323232323222253232333006300130073754006264a66600e64646464646464a66601c6012601e6ea80184c8c8c8c8c8c8c8c94ccc058cdc3a4008602e6ea80084c94ccc05cc04cc060dd50010a99980b9809180c1baa001132323232533301e30210021533301b3370e6e3400d203813253323301d3375e6e98cc00802d220100374c6464646464646464a66604a60400042002264646600200200644a66605600226605866ec0dd48041ba60034bd6f7b630099191919299981619b9000c002133030337606ea4030dd30038028a99981619b8f00c002132533302d3028302e375400226606266ec0dd4806981918179baa001004100432533302d533303000114a22940530103d87a80001301133031374c00297ae03233001001002225333031001133032337606ea4030dd4005a5eb7bdb1804c8c8c8c94ccc0c8cdc800800109981b19bb037520206ea003c01454ccc0c8cdc780800109929998199817181a1baa001133037337606ea4044c0e0c0d4dd5000802080219299981998170008a6103d87a80001301733037375000297ae03370000201e26606c66ec0dd48011ba800133006006003375a60660066eb8c0c4008c0d4008c0cc0044cc0c0cdd81ba9002374c0026600c00c0066eacc0b400cdd7181580118178011816800991900118040009981499bb037520066ea00092f5bded8c0a666048604090000a5eb7bdb1804c8c8cc0040052f5bded8c044a66605400226605666ec0dd480c9ba60034bd6f7b630099191919299981599b9001d00213302f337606ea4074dd30038028a99981599b8f01d00213302f337606ea4074dd300380189981799bb037520046e98004cc01801800cdd598160019bae302a002302e002302c00132330010014bd6f7b63011299981480089981519bb04c01094850524f504f53414c004c010101004bd6f7b630099191919299981519b904890850524f504f53414c0000213302e337609801094850524f504f53414c004c010101000051533302a3371e91010850524f504f53414c0000213302e337609801094850524f504f53414c004c0101010000313302e337606ea4008dd4000998030030019bad302b003375c6052004605a00460560026eb4c0a0c0a4008dd7181380098138011bae30250013021375403c600200244a66604400229309929998118008a4c26464a66604466e40dd7181198138021bae302300213300500533026002001163027002302500130250011533301d3375e6044603e6ea8034cdd2a4004660426ea403d2f5c0266ebcdd319299980f180d180f9baa00114bd6f7b63009bab30233020375400264660020026600602291010022533302200114c103d87a800013232323253330233372202a0042a66604666e3c0540084c01ccc09cdd3000a5eb80530103d87a8000133006006003375660480066eb8c088008c098008c09000530010ba14850524f504f53414c010014a06e95200014a044646600200200644a666044002297adef6c6013232323253330233372200e0042a66604666e3c01c008400c40144cc09ccdd81ba9002374c0026600c00c0066eacc09000cdd71811001181300118120008a5016301f001301f002375c603a00260326ea80045858c06cc060dd50010b180d180d801180c800980c8011bab3017001301700230150013011375460280066eb8c04cc040dd50030b1bab30123013301300237586022002602260220046eb0c03c004c02cdd518070011806980700098049baa00414984d9594ccc018c004c01cdd5002099191919299980698080010a4c2c601c002601c0046eb8c030004c020dd50020b09991129998049919192999806180418069baa002132533300d32323300100100422533301300114a0264a66602266e3cdd7180b0010020a511330030030013016001375c6024601e6ea802c5288a503011300e37540042c6eb0c040c044c044c044c044c044c044c044c044c034dd518080011807980800098059baa00114984d9594ccc018c004c01cdd5002099191919299980698080010a4c2c601c002601c0046eb8c030004c020dd50020b180598041baa003370e90001b87480095cd2ab9d5573caae7d5d02ba15745", [requiredCollateral], {"dataType":"list","items":[{"title":"CollateralValue","anyOf":[{"title":"CollateralValue","dataType":"constructor","index":0,"fields":[{"dataType":"bytes","title":"policyId"},{"dataType":"bytes","title":"assetName"},{"dataType":"integer","title":"quantity"}]}]}]} as any), ScriptType.PlutusV2);},
+
+ {proposal: {"title":"Proposal","anyOf":[{"title":"Proposal","dataType":"constructor","index":0,"fields":[{"dataType":"bytes","title":"owner"},{"title":"data","description":"Any Plutus data."}]}]}},
+ ) as unknown as ProposalsNewProposal;
+
+export interface ProposalsReclaimCollateral {
+ new (requiredCollateral:{policyId:string;assetName:string;quantity:bigint}): Script;
+datum: {owner:string;data:PlutusData};
+ redeemer: {wrapper:PlutusData};
+ };
+
+ export const ProposalsReclaimCollateral = Object.assign(
+ function (requiredCollateral:{policyId:string;assetName:string;quantity:bigint}) {return cborToScript(applyParamsToScript("5905f70100003232323232323222253232333006300130073754006264a66600e64646464646464a66601c6012601e6ea80184c8c8c8c8c8c8c8c94ccc058cdc3a4008602e6ea80084c94ccc05cc04cc060dd50010a99980b9809180c1baa001132323232533301e30210021533301b3370e6e3400d203813253323301d3375e6e98cc00802d220100374c6464646464646464a66604a60400042002264646600200200644a66605600226605866ec0dd48041ba60034bd6f7b630099191919299981619b9000c002133030337606ea4030dd30038028a99981619b8f00c002132533302d3028302e375400226606266ec0dd4806981918179baa001004100432533302d533303000114a22940530103d87a80001301133031374c00297ae03233001001002225333031001133032337606ea4030dd4005a5eb7bdb1804c8c8c8c94ccc0c8cdc800800109981b19bb037520206ea003c01454ccc0c8cdc780800109929998199817181a1baa001133037337606ea4044c0e0c0d4dd5000802080219299981998170008a6103d87a80001301733037375000297ae03370000201e26606c66ec0dd48011ba800133006006003375a60660066eb8c0c4008c0d4008c0cc0044cc0c0cdd81ba9002374c0026600c00c0066eacc0b400cdd7181580118178011816800991900118040009981499bb037520066ea00092f5bded8c0a666048604090000a5eb7bdb1804c8c8cc0040052f5bded8c044a66605400226605666ec0dd480c9ba60034bd6f7b630099191919299981599b9001d00213302f337606ea4074dd30038028a99981599b8f01d00213302f337606ea4074dd300380189981799bb037520046e98004cc01801800cdd598160019bae302a002302e002302c00132330010014bd6f7b63011299981480089981519bb04c01094850524f504f53414c004c010101004bd6f7b630099191919299981519b904890850524f504f53414c0000213302e337609801094850524f504f53414c004c010101000051533302a3371e91010850524f504f53414c0000213302e337609801094850524f504f53414c004c0101010000313302e337606ea4008dd4000998030030019bad302b003375c6052004605a00460560026eb4c0a0c0a4008dd7181380098138011bae30250013021375403c600200244a66604400229309929998118008a4c26464a66604466e40dd7181198138021bae302300213300500533026002001163027002302500130250011533301d3375e6044603e6ea8034cdd2a4004660426ea403d2f5c0266ebcdd319299980f180d180f9baa00114bd6f7b63009bab30233020375400264660020026600602291010022533302200114c103d87a800013232323253330233372202a0042a66604666e3c0540084c01ccc09cdd3000a5eb80530103d87a8000133006006003375660480066eb8c088008c098008c09000530010ba14850524f504f53414c010014a06e95200014a044646600200200644a666044002297adef6c6013232323253330233372200e0042a66604666e3c01c008400c40144cc09ccdd81ba9002374c0026600c00c0066eacc09000cdd71811001181300118120008a5016301f001301f002375c603a00260326ea80045858c06cc060dd50010b180d180d801180c800980c8011bab3017001301700230150013011375460280066eb8c04cc040dd50030b1bab30123013301300237586022002602260220046eb0c03c004c02cdd518070011806980700098049baa00414984d9594ccc018c004c01cdd5002099191919299980698080010a4c2c601c002601c0046eb8c030004c020dd50020b09991129998049919192999806180418069baa002132533300d32323300100100422533301300114a0264a66602266e3cdd7180b0010020a511330030030013016001375c6024601e6ea802c5288a503011300e37540042c6eb0c040c044c044c044c044c044c044c044c044c034dd518080011807980800098059baa00114984d9594ccc018c004c01cdd5002099191919299980698080010a4c2c601c002601c0046eb8c030004c020dd50020b180598041baa003370e90001b87480095cd2ab9d5573caae7d5d02ba15745", [requiredCollateral], {"dataType":"list","items":[{"title":"CollateralValue","anyOf":[{"title":"CollateralValue","dataType":"constructor","index":0,"fields":[{"dataType":"bytes","title":"policyId"},{"dataType":"bytes","title":"assetName"},{"dataType":"integer","title":"quantity"}]}]}]} as any), ScriptType.PlutusV2);},
+ {datum: {"title":"Proposal","anyOf":[{"title":"Proposal","dataType":"constructor","index":0,"fields":[{"dataType":"bytes","title":"owner"},{"title":"data","description":"Any Plutus data."}]}]}},
+ {redeemer: {"title":"Wrapped Redeemer","description":"A redeemer wrapped in an extra constructor to make multi-validator detection possible on-chain.","anyOf":[{"dataType":"constructor","index":1,"fields":[{"description":"Any Plutus data."}]}]}},
+ ) as unknown as ProposalsReclaimCollateral;
+
+export interface StakingStake {
+ new (quorumNft:{policyid:string;assetname:string}): Script;
+ redeemer: "Stake" | "Unstake";
+ };
+
+ export const StakingStake = Object.assign(
+ function (quorumNft:{policyid:string;assetname:string}) {return cborToScript(applyParamsToScript("587d0100003232323232222533233005300130063754004264a66600ca66600c6004600e6ea8010585852613656325333006300200115333009300837540082930b0a99980319b874800800454ccc024c020dd50020a4c2c2c600c6ea800cdc3a40002644a66600cc29309b2b180418031baa0015734aae7555cf2ab9f5743", [quorumNft], {"dataType":"list","items":[{"title":"AssetClass","anyOf":[{"title":"AssetClass","dataType":"constructor","index":0,"fields":[{"dataType":"bytes","title":"policyid"},{"dataType":"bytes","title":"assetname"}]}]}]} as any), ScriptType.PlutusV2);},
+
+ {redeemer: {"title":"Redeemer","anyOf":[{"title":"Stake","dataType":"constructor","index":0,"fields":[]},{"title":"Unstake","dataType":"constructor","index":1,"fields":[]}]}},
+ ) as unknown as StakingStake;
+
+export interface StakingUnstake {
+ new (quorumNft:{policyid:string;assetname:string}): Script;
+datum: PlutusData;
+ redeemer: {wrapper:PlutusData};
+ };
+
+ export const StakingUnstake = Object.assign(
+ function (quorumNft:{policyid:string;assetname:string}) {return cborToScript(applyParamsToScript("587d0100003232323232222533233005300130063754004264a66600ca66600c6004600e6ea8010585852613656325333006300200115333009300837540082930b0a99980319b874800800454ccc024c020dd50020a4c2c2c600c6ea800cdc3a40002644a66600cc29309b2b180418031baa0015734aae7555cf2ab9f5743", [quorumNft], {"dataType":"list","items":[{"title":"AssetClass","anyOf":[{"title":"AssetClass","dataType":"constructor","index":0,"fields":[{"dataType":"bytes","title":"policyid"},{"dataType":"bytes","title":"assetname"}]}]}]} as any), ScriptType.PlutusV2);},
+ {datum: {"title":"Data","description":"Any Plutus data."}},
+ {redeemer: {"title":"Wrapped Redeemer","description":"A redeemer wrapped in an extra constructor to make multi-validator detection possible on-chain.","anyOf":[{"dataType":"constructor","index":1,"fields":[{"description":"Any Plutus data."}]}]}},
+ ) as unknown as StakingUnstake;
\ No newline at end of file
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
new file mode 100644
index 0000000..19a3280
--- /dev/null
+++ b/pnpm-lock.yaml
@@ -0,0 +1,1323 @@
+lockfileVersion: '6.0'
+
+settings:
+ autoInstallPeers: true
+ excludeLinksFromLockfile: false
+
+dependencies:
+ '@blaze-cardano/blueprint':
+ specifier: latest
+ version: 0.1.1
+
+packages:
+
+ /@balena/dockerignore@1.0.2:
+ resolution: {integrity: sha512-wMue2Sy4GAVTk6Ic4tJVcnfdau+gx2EnG7S+uAEe+TWJFqE4YoWN4/H8MSLj4eYJKxGg26lZwboEniNiNwZQ6Q==}
+ dev: false
+
+ /@blaze-cardano/blueprint@0.1.1:
+ resolution: {integrity: sha512-nygb6tm+qSSd7JbO6a3faL2vOqF8xzZyiaHn/drDsfu3QENyLpS4mVT34uu6B7zCiPYZ2vPA4yqunZAplMTNJA==}
+ hasBin: true
+ dependencies:
+ '@blaze-cardano/core': 0.2.5
+ '@blaze-cardano/tx': 0.0.25
+ '@blaze-cardano/uplc': 0.0.6
+ '@cardano-sdk/core': 0.35.2(rxjs@7.8.1)
+ transitivePeerDependencies:
+ - '@dcspark/cardano-multiplatform-lib-asmjs'
+ - '@dcspark/cardano-multiplatform-lib-browser'
+ - '@dcspark/cardano-multiplatform-lib-nodejs'
+ - bufferutil
+ - debug
+ - encoding
+ - rxjs
+ - supports-color
+ - utf-8-validate
+ dev: false
+
+ /@blaze-cardano/core@0.2.5:
+ resolution: {integrity: sha512-GHUwO7cGN1OMuv8uWLgnue2VfYAajuvw/AFIPp5GZBrqUApDNMEEz07GBOS8yNnMhR5pGfUJxmMnXILtKGYiJQ==}
+ dependencies:
+ '@cardano-sdk/core': 0.35.2(rxjs@7.8.1)
+ '@cardano-sdk/crypto': 0.1.26
+ '@cardano-sdk/util': 0.15.3
+ '@noble/curves': 1.4.2
+ '@noble/ed25519': 2.1.0
+ '@noble/hashes': 1.4.0
+ '@scure/bip39': 1.3.0
+ blakejs: 1.2.1
+ rxjs: 7.8.1
+ transitivePeerDependencies:
+ - '@dcspark/cardano-multiplatform-lib-asmjs'
+ - '@dcspark/cardano-multiplatform-lib-browser'
+ - '@dcspark/cardano-multiplatform-lib-nodejs'
+ - bufferutil
+ - encoding
+ - utf-8-validate
+ dev: false
+
+ /@blaze-cardano/tx@0.0.25:
+ resolution: {integrity: sha512-KSpdme7++ZeCGMOoBMT14fL3sPU8PoysbitEWcq71r2Hj0AgH1TYFYXXpvdbpzBHyVbWiif+ahx2Id0PT4PF1w==}
+ dependencies:
+ '@blaze-cardano/core': 0.2.5
+ '@sinclair/typebox': 0.32.34
+ uplc-node: 0.0.3
+ transitivePeerDependencies:
+ - '@dcspark/cardano-multiplatform-lib-asmjs'
+ - '@dcspark/cardano-multiplatform-lib-browser'
+ - '@dcspark/cardano-multiplatform-lib-nodejs'
+ - bufferutil
+ - encoding
+ - utf-8-validate
+ dev: false
+
+ /@blaze-cardano/uplc@0.0.6:
+ resolution: {integrity: sha512-3ibWtoCZOKOofolizjCwQEdrqeTlaDIKYc34sQsNHwiw0kjkaApclD0WWDohA0lT9LiOk0mcnxsKYdPGmqHB7Q==}
+ dependencies:
+ '@blaze-cardano/core': 0.2.5
+ '@cardano-sdk/core': 0.30.2
+ hex-encoding: 2.0.2
+ transitivePeerDependencies:
+ - '@dcspark/cardano-multiplatform-lib-asmjs'
+ - '@dcspark/cardano-multiplatform-lib-browser'
+ - '@dcspark/cardano-multiplatform-lib-nodejs'
+ - bufferutil
+ - encoding
+ - rxjs
+ - utf-8-validate
+ dev: false
+
+ /@cardano-ogmios/client@5.6.0:
+ resolution: {integrity: sha512-F0kWQ+TTc3OvSsp9CmxAPqo7fpB9yjrK+Lp52IqGG2YJVwyIynvHwlOW0cZNsRLO+KXwJrSoKdj9rHI0Vix4iw==}
+ engines: {node: '>=14'}
+ dependencies:
+ '@cardano-ogmios/schema': 5.6.0
+ '@cardanosolutions/json-bigint': 1.0.1
+ '@types/json-bigint': 1.0.4
+ cross-fetch: 3.1.8
+ fastq: 1.17.1
+ isomorphic-ws: 4.0.1(ws@7.5.10)
+ nanoid: 3.3.7
+ ts-custom-error: 3.3.1
+ ws: 7.5.10
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - utf-8-validate
+ dev: false
+
+ /@cardano-ogmios/client@6.3.0:
+ resolution: {integrity: sha512-nWaZ76n/R+p8nxBfRCetOuoDH8o5QToL5zWhRUu9EwHDJqM/0rzvYEk9JYCikAcVlC1qt6+3CcG4nCpG0dsptw==}
+ engines: {node: '>=14'}
+ dependencies:
+ '@cardano-ogmios/schema': 6.3.0
+ '@cardanosolutions/json-bigint': 1.0.1
+ '@types/json-bigint': 1.0.4
+ bech32: 2.0.0
+ cross-fetch: 3.1.8
+ fastq: 1.17.1
+ isomorphic-ws: 4.0.1(ws@7.5.10)
+ nanoid: 3.3.7
+ ts-custom-error: 3.3.1
+ ws: 7.5.10
+ transitivePeerDependencies:
+ - bufferutil
+ - encoding
+ - utf-8-validate
+ dev: false
+
+ /@cardano-ogmios/schema@5.6.0:
+ resolution: {integrity: sha512-JTlh/gOS5iM4b7CKc3dFRs2UC6fY+PeLiOv6fKxFSOSRMZ59sLgv+oGqjnzyVeZFUt6o683C9zFmBzh60l8KnA==}
+ engines: {node: '>=14'}
+ dev: false
+
+ /@cardano-ogmios/schema@6.3.0:
+ resolution: {integrity: sha512-reM7NDYV4cgMAdFCzypoIuCVgSUfR9ztRMlk6p7k0cTeqUkbMfA83ps1FVkTDxzXxFjgM4EkhqoJyRjKIKRPQA==}
+ engines: {node: '>=14'}
+ dev: false
+
+ /@cardano-sdk/core@0.30.2:
+ resolution: {integrity: sha512-aFlLfM0pqjhjAE5oMyUcnhl+mhpzXva9bAOuTGvOUDQbIRPZtvr2UVv3rXpqFy6FvtNr8WIA7moSrePRPm9aCA==}
+ engines: {node: '>=16.20.2'}
+ peerDependencies:
+ rxjs: ^7.4.0
+ peerDependenciesMeta:
+ rxjs:
+ optional: true
+ dependencies:
+ '@cardano-ogmios/client': 5.6.0
+ '@cardano-ogmios/schema': 5.6.0
+ '@cardano-sdk/crypto': 0.1.26
+ '@cardano-sdk/util': 0.15.3
+ '@foxglove/crc': 0.0.3
+ '@scure/base': 1.1.7
+ fraction.js: 4.0.1
+ ip-address: 8.1.0
+ lodash: 4.17.21
+ ts-custom-error: 3.3.1
+ ts-log: 2.2.5
+ web-encoding: 1.1.5
+ transitivePeerDependencies:
+ - '@dcspark/cardano-multiplatform-lib-asmjs'
+ - '@dcspark/cardano-multiplatform-lib-browser'
+ - '@dcspark/cardano-multiplatform-lib-nodejs'
+ - bufferutil
+ - encoding
+ - utf-8-validate
+ dev: false
+
+ /@cardano-sdk/core@0.35.2(rxjs@7.8.1):
+ resolution: {integrity: sha512-xeg8Wy+5B16G5CDjYmT8Wn0ZCXaPeo+O7GZayAMxdh8q8AQ08xs7UBvYFGvSq7nGxF0VpLvxwcHa0Mqv7fXGog==}
+ engines: {node: '>=16.20.2'}
+ peerDependencies:
+ rxjs: ^7.4.0
+ peerDependenciesMeta:
+ rxjs:
+ optional: true
+ dependencies:
+ '@cardano-ogmios/client': 6.3.0
+ '@cardano-ogmios/schema': 6.3.0
+ '@cardano-sdk/crypto': 0.1.26
+ '@cardano-sdk/util': 0.15.3
+ '@cardano-sdk/util-dev': 0.21.6
+ '@foxglove/crc': 0.0.3
+ '@scure/base': 1.1.7
+ fraction.js: 4.0.1
+ ip-address: 8.1.0
+ lodash: 4.17.21
+ rxjs: 7.8.1
+ ts-custom-error: 3.3.1
+ ts-log: 2.2.5
+ web-encoding: 1.1.5
+ transitivePeerDependencies:
+ - '@dcspark/cardano-multiplatform-lib-asmjs'
+ - '@dcspark/cardano-multiplatform-lib-browser'
+ - '@dcspark/cardano-multiplatform-lib-nodejs'
+ - bufferutil
+ - debug
+ - encoding
+ - supports-color
+ - utf-8-validate
+ dev: false
+
+ /@cardano-sdk/crypto@0.1.26:
+ resolution: {integrity: sha512-fR3GUdlGj+NCU7JZJN55Mpo57etW0bIYm79d0QRiTOboa+IiaySWBEgXg9IZDVzpC5Xoqh3K2WxRt9+uYrbxlg==}
+ engines: {node: '>=16.20.2'}
+ peerDependencies:
+ '@dcspark/cardano-multiplatform-lib-asmjs': ^3.1.1
+ '@dcspark/cardano-multiplatform-lib-browser': ^3.1.1
+ '@dcspark/cardano-multiplatform-lib-nodejs': ^3.1.1
+ peerDependenciesMeta:
+ '@dcspark/cardano-multiplatform-lib-asmjs':
+ optional: true
+ '@dcspark/cardano-multiplatform-lib-browser':
+ optional: true
+ '@dcspark/cardano-multiplatform-lib-nodejs':
+ optional: true
+ dependencies:
+ '@cardano-sdk/util': 0.15.3
+ blake2b: 2.1.4
+ i: 0.3.7
+ libsodium-wrappers-sumo: 0.7.14
+ lodash: 4.17.21
+ npm: 9.9.3
+ pbkdf2: 3.1.2
+ ts-custom-error: 3.3.1
+ ts-log: 2.2.5
+ dev: false
+
+ /@cardano-sdk/dapp-connector@0.12.24(rxjs@7.8.1):
+ resolution: {integrity: sha512-c6dYQKEAlxfLEpgW0uWMS9JtfrwogDQEQ6VEKJb3AcUOl7OERAfnQ8rey8hIJU1rnqWDPhdVc6o+5wCcAh39CQ==}
+ engines: {node: '>=16.20.2'}
+ dependencies:
+ '@cardano-sdk/core': 0.35.2(rxjs@7.8.1)
+ '@cardano-sdk/crypto': 0.1.26
+ '@cardano-sdk/util': 0.15.3
+ ts-custom-error: 3.3.1
+ ts-log: 2.2.5
+ webextension-polyfill: 0.8.0
+ transitivePeerDependencies:
+ - '@dcspark/cardano-multiplatform-lib-asmjs'
+ - '@dcspark/cardano-multiplatform-lib-browser'
+ - '@dcspark/cardano-multiplatform-lib-nodejs'
+ - bufferutil
+ - encoding
+ - rxjs
+ - utf-8-validate
+ dev: false
+
+ /@cardano-sdk/key-management@0.20.11:
+ resolution: {integrity: sha512-C9pPSiWRq8oPBEsZJ28iigX7vdUH0swbG9ZqAaCvRk3BDDaeYw90HDOwbTdQH/KBsZuQ1I7E1gjfpNXng3Ne8w==}
+ engines: {node: '>=16.20.2'}
+ dependencies:
+ '@cardano-sdk/core': 0.35.2(rxjs@7.8.1)
+ '@cardano-sdk/crypto': 0.1.26
+ '@cardano-sdk/dapp-connector': 0.12.24(rxjs@7.8.1)
+ '@cardano-sdk/util': 0.15.3
+ '@emurgo/cardano-message-signing-nodejs': 1.0.1
+ bip39: 3.1.0
+ chacha: 2.1.0
+ get-random-values: 2.1.0
+ lodash: 4.17.21
+ pbkdf2: 3.1.2
+ rxjs: 7.8.1
+ ts-custom-error: 3.3.1
+ ts-log: 2.2.5
+ transitivePeerDependencies:
+ - '@dcspark/cardano-multiplatform-lib-asmjs'
+ - '@dcspark/cardano-multiplatform-lib-browser'
+ - '@dcspark/cardano-multiplatform-lib-nodejs'
+ - bufferutil
+ - encoding
+ - utf-8-validate
+ dev: false
+
+ /@cardano-sdk/util-dev@0.21.6:
+ resolution: {integrity: sha512-Jp4/kWMJj59tIcap9wc4FZu1IYPFxwU5KCxrUcml7EqKU0wFC1BkTlZL8UGJKPLL/T+/O+vvhxBm5j2yY10dWw==}
+ engines: {node: '>=16.20.2'}
+ dependencies:
+ '@cardano-sdk/core': 0.35.2(rxjs@7.8.1)
+ '@cardano-sdk/crypto': 0.1.26
+ '@cardano-sdk/key-management': 0.20.11
+ '@cardano-sdk/util': 0.15.3
+ '@types/dockerode': 3.3.30
+ axios: 0.28.1
+ delay: 5.0.0
+ dockerode: 3.3.5
+ dockerode-utils: 0.0.7
+ envalid: 7.3.1
+ get-port-please: 2.6.1
+ json-bigint: 1.0.0
+ lodash: 4.17.21
+ rxjs: 7.8.1
+ ts-log: 2.2.5
+ transitivePeerDependencies:
+ - '@dcspark/cardano-multiplatform-lib-asmjs'
+ - '@dcspark/cardano-multiplatform-lib-browser'
+ - '@dcspark/cardano-multiplatform-lib-nodejs'
+ - bufferutil
+ - debug
+ - encoding
+ - supports-color
+ - utf-8-validate
+ dev: false
+
+ /@cardano-sdk/util@0.15.3:
+ resolution: {integrity: sha512-u7USoeogdMah2GrE0kKR7GJqsIcAa+mcAVer8a3iD4d8Gy2ipgxReMQM8YiYy2XuaFFJFg2fz8QabdRAEp89SQ==}
+ engines: {node: '>=16.20.2'}
+ dependencies:
+ bech32: 2.0.0
+ lodash: 4.17.21
+ serialize-error: 8.1.0
+ ts-custom-error: 3.3.1
+ ts-log: 2.2.5
+ type-fest: 2.19.0
+ dev: false
+
+ /@cardanosolutions/json-bigint@1.0.1:
+ resolution: {integrity: sha512-mbYL6jtHqMFCZnTFhmkmoeDzHMBino0gMiGQnOJE7CwzZzkK2HCpH0MTBk+84QDadMEGX7iFt7uB+levm1a+bQ==}
+ dependencies:
+ bignumber.js: 9.1.2
+ dev: false
+
+ /@emurgo/cardano-message-signing-nodejs@1.0.1:
+ resolution: {integrity: sha512-PoKh1tQnJX18f8iEr8Jk1KXxKCn9eqaSslMI1pyOJvYRJhQVDLCh0+9YReufjp0oFJIY1ShcrR+4/WnECVZUKQ==}
+ dev: false
+
+ /@foxglove/crc@0.0.3:
+ resolution: {integrity: sha512-DjIZsnL3CyP/yQ/vUYA9cjrD0a/8YXejI5ZmsaOiT16cLfZcTwaCxIN01/ys4jsy+dZCQ/9DnWFn7AEFbiMDaA==}
+ dev: false
+
+ /@noble/curves@1.4.2:
+ resolution: {integrity: sha512-TavHr8qycMChk8UwMld0ZDRvatedkzWfH8IiaeGCfymOP5i0hSCozz9vHOL0nkwk7HRMlFnAiKpS2jrUmSybcw==}
+ dependencies:
+ '@noble/hashes': 1.4.0
+ dev: false
+
+ /@noble/ed25519@2.1.0:
+ resolution: {integrity: sha512-KM4qTyXPinyCgMzeYJH/UudpdL+paJXtY3CHtHYZQtBkS8MZoPr4rOikZllIutJe0d06QDQKisyn02gxZ8TcQA==}
+ dev: false
+
+ /@noble/hashes@1.4.0:
+ resolution: {integrity: sha512-V1JJ1WTRUqHHrOSh597hURcMqVKVGL/ea3kv0gSnEdsEZ0/+VyPghM1lMNGc00z7CIQorSvbKpuJkxvuHbvdbg==}
+ engines: {node: '>= 16'}
+ dev: false
+
+ /@scure/base@1.1.7:
+ resolution: {integrity: sha512-PPNYBslrLNNUQ/Yad37MHYsNQtK67EhWb6WtSvNLLPo7SdVZgkUjD6Dg+5On7zNwmskf8OX7I7Nx5oN+MIWE0g==}
+ dev: false
+
+ /@scure/bip39@1.3.0:
+ resolution: {integrity: sha512-disdg7gHuTDZtY+ZdkmLpPCk7fxZSu3gBiEGuoC1XYxv9cGx3Z6cpTggCgW6odSOOIXCiDjuGejW+aJKCY/pIQ==}
+ dependencies:
+ '@noble/hashes': 1.4.0
+ '@scure/base': 1.1.7
+ dev: false
+
+ /@sinclair/typebox@0.32.34:
+ resolution: {integrity: sha512-a3Z3ytYl6R/+7ldxx04PO1semkwWlX/8pTqxsPw4quIcIXDFPZhOc1Wx8azWmkU26ccK3mHwcWenn0avNgAKQg==}
+ dev: false
+
+ /@types/docker-modem@3.0.6:
+ resolution: {integrity: sha512-yKpAGEuKRSS8wwx0joknWxsmLha78wNMe9R2S3UNsVOkZded8UqOrV8KoeDXoXsjndxwyF3eIhyClGbO1SEhEg==}
+ dependencies:
+ '@types/node': 20.14.11
+ '@types/ssh2': 1.15.0
+ dev: false
+
+ /@types/dockerode@3.3.30:
+ resolution: {integrity: sha512-MuxQQ7yQ+VzLbrIV2D8K2YqOYBd5Mz4yGbauEipFcn894bLnGwewNKXGKLlb7wpXTG4dn+13lk51qPXmKJ2+YA==}
+ dependencies:
+ '@types/docker-modem': 3.0.6
+ '@types/node': 20.14.11
+ '@types/ssh2': 1.15.0
+ dev: false
+
+ /@types/json-bigint@1.0.4:
+ resolution: {integrity: sha512-ydHooXLbOmxBbubnA7Eh+RpBzuaIiQjh8WGJYQB50JFGFrdxW7JzVlyEV7fAXw0T2sqJ1ysTneJbiyNLqZRAag==}
+ dev: false
+
+ /@types/node@18.19.41:
+ resolution: {integrity: sha512-LX84pRJ+evD2e2nrgYCHObGWkiQJ1mL+meAgbvnwk/US6vmMY7S2ygBTGV2Jw91s9vUsLSXeDEkUHZIJGLrhsg==}
+ dependencies:
+ undici-types: 5.26.5
+ dev: false
+
+ /@types/node@20.14.11:
+ resolution: {integrity: sha512-kprQpL8MMeszbz6ojB5/tU8PLN4kesnN8Gjzw349rDlNgsSzg90lAVj3llK99Dh7JON+t9AuscPPFW6mPbTnSA==}
+ dependencies:
+ undici-types: 5.26.5
+ dev: false
+
+ /@types/node@8.10.66:
+ resolution: {integrity: sha512-tktOkFUA4kXx2hhhrB8bIFb5TbwzS4uOhKEmwiD+NoiL0qtP2OQ9mFldbgD4dV1djrlBYP6eBuQZiWjuHUpqFw==}
+ dev: false
+
+ /@types/ssh2@1.15.0:
+ resolution: {integrity: sha512-YcT8jP5F8NzWeevWvcyrrLB3zcneVjzYY9ZDSMAMboI+2zR1qYWFhwsyOFVzT7Jorn67vqxC0FRiw8YyG9P1ww==}
+ dependencies:
+ '@types/node': 18.19.41
+ dev: false
+
+ /@zxing/text-encoding@0.9.0:
+ resolution: {integrity: sha512-U/4aVJ2mxI0aDNI8Uq0wEhMgY+u4CNtEb0om3+y3+niDAsoTCOB33UF0sxpzqzdqXLqmvc+vZyAt4O8pPdfkwA==}
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /asn1@0.2.6:
+ resolution: {integrity: sha512-ix/FxPn0MDjeyJ7i/yoHGFt/EX6LyNbxSEhPPXODPL+KB0VPk86UYfL0lMdy+KCnv+fmvIzySwaK5COwqVbWTQ==}
+ dependencies:
+ safer-buffer: 2.1.2
+ dev: false
+
+ /asynckit@0.4.0:
+ resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==}
+ dev: false
+
+ /available-typed-arrays@1.0.7:
+ resolution: {integrity: sha512-wvUjBtSGN7+7SjNpq/9M2Tg350UZD3q62IFZLbRAR1bSMlCo1ZaeW+BJ+D090e4hIIZLBcTDWe4Mh4jvUDajzQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ possible-typed-array-names: 1.0.0
+ dev: false
+
+ /axios@0.28.1:
+ resolution: {integrity: sha512-iUcGA5a7p0mVb4Gm/sy+FSECNkPFT4y7wt6OM/CDpO/OnNCvSs3PoMG8ibrC9jRoGYU0gUK5pXVC4NPXq6lHRQ==}
+ dependencies:
+ follow-redirects: 1.15.6
+ form-data: 4.0.0
+ proxy-from-env: 1.1.0
+ transitivePeerDependencies:
+ - debug
+ dev: false
+
+ /b4a@1.6.6:
+ resolution: {integrity: sha512-5Tk1HLk6b6ctmjIkAcU/Ujv/1WqiDl0F0JdRCR80VsOcUlHcu7pWeWRlOqQLHfDEsVx9YH/aif5AG4ehoCtTmg==}
+ dev: false
+
+ /base64-js@1.5.1:
+ resolution: {integrity: sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==}
+ dev: false
+
+ /bcrypt-pbkdf@1.0.2:
+ resolution: {integrity: sha512-qeFIXtP4MSoi6NLqO12WfqARWWuCKi2Rn/9hJLEmtB5yTNr9DqFWkJRCf2qShWzPeAMRnOgCrq0sg/KLv5ES9w==}
+ dependencies:
+ tweetnacl: 0.14.5
+ dev: false
+
+ /bech32@2.0.0:
+ resolution: {integrity: sha512-LcknSilhIGatDAsY1ak2I8VtGaHNhgMSYVxFrGLXv+xLHytaKZKcaUJJUE7qmBr7h33o5YQwP55pMI0xmkpJwg==}
+ dev: false
+
+ /bignumber.js@9.1.2:
+ resolution: {integrity: sha512-2/mKyZH9K85bzOEfhXDBFZTGd1CTs+5IHpeFQo9luiBG7hghdC851Pj2WAhb6E3R6b9tZj/XKhbg4fum+Kepug==}
+ dev: false
+
+ /bindings@1.5.0:
+ resolution: {integrity: sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==}
+ requiresBuild: true
+ dependencies:
+ file-uri-to-path: 1.0.0
+ dev: false
+ optional: true
+
+ /bip39@3.1.0:
+ resolution: {integrity: sha512-c9kiwdk45Do5GL0vJMe7tS95VjCii65mYAH7DfWl3uW8AVzXKQVUm64i3hzVybBDMp9r7j9iNxR85+ul8MdN/A==}
+ dependencies:
+ '@noble/hashes': 1.4.0
+ dev: false
+
+ /bl@4.1.0:
+ resolution: {integrity: sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==}
+ dependencies:
+ buffer: 5.7.1
+ inherits: 2.0.4
+ readable-stream: 3.6.2
+ dev: false
+
+ /blake2b-wasm@2.4.0:
+ resolution: {integrity: sha512-S1kwmW2ZhZFFFOghcx73+ZajEfKBqhP82JMssxtLVMxlaPea1p9uoLiUZ5WYyHn0KddwbLc+0vh4wR0KBNoT5w==}
+ dependencies:
+ b4a: 1.6.6
+ nanoassert: 2.0.0
+ dev: false
+
+ /blake2b@2.1.4:
+ resolution: {integrity: sha512-AyBuuJNI64gIvwx13qiICz6H6hpmjvYS5DGkG6jbXMOT8Z3WUJ3V1X0FlhIoT1b/5JtHE3ki+xjtMvu1nn+t9A==}
+ dependencies:
+ blake2b-wasm: 2.4.0
+ nanoassert: 2.0.0
+ dev: false
+
+ /blakejs@1.2.1:
+ resolution: {integrity: sha512-QXUSXI3QVc/gJME0dBpXrag1kbzOqCjCX8/b54ntNyW6sjtoqxqRk3LTmXzaJoh71zMsDCjM+47jS7XiwN/+fQ==}
+ dev: false
+
+ /buffer@5.7.1:
+ resolution: {integrity: sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==}
+ dependencies:
+ base64-js: 1.5.1
+ ieee754: 1.2.1
+ dev: false
+
+ /buildcheck@0.0.6:
+ resolution: {integrity: sha512-8f9ZJCUXyT1M35Jx7MkBgmBMo3oHTTBIPLiY9xyL0pl3T5RwcPEY8cUHr5LBNfu/fk6c2T4DJZuVM/8ZZT2D2A==}
+ engines: {node: '>=10.0.0'}
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /call-bind@1.0.7:
+ resolution: {integrity: sha512-GHTSNSYICQ7scH7sZ+M2rFopRoLh8t2bLSW6BbgrtLsahOIB5iyAVJf9GjWK3cYTDaMj4XdBpM1cA6pIS0Kv2w==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ es-define-property: 1.0.0
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+ get-intrinsic: 1.2.4
+ set-function-length: 1.2.2
+ dev: false
+
+ /chacha-native@2.0.3:
+ resolution: {integrity: sha512-93h+osfjhR2sMHAaapTLlL/COoBPEZ6upicPBQ4GfUyadoMb8t9/M0PKK8kC+F+DEA/Oy3Kg9w3HzY3J1foP3g==}
+ requiresBuild: true
+ dependencies:
+ bindings: 1.5.0
+ inherits: 2.0.4
+ nan: 2.20.0
+ dev: false
+ optional: true
+
+ /chacha@2.1.0:
+ resolution: {integrity: sha512-FhVtqaZOiHlOKUkAWfDlJ+oe/O8iPQbCC0pFXJqphr4YQBCZPXa8Mv3j35+W4eWFWCoTUcW2u5IWDDkknygvVA==}
+ dependencies:
+ inherits: 2.0.4
+ readable-stream: 1.1.14
+ optionalDependencies:
+ chacha-native: 2.0.3
+ dev: false
+
+ /chownr@1.1.4:
+ resolution: {integrity: sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==}
+ dev: false
+
+ /cipher-base@1.0.4:
+ resolution: {integrity: sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==}
+ dependencies:
+ inherits: 2.0.4
+ safe-buffer: 5.2.1
+ dev: false
+
+ /combined-stream@1.0.8:
+ resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==}
+ engines: {node: '>= 0.8'}
+ dependencies:
+ delayed-stream: 1.0.0
+ dev: false
+
+ /core-util-is@1.0.3:
+ resolution: {integrity: sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ==}
+ dev: false
+
+ /cpu-features@0.0.10:
+ resolution: {integrity: sha512-9IkYqtX3YHPCzoVg1Py+o9057a3i0fp7S530UWokCSaFVTc7CwXPRiOjRjBQQ18ZCNafx78YfnG+HALxtVmOGA==}
+ engines: {node: '>=10.0.0'}
+ requiresBuild: true
+ dependencies:
+ buildcheck: 0.0.6
+ nan: 2.20.0
+ dev: false
+ optional: true
+
+ /create-hash@1.2.0:
+ resolution: {integrity: sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==}
+ dependencies:
+ cipher-base: 1.0.4
+ inherits: 2.0.4
+ md5.js: 1.3.5
+ ripemd160: 2.0.2
+ sha.js: 2.4.11
+ dev: false
+
+ /create-hmac@1.1.7:
+ resolution: {integrity: sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==}
+ dependencies:
+ cipher-base: 1.0.4
+ create-hash: 1.2.0
+ inherits: 2.0.4
+ ripemd160: 2.0.2
+ safe-buffer: 5.2.1
+ sha.js: 2.4.11
+ dev: false
+
+ /cross-fetch@3.1.8:
+ resolution: {integrity: sha512-cvA+JwZoU0Xq+h6WkMvAUqPEYy92Obet6UdKLfW60qn99ftItKjB5T+BkyWOFWe2pUyfQ+IJHmpOTznqk1M6Kg==}
+ dependencies:
+ node-fetch: 2.7.0
+ transitivePeerDependencies:
+ - encoding
+ dev: false
+
+ /debug@4.3.5:
+ resolution: {integrity: sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==}
+ engines: {node: '>=6.0'}
+ peerDependencies:
+ supports-color: '*'
+ peerDependenciesMeta:
+ supports-color:
+ optional: true
+ dependencies:
+ ms: 2.1.2
+ dev: false
+
+ /define-data-property@1.1.4:
+ resolution: {integrity: sha512-rBMvIzlpA8v6E+SJZoo++HAYqsLrkg7MSfIinMPFhmkorw7X+dOXVJQs+QT69zGkzMyfDnIMN2Wid1+NbL3T+A==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ es-define-property: 1.0.0
+ es-errors: 1.3.0
+ gopd: 1.0.1
+ dev: false
+
+ /delay@5.0.0:
+ resolution: {integrity: sha512-ReEBKkIfe4ya47wlPYf/gu5ib6yUG0/Aez0JQZQz94kiWtRQvZIQbTiehsnwHvLSWJnQdhVeqYue7Id1dKr0qw==}
+ engines: {node: '>=10'}
+ dev: false
+
+ /delayed-stream@1.0.0:
+ resolution: {integrity: sha512-ZySD7Nf91aLB0RxL4KGrKHBXl7Eds1DAmEdcoVawXnLD7SDhpNgtuII2aAkg7a7QS41jxPSZ17p4VdGnMHk3MQ==}
+ engines: {node: '>=0.4.0'}
+ dev: false
+
+ /docker-modem@3.0.8:
+ resolution: {integrity: sha512-f0ReSURdM3pcKPNS30mxOHSbaFLcknGmQjwSfmbcdOw1XWKXVhukM3NJHhr7NpY9BIyyWQb0EBo3KQvvuU5egQ==}
+ engines: {node: '>= 8.0'}
+ dependencies:
+ debug: 4.3.5
+ readable-stream: 3.6.2
+ split-ca: 1.0.1
+ ssh2: 1.15.0
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /dockerode-utils@0.0.7:
+ resolution: {integrity: sha512-vxMjHFl54CZ/XNtaaBgeaYchIY1F79nD3ymZkiM1HC5cL9SRAFvsJfplqobsT3cfbLJPaUlHW1nuVJEnlu+SOg==}
+ dependencies:
+ '@types/node': 8.10.66
+ dev: false
+
+ /dockerode@3.3.5:
+ resolution: {integrity: sha512-/0YNa3ZDNeLr/tSckmD69+Gq+qVNhvKfAHNeZJBnp7EOP6RGKV8ORrJHkUn20So5wU+xxT7+1n5u8PjHbfjbSA==}
+ engines: {node: '>= 8.0'}
+ dependencies:
+ '@balena/dockerignore': 1.0.2
+ docker-modem: 3.0.8
+ tar-fs: 2.0.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: false
+
+ /dom-walk@0.1.2:
+ resolution: {integrity: sha512-6QvTW9mrGeIegrFXdtQi9pk7O/nSK6lSdXW2eqUspN5LWD7UTji2Fqw5V2YLjBpHEoU9Xl/eUWNpDeZvoyOv2w==}
+ dev: false
+
+ /end-of-stream@1.4.4:
+ resolution: {integrity: sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==}
+ dependencies:
+ once: 1.4.0
+ dev: false
+
+ /envalid@7.3.1:
+ resolution: {integrity: sha512-KL1YRwn8WcoF/Ty7t+yLLtZol01xr9ZJMTjzoGRM8NaSU+nQQjSWOQKKJhJP2P57bpdakJ9jbxqQX4fGTOicZg==}
+ engines: {node: '>=8.12'}
+ dependencies:
+ tslib: 2.3.1
+ dev: false
+
+ /es-define-property@1.0.0:
+ resolution: {integrity: sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ get-intrinsic: 1.2.4
+ dev: false
+
+ /es-errors@1.3.0:
+ resolution: {integrity: sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==}
+ engines: {node: '>= 0.4'}
+ dev: false
+
+ /fastq@1.17.1:
+ resolution: {integrity: sha512-sRVD3lWVIXWg6By68ZN7vho9a1pQcN/WBFaAAsDDFzlJjvoGx0P8z7V1t72grFJfJhu3YPZBuu25f7Kaw2jN1w==}
+ dependencies:
+ reusify: 1.0.4
+ dev: false
+
+ /file-uri-to-path@1.0.0:
+ resolution: {integrity: sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==}
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /follow-redirects@1.15.6:
+ resolution: {integrity: sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==}
+ engines: {node: '>=4.0'}
+ peerDependencies:
+ debug: '*'
+ peerDependenciesMeta:
+ debug:
+ optional: true
+ dev: false
+
+ /for-each@0.3.3:
+ resolution: {integrity: sha512-jqYfLp7mo9vIyQf8ykW2v7A+2N4QjeCeI5+Dz9XraiO1ign81wjiH7Fb9vSOWvQfNtmSa4H2RoQTrrXivdUZmw==}
+ dependencies:
+ is-callable: 1.2.7
+ dev: false
+
+ /form-data@4.0.0:
+ resolution: {integrity: sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==}
+ engines: {node: '>= 6'}
+ dependencies:
+ asynckit: 0.4.0
+ combined-stream: 1.0.8
+ mime-types: 2.1.35
+ dev: false
+
+ /fraction.js@4.0.1:
+ resolution: {integrity: sha512-NQYzZw8MUsxSZFQo6E8tKOlmSd/BlDTNOR4puXFSHSwFwNaIlmbortQy5PDN/KnVQ4xWG2NtN0J0hjPw7eE06A==}
+ dev: false
+
+ /fs-constants@1.0.0:
+ resolution: {integrity: sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==}
+ dev: false
+
+ /fs-memo@1.2.0:
+ resolution: {integrity: sha512-YEexkCpL4j03jn5SxaMHqcO6IuWuqm8JFUYhyCep7Ao89JIYmB8xoKhK7zXXJ9cCaNXpyNH5L3QtAmoxjoHW2w==}
+ dev: false
+
+ /function-bind@1.1.2:
+ resolution: {integrity: sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==}
+ dev: false
+
+ /get-intrinsic@1.2.4:
+ resolution: {integrity: sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+ has-proto: 1.0.3
+ has-symbols: 1.0.3
+ hasown: 2.0.2
+ dev: false
+
+ /get-port-please@2.6.1:
+ resolution: {integrity: sha512-4PDSrL6+cuMM1xs6w36ZIkaKzzE0xzfVBCfebHIJ3FE8iB9oic/ECwPw3iNiD4h1AoJ5XLLBhEviFAVrZsDC5A==}
+ dependencies:
+ fs-memo: 1.2.0
+ dev: false
+
+ /get-random-values@2.1.0:
+ resolution: {integrity: sha512-q2yOLpLyA8f9unfv2LV8KVRUFeOIrQVS5cnqpbv6N+ea9j1rmW5dFKj/2Q7CK3juEfDYQgPxGt941VJcmw0jKg==}
+ engines: {node: 14 || 16 || >=18}
+ dependencies:
+ global: 4.4.0
+ dev: false
+
+ /global@4.4.0:
+ resolution: {integrity: sha512-wv/LAoHdRE3BeTGz53FAamhGlPLhlssK45usmGFThIi4XqnBmjKQ16u+RNbP7WvigRZDxUsM0J3gcQ5yicaL0w==}
+ dependencies:
+ min-document: 2.19.0
+ process: 0.11.10
+ dev: false
+
+ /gopd@1.0.1:
+ resolution: {integrity: sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==}
+ dependencies:
+ get-intrinsic: 1.2.4
+ dev: false
+
+ /has-property-descriptors@1.0.2:
+ resolution: {integrity: sha512-55JNKuIW+vq4Ke1BjOTjM2YctQIvCT7GFzHwmfZPGo5wnrgkid0YQtnAleFSqumZm4az3n2BS+erby5ipJdgrg==}
+ dependencies:
+ es-define-property: 1.0.0
+ dev: false
+
+ /has-proto@1.0.3:
+ resolution: {integrity: sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==}
+ engines: {node: '>= 0.4'}
+ dev: false
+
+ /has-symbols@1.0.3:
+ resolution: {integrity: sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==}
+ engines: {node: '>= 0.4'}
+ dev: false
+
+ /has-tostringtag@1.0.2:
+ resolution: {integrity: sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-symbols: 1.0.3
+ dev: false
+
+ /hash-base@3.1.0:
+ resolution: {integrity: sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==}
+ engines: {node: '>=4'}
+ dependencies:
+ inherits: 2.0.4
+ readable-stream: 3.6.2
+ safe-buffer: 5.2.1
+ dev: false
+
+ /hasown@2.0.2:
+ resolution: {integrity: sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ function-bind: 1.1.2
+ dev: false
+
+ /hex-encoding@2.0.2:
+ resolution: {integrity: sha512-NhclxbCmF1NTU9mE0GYEkUrFX5VvnfiHrzcqGbsQJcLT33rE/yqBB+U1bHDuLk86AQyN/hsr+Q/sX3jRxmarhg==}
+ dependencies:
+ node-buffer-encoding: 1.0.2
+ uint8-encoding: 2.0.0
+ dev: false
+
+ /i@0.3.7:
+ resolution: {integrity: sha512-FYz4wlXgkQwIPqhzC5TdNMLSE5+GS1IIDJZY/1ZiEPCT2S3COUVZeT5OW4BmW4r5LHLQuOosSwsvnroG9GR59Q==}
+ engines: {node: '>=0.4'}
+ dev: false
+
+ /ieee754@1.2.1:
+ resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
+ dev: false
+
+ /inherits@2.0.4:
+ resolution: {integrity: sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==}
+ dev: false
+
+ /ip-address@8.1.0:
+ resolution: {integrity: sha512-Wz91gZKpNKoXtqvY8ScarKYwhXoK4r/b5QuT+uywe/azv0/nUCo7Bh0IRRI7F9DHR06kJNWtzMGLIbXavngbKA==}
+ engines: {node: '>= 12'}
+ dependencies:
+ jsbn: 1.1.0
+ sprintf-js: 1.1.2
+ dev: false
+
+ /is-arguments@1.1.1:
+ resolution: {integrity: sha512-8Q7EARjzEnKpt/PCD7e1cgUS0a6X8u5tdSiMqXhojOdoV9TsMsiO+9VLC5vAmO8N7/GmXn7yjR8qnA6bVAEzfA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ call-bind: 1.0.7
+ has-tostringtag: 1.0.2
+ dev: false
+
+ /is-callable@1.2.7:
+ resolution: {integrity: sha512-1BC0BVFhS/p0qtw6enp8e+8OD0UrK0oFLztSjNzhcKA3WDuJxxAPXzPuPtKkjEY9UUoEWlX/8fgKeu2S8i9JTA==}
+ engines: {node: '>= 0.4'}
+ dev: false
+
+ /is-generator-function@1.0.10:
+ resolution: {integrity: sha512-jsEjy9l3yiXEQ+PsXdmBwEPcOxaXWLspKdplFUVI9vq1iZgIekeC0L167qeu86czQaxed3q/Uzuw0swL0irL8A==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ has-tostringtag: 1.0.2
+ dev: false
+
+ /is-typed-array@1.1.13:
+ resolution: {integrity: sha512-uZ25/bUAlUY5fR4OKT4rZQEBrzQWYV9ZJYGGsUmEJ6thodVJ1HX64ePQ6Z0qPWP+m+Uq6e9UugrE38jeYsDSMw==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ which-typed-array: 1.1.15
+ dev: false
+
+ /isarray@0.0.1:
+ resolution: {integrity: sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ==}
+ dev: false
+
+ /isomorphic-ws@4.0.1(ws@7.5.10):
+ resolution: {integrity: sha512-BhBvN2MBpWTaSHdWRb/bwdZJ1WaehQ2L1KngkCkfLUGF0mAWAT1sQUQacEmQ0jXkFw/czDXPNQSL5u2/Krsz1w==}
+ peerDependencies:
+ ws: '*'
+ dependencies:
+ ws: 7.5.10
+ dev: false
+
+ /jsbn@1.1.0:
+ resolution: {integrity: sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==}
+ dev: false
+
+ /json-bigint@1.0.0:
+ resolution: {integrity: sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==}
+ dependencies:
+ bignumber.js: 9.1.2
+ dev: false
+
+ /libsodium-sumo@0.7.14:
+ resolution: {integrity: sha512-2nDge6qlAjcwyslAhWfVumlkeSNK5+WCfKa2/VEq9prvlT5vP2FR0m0o5hmKaYqfsZ4TQVj5czQsimZvXDB1CQ==}
+ dev: false
+
+ /libsodium-wrappers-sumo@0.7.14:
+ resolution: {integrity: sha512-0lm7ZwN5a95J2yUi8R1rgQeeaVDIWnvNzgVmXmZswis4mC+bQtbDrB+QpJlL4qklaKx3hVpJjoc6ubzJFiv64Q==}
+ dependencies:
+ libsodium-sumo: 0.7.14
+ dev: false
+
+ /lodash@4.17.21:
+ resolution: {integrity: sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==}
+ dev: false
+
+ /md5.js@1.3.5:
+ resolution: {integrity: sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==}
+ dependencies:
+ hash-base: 3.1.0
+ inherits: 2.0.4
+ safe-buffer: 5.2.1
+ dev: false
+
+ /mime-db@1.52.0:
+ resolution: {integrity: sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==}
+ engines: {node: '>= 0.6'}
+ dev: false
+
+ /mime-types@2.1.35:
+ resolution: {integrity: sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==}
+ engines: {node: '>= 0.6'}
+ dependencies:
+ mime-db: 1.52.0
+ dev: false
+
+ /min-document@2.19.0:
+ resolution: {integrity: sha512-9Wy1B3m3f66bPPmU5hdA4DR4PB2OfDU/+GS3yAB7IQozE3tqXaVv2zOjgla7MEGSRv95+ILmOuvhLkOK6wJtCQ==}
+ dependencies:
+ dom-walk: 0.1.2
+ dev: false
+
+ /mkdirp-classic@0.5.3:
+ resolution: {integrity: sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A==}
+ dev: false
+
+ /ms@2.1.2:
+ resolution: {integrity: sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==}
+ dev: false
+
+ /nan@2.20.0:
+ resolution: {integrity: sha512-bk3gXBZDGILuuo/6sKtr0DQmSThYHLtNCdSdXk9YkxD/jK6X2vmCyyXBBxyqZ4XcnzTyYEAThfX3DCEnLf6igw==}
+ requiresBuild: true
+ dev: false
+ optional: true
+
+ /nanoassert@2.0.0:
+ resolution: {integrity: sha512-7vO7n28+aYO4J+8w96AzhmU8G+Y/xpPDJz/se19ICsqj/momRbb9mh9ZUtkoJ5X3nTnPdhEJyc0qnM6yAsHBaA==}
+ dev: false
+
+ /nanoid@3.3.7:
+ resolution: {integrity: sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g==}
+ engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
+ hasBin: true
+ dev: false
+
+ /node-buffer-encoding@1.0.2:
+ resolution: {integrity: sha512-v2QFjf04xWb5Q7cyzbi8qEwe2vw2xJBXT7+pMOLA02+KJZlcJ/6syFYiH96ClXKfOG/kyBeysAuewJ7zfAUYKQ==}
+ dev: false
+
+ /node-fetch@2.7.0:
+ resolution: {integrity: sha512-c4FRfUm/dbcWZ7U+1Wq0AwCyFL+3nt2bEw05wfxSz+DWpWsitgmSgYmy2dQdWyKC1694ELPqMs/YzUSNozLt8A==}
+ engines: {node: 4.x || >=6.0.0}
+ peerDependencies:
+ encoding: ^0.1.0
+ peerDependenciesMeta:
+ encoding:
+ optional: true
+ dependencies:
+ whatwg-url: 5.0.0
+ dev: false
+
+ /npm@9.9.3:
+ resolution: {integrity: sha512-Z1l+rcQ5kYb17F3hHtO601arEpvdRYnCLtg8xo3AGtyj3IthwaraEOexI9903uANkifFbqHC8hT53KIrozWg8A==}
+ engines: {node: ^14.17.0 || ^16.13.0 || >=18.0.0}
+ hasBin: true
+ dev: false
+ bundledDependencies:
+ - '@isaacs/string-locale-compare'
+ - '@npmcli/arborist'
+ - '@npmcli/config'
+ - '@npmcli/fs'
+ - '@npmcli/map-workspaces'
+ - '@npmcli/package-json'
+ - '@npmcli/promise-spawn'
+ - '@npmcli/run-script'
+ - abbrev
+ - archy
+ - cacache
+ - chalk
+ - ci-info
+ - cli-columns
+ - cli-table3
+ - columnify
+ - fastest-levenshtein
+ - fs-minipass
+ - glob
+ - graceful-fs
+ - hosted-git-info
+ - ini
+ - init-package-json
+ - is-cidr
+ - json-parse-even-better-errors
+ - libnpmaccess
+ - libnpmdiff
+ - libnpmexec
+ - libnpmfund
+ - libnpmhook
+ - libnpmorg
+ - libnpmpack
+ - libnpmpublish
+ - libnpmsearch
+ - libnpmteam
+ - libnpmversion
+ - make-fetch-happen
+ - minimatch
+ - minipass
+ - minipass-pipeline
+ - ms
+ - node-gyp
+ - nopt
+ - normalize-package-data
+ - npm-audit-report
+ - npm-install-checks
+ - npm-package-arg
+ - npm-pick-manifest
+ - npm-profile
+ - npm-registry-fetch
+ - npm-user-validate
+ - npmlog
+ - p-map
+ - pacote
+ - parse-conflict-json
+ - proc-log
+ - qrcode-terminal
+ - read
+ - semver
+ - sigstore
+ - spdx-expression-parse
+ - ssri
+ - supports-color
+ - tar
+ - text-table
+ - tiny-relative-date
+ - treeverse
+ - validate-npm-package-name
+ - which
+ - write-file-atomic
+
+ /once@1.4.0:
+ resolution: {integrity: sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==}
+ dependencies:
+ wrappy: 1.0.2
+ dev: false
+
+ /pbkdf2@3.1.2:
+ resolution: {integrity: sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==}
+ engines: {node: '>=0.12'}
+ dependencies:
+ create-hash: 1.2.0
+ create-hmac: 1.1.7
+ ripemd160: 2.0.2
+ safe-buffer: 5.2.1
+ sha.js: 2.4.11
+ dev: false
+
+ /possible-typed-array-names@1.0.0:
+ resolution: {integrity: sha512-d7Uw+eZoloe0EHDIYoe+bQ5WXnGMOpmiZFTuMWCwpjzzkL2nTjcKiAk4hh8TjnGye2TwWOk3UXucZ+3rbmBa8Q==}
+ engines: {node: '>= 0.4'}
+ dev: false
+
+ /process@0.11.10:
+ resolution: {integrity: sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A==}
+ engines: {node: '>= 0.6.0'}
+ dev: false
+
+ /proxy-from-env@1.1.0:
+ resolution: {integrity: sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==}
+ dev: false
+
+ /pump@3.0.0:
+ resolution: {integrity: sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==}
+ dependencies:
+ end-of-stream: 1.4.4
+ once: 1.4.0
+ dev: false
+
+ /readable-stream@1.1.14:
+ resolution: {integrity: sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==}
+ dependencies:
+ core-util-is: 1.0.3
+ inherits: 2.0.4
+ isarray: 0.0.1
+ string_decoder: 0.10.31
+ dev: false
+
+ /readable-stream@3.6.2:
+ resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==}
+ engines: {node: '>= 6'}
+ dependencies:
+ inherits: 2.0.4
+ string_decoder: 1.3.0
+ util-deprecate: 1.0.2
+ dev: false
+
+ /reusify@1.0.4:
+ resolution: {integrity: sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==}
+ engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
+ dev: false
+
+ /ripemd160@2.0.2:
+ resolution: {integrity: sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==}
+ dependencies:
+ hash-base: 3.1.0
+ inherits: 2.0.4
+ dev: false
+
+ /rxjs@7.8.1:
+ resolution: {integrity: sha512-AA3TVj+0A2iuIoQkWEK/tqFjBq2j+6PO6Y0zJcvzLAFhEFIO3HL0vls9hWLncZbAAbK0mar7oZ4V079I/qPMxg==}
+ dependencies:
+ tslib: 2.6.3
+ dev: false
+
+ /safe-buffer@5.2.1:
+ resolution: {integrity: sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==}
+ dev: false
+
+ /safer-buffer@2.1.2:
+ resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==}
+ dev: false
+
+ /serialize-error@8.1.0:
+ resolution: {integrity: sha512-3NnuWfM6vBYoy5gZFvHiYsVbafvI9vZv/+jlIigFn4oP4zjNPK3LhcY0xSCgeb1a5L8jO71Mit9LlNoi2UfDDQ==}
+ engines: {node: '>=10'}
+ dependencies:
+ type-fest: 0.20.2
+ dev: false
+
+ /set-function-length@1.2.2:
+ resolution: {integrity: sha512-pgRc4hJ4/sNjWCSS9AmnS40x3bNMDTknHgL5UaMBTMyJnU90EgWh1Rz+MC9eFu4BuN/UwZjKQuY/1v3rM7HMfg==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ define-data-property: 1.1.4
+ es-errors: 1.3.0
+ function-bind: 1.1.2
+ get-intrinsic: 1.2.4
+ gopd: 1.0.1
+ has-property-descriptors: 1.0.2
+ dev: false
+
+ /sha.js@2.4.11:
+ resolution: {integrity: sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==}
+ hasBin: true
+ dependencies:
+ inherits: 2.0.4
+ safe-buffer: 5.2.1
+ dev: false
+
+ /split-ca@1.0.1:
+ resolution: {integrity: sha512-Q5thBSxp5t8WPTTJQS59LrGqOZqOsrhDGDVm8azCqIBjSBd7nd9o2PM+mDulQQkh8h//4U6hFZnc/mul8t5pWQ==}
+ dev: false
+
+ /sprintf-js@1.1.2:
+ resolution: {integrity: sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==}
+ dev: false
+
+ /ssh2@1.15.0:
+ resolution: {integrity: sha512-C0PHgX4h6lBxYx7hcXwu3QWdh4tg6tZZsTfXcdvc5caW/EMxaB4H9dWsl7qk+F7LAW762hp8VbXOX7x4xUYvEw==}
+ engines: {node: '>=10.16.0'}
+ requiresBuild: true
+ dependencies:
+ asn1: 0.2.6
+ bcrypt-pbkdf: 1.0.2
+ optionalDependencies:
+ cpu-features: 0.0.10
+ nan: 2.20.0
+ dev: false
+
+ /string_decoder@0.10.31:
+ resolution: {integrity: sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ==}
+ dev: false
+
+ /string_decoder@1.3.0:
+ resolution: {integrity: sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==}
+ dependencies:
+ safe-buffer: 5.2.1
+ dev: false
+
+ /tar-fs@2.0.1:
+ resolution: {integrity: sha512-6tzWDMeroL87uF/+lin46k+Q+46rAJ0SyPGz7OW7wTgblI273hsBqk2C1j0/xNadNLKDTUL9BukSjB7cwgmlPA==}
+ dependencies:
+ chownr: 1.1.4
+ mkdirp-classic: 0.5.3
+ pump: 3.0.0
+ tar-stream: 2.2.0
+ dev: false
+
+ /tar-stream@2.2.0:
+ resolution: {integrity: sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==}
+ engines: {node: '>=6'}
+ dependencies:
+ bl: 4.1.0
+ end-of-stream: 1.4.4
+ fs-constants: 1.0.0
+ inherits: 2.0.4
+ readable-stream: 3.6.2
+ dev: false
+
+ /tr46@0.0.3:
+ resolution: {integrity: sha512-N3WMsuqV66lT30CrXNbEjx4GEwlow3v6rr4mCcv6prnfwhS01rkgyFdjPNBYd9br7LpXV1+Emh01fHnq2Gdgrw==}
+ dev: false
+
+ /ts-custom-error@3.3.1:
+ resolution: {integrity: sha512-5OX1tzOjxWEgsr/YEUWSuPrQ00deKLh6D7OTWcvNHm12/7QPyRh8SYpyWvA4IZv8H/+GQWQEh/kwo95Q9OVW1A==}
+ engines: {node: '>=14.0.0'}
+ dev: false
+
+ /ts-log@2.2.5:
+ resolution: {integrity: sha512-PGcnJoTBnVGy6yYNFxWVNkdcAuAMstvutN9MgDJIV6L0oG8fB+ZNNy1T+wJzah8RPGor1mZuPQkVfXNDpy9eHA==}
+ dev: false
+
+ /tslib@2.3.1:
+ resolution: {integrity: sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==}
+ dev: false
+
+ /tslib@2.6.3:
+ resolution: {integrity: sha512-xNvxJEOUiWPGhUuUdQgAJPKOOJfGnIyKySOc09XkKsgdUV/3E2zvwZYdejjmRgPCgcym1juLH3226yA7sEFJKQ==}
+ dev: false
+
+ /tweetnacl@0.14.5:
+ resolution: {integrity: sha512-KXXFFdAbFXY4geFIwoyNK+f5Z1b7swfXABfL7HXCmoIWMKU3dmS26672A4EeQtDzLKy7SXmfBu51JolvEKwtGA==}
+ dev: false
+
+ /type-fest@0.20.2:
+ resolution: {integrity: sha512-Ne+eE4r0/iWnpAxD852z3A+N0Bt5RN//NjJwRd2VFHEmrywxf5vsZlh4R6lixl6B+wz/8d+maTSAkN1FIkI3LQ==}
+ engines: {node: '>=10'}
+ dev: false
+
+ /type-fest@2.19.0:
+ resolution: {integrity: sha512-RAH822pAdBgcNMAfWnCBU3CFZcfZ/i1eZjwFU/dsLKumyuuP3niueg2UAukXYF0E2AAoc82ZSSf9J0WQBinzHA==}
+ engines: {node: '>=12.20'}
+ dev: false
+
+ /uint8-encoding@2.0.0:
+ resolution: {integrity: sha512-MQcY+mEuLoHBqAawasWrFbZx1SqUoFU/wVYNGO6lsIxczeO+cNjA1djYHQM3GWU3SaEhKTfG3Z5cE2r+zR6tNw==}
+ dev: false
+
+ /undici-types@5.26.5:
+ resolution: {integrity: sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==}
+ dev: false
+
+ /uplc-node@0.0.3:
+ resolution: {integrity: sha512-4vr7+RzsRmzS2xuMMMsAs7/VgUzq0Y6ha03IKY1yvTwTz4JQcrlOB0wISzpQ0wJUCxXCirsWKh95BJdrC9OT+w==}
+ dev: false
+
+ /util-deprecate@1.0.2:
+ resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
+ dev: false
+
+ /util@0.12.5:
+ resolution: {integrity: sha512-kZf/K6hEIrWHI6XqOFUiiMa+79wE/D8Q+NCNAWclkyg3b4d2k7s0QGepNjiABc+aR3N1PAyHL7p6UcLY6LmrnA==}
+ dependencies:
+ inherits: 2.0.4
+ is-arguments: 1.1.1
+ is-generator-function: 1.0.10
+ is-typed-array: 1.1.13
+ which-typed-array: 1.1.15
+ dev: false
+
+ /web-encoding@1.1.5:
+ resolution: {integrity: sha512-HYLeVCdJ0+lBYV2FvNZmv3HJ2Nt0QYXqZojk3d9FJOLkwnuhzM9tmamh8d7HPM8QqjKH8DeHkFTx+CFlWpZZDA==}
+ dependencies:
+ util: 0.12.5
+ optionalDependencies:
+ '@zxing/text-encoding': 0.9.0
+ dev: false
+
+ /webextension-polyfill@0.8.0:
+ resolution: {integrity: sha512-a19+DzlT6Kp9/UI+mF9XQopeZ+n2ussjhxHJ4/pmIGge9ijCDz7Gn93mNnjpZAk95T4Tae8iHZ6sSf869txqiQ==}
+ dev: false
+
+ /webidl-conversions@3.0.1:
+ resolution: {integrity: sha512-2JAn3z8AR6rjK8Sm8orRC0h/bcl/DqL7tRPdGZ4I1CjdF+EaMLmYxBHyXuKL849eucPFhvBoxMsflfOb8kxaeQ==}
+ dev: false
+
+ /whatwg-url@5.0.0:
+ resolution: {integrity: sha512-saE57nupxk6v3HY35+jzBwYa0rKSy0XR8JSxZPwgLr7ys0IBzhGviA1/TUGJLmSVqs8pb9AnvICXEuOHLprYTw==}
+ dependencies:
+ tr46: 0.0.3
+ webidl-conversions: 3.0.1
+ dev: false
+
+ /which-typed-array@1.1.15:
+ resolution: {integrity: sha512-oV0jmFtUky6CXfkqehVvBP/LSWJ2sy4vWMioiENyJLePrBO/yKyV9OyJySfAKosh+RYkIl5zJCNZ8/4JncrpdA==}
+ engines: {node: '>= 0.4'}
+ dependencies:
+ available-typed-arrays: 1.0.7
+ call-bind: 1.0.7
+ for-each: 0.3.3
+ gopd: 1.0.1
+ has-tostringtag: 1.0.2
+ dev: false
+
+ /wrappy@1.0.2:
+ resolution: {integrity: sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==}
+ dev: false
+
+ /ws@7.5.10:
+ resolution: {integrity: sha512-+dbF1tHwZpXcbOJdVOkzLDxZP1ailvSxM6ZweXTegylPny803bFhA+vqBYw4s31NSAk4S2Qz+AKXK9a4wkdjcQ==}
+ engines: {node: '>=8.3.0'}
+ peerDependencies:
+ bufferutil: ^4.0.1
+ utf-8-validate: ^5.0.2
+ peerDependenciesMeta:
+ bufferutil:
+ optional: true
+ utf-8-validate:
+ optional: true
+ dev: false
diff --git a/validators/proposals.ak b/validators/proposals.ak
new file mode 100644
index 0000000..a3ae2a9
--- /dev/null
+++ b/validators/proposals.ak
@@ -0,0 +1,80 @@
+use aiken/builtin
+use aiken/bytearray
+use aiken/dict
+use aiken/hash.{Blake2b_224, Hash}
+use aiken/list
+use aiken/transaction.{
+ InlineDatum, Mint, Output, ScriptContext, Spend, Transaction,
+}
+use aiken/transaction/credential.{ScriptCredential, VerificationKey}
+use aiken/transaction/value.{AssetName, PolicyId}
+
+type Proposal {
+ owner: Hash,
+ data: Data,
+}
+
+const proposal_asset_name = "PROPOSAL"
+
+type CollateralValue {
+ policy_id: PolicyId,
+ asset_name: AssetName,
+ quantity: Int,
+}
+
+fn add_collateral_value(collateral_value: CollateralValue) {
+ let CollateralValue { policy_id, asset_name, quantity } = collateral_value
+ value.add(_, policy_id, asset_name, quantity)
+}
+
+validator(required_collateral: CollateralValue) {
+ fn new_proposal(proposal: Proposal, context: ScriptContext) -> Bool {
+ expect ScriptContext {
+ transaction: Transaction { inputs, outputs, mint, .. },
+ purpose: Mint(policy_id),
+ } = context
+ // for simplicity we take 0th output
+ expect [proposal_output, ..] = outputs
+ expect Output {
+ value: proposal_value,
+ datum: InlineDatum(proposal_datum),
+ reference_script: None,
+ address: proposal_address,
+ } = proposal_output
+ expect Proposal { owner, data }: Proposal = proposal_datum
+ let proposal_id = builtin.serialise_data(builtin.head_list(inputs))
+ and {
+ bytearray.length(owner) == 28,
+ ((
+ proposal_value
+ |> value.without_lovelace
+ ) == (
+ value.from_asset(policy_id, proposal_asset_name, 1)
+ |> add_collateral_value(required_collateral)
+ ))?,
+ (proposal_address.payment_credential == ScriptCredential(policy_id))?,
+ ((
+ mint
+ |> value.from_minted_value
+ |> value.tokens(policy_id)
+ |> dict.to_pairs
+ ) == [Pair(proposal_asset_name, 1)])?,
+ }
+ }
+
+ fn reclaim_collateral(
+ datum: Proposal,
+ redeemer,
+ context: ScriptContext,
+ ) -> Bool {
+ expect ScriptContext {
+ transaction: Transaction { extra_signatories, .. },
+ purpose: Spend(input),
+ } = context
+ let proposal_accepted = True
+ and {
+ list.has(extra_signatories, datum.owner),
+ proposal_accepted,
+ }
+ }
+}
diff --git a/validators/staking.ak b/validators/staking.ak
new file mode 100644
index 0000000..1e6ca6d
--- /dev/null
+++ b/validators/staking.ak
@@ -0,0 +1,29 @@
+use aiken/hash.{Blake2b_224, Hash}
+use aiken/transaction.{
+ InlineDatum, Mint, Output, OutputReference, ScriptContext, Spend, Transaction,
+}
+use aiken/transaction/credential.{Script}
+
+type AssetClass {
+ policyId: Hash,
+ assetName: ByteArray,
+}
+
+type Redeemer {
+ Stake
+ Unstake
+}
+
+validator(quorum_nft: AssetClass) {
+ // Staking is to mint and lock
+ fn stake(redeemer: Redeemer, context: ScriptContext) -> Bool {
+ when redeemer is {
+ Stake -> todo
+ Unstake -> todo
+ }
+ }
+
+ fn unstake(datum, redeemer, context: ScriptContext) -> Bool {
+ todo
+ }
+}