diff --git a/.claude/settings.local.json b/.claude/settings.local.json deleted file mode 100644 index 254d495..0000000 --- a/.claude/settings.local.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "permissions": { - "allow": [ - "Bash(cargo build:*)", - "Bash(cargo test:*)", - "Bash(cargo clippy:*)" - ] - } -} diff --git a/.github/release.yml b/.github/release.yml index 64b1a88..470e462 100644 --- a/.github/release.yml +++ b/.github/release.yml @@ -3,7 +3,7 @@ # # Categorizes the notes that `gh release create --generate-notes` produces # (grouping merged PRs by label into sections). Those categorized notes flow -# into the resq-software/landing changelog aggregator, whose `kind` inference +# into the org's changelog aggregator, whose `kind` inference # reads these section headers — so labeling PRs makes the changelog's # feature/fix/improvement classification accurate instead of a default guess. # Add `C-*` category labels to PRs to populate the sections; the path labels diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2e07f74..f000797 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -50,27 +50,78 @@ jobs: *) echo "::error::rust reusable returned: $RUST_RESULT"; exit 1 ;; esac - # Publish a GitHub Release per v* tag so resq-software/landing's changelog + # Publish a GitHub Release per v* tag so the org's changelog # aggregator picks the version up — the aggregator ingests GitHub *Releases*, # not git tags. Runs only on a tag push, after the `required` gate passes. + # + # What a release publishes is the tagged source, so the job also attaches an + # SPDX JSON SBOM of it and a source archive with a fixed digest, and attests + # build provenance for both. GitHub's own tag archives are generated on + # demand, so their bytes are not a stable subject for an attestation. release: name: GitHub Release needs: [required] if: startsWith(github.ref, 'refs/tags/v') runs-on: ubuntu-latest permissions: - contents: write # create the release + contents: write # create the release and upload its assets + id-token: write # sign the provenance attestation through Sigstore + attestations: write # store the attestation against this repository steps: + # The tagged commit, for the SBOM and the source archive. Nothing here + # pushes, so no credential is kept. + - uses: actions/checkout@df4cb1c069e1874edd31b4311f1884172cec0e10 # v6.0.3 + with: + persist-credentials: false + + # The assets are generated and attested before the Release exists, so a + # failure here publishes nothing. + # + # Generated before the archive exists, so it describes the checkout only. + - name: Generate SBOM (SPDX JSON) + uses: anchore/sbom-action@3ad7283483fc7af8ff2b4ea19663c2d5ca935e26 # v0.24.2 + with: + path: . + format: spdx-json + output-file: sbom.spdx.json + # Uploaded to the Release below: the action's own release upload + # only works on `release` events, and this job runs on a tag push. + upload-artifact: false + upload-release-assets: false + + - name: Archive the tagged source + env: + TAG: ${{ github.ref_name }} + run: git archive --format=tar.gz --prefix="programs-$TAG/" -o "programs-$TAG-source.tar.gz" HEAD + + - name: Attest build provenance + uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2 + with: + subject-path: | + programs-*-source.tar.gz + sbom.spdx.json + - name: Create GitHub Release from the tag # `gh` reads $GH_TOKEN and $GITHUB_REPOSITORY automatically; the tag is # passed via env (never `${{ }}` inside run:) to avoid zizmor template # injection. --generate-notes builds notes from merged PRs since the # previous tag; --verify-tag asserts the ref is a real tag first. + # Skipped when the Release already exists, so a re-run after a failed + # upload below can finish the job instead of failing here. + env: + GH_TOKEN: ${{ github.token }} + TAG: ${{ github.ref_name }} + run: | + set -eu + if gh release view "$TAG" >/dev/null 2>&1; then + echo "release $TAG already exists; attaching assets only" + else + gh release create "$TAG" --title "$TAG" --generate-notes --verify-tag + fi + + - name: Attach the source archive and SBOM to the Release env: GH_TOKEN: ${{ github.token }} TAG: ${{ github.ref_name }} - run: > - gh release create "$TAG" - --title "$TAG" - --generate-notes - --verify-tag + # --clobber keeps a re-run idempotent. + run: gh release upload "$TAG" "programs-$TAG-source.tar.gz" sbom.spdx.json --clobber diff --git a/.github/workflows/conventional-title-labeler.yml b/.github/workflows/conventional-title-labeler.yml index d08fb8a..1daf978 100644 --- a/.github/workflows/conventional-title-labeler.yml +++ b/.github/workflows/conventional-title-labeler.yml @@ -4,7 +4,7 @@ # Applies the org C-* change-type label (C-Feature / C-Bug / ...) to a PR based # on its conventional-commit title prefix. Combined with .github/release.yml, # this makes `gh release create --generate-notes` group PRs by type, which flows -# into resq-software/landing's changelog aggregator so its feature/fix/kind +# into the org's changelog aggregator so its feature/fix/kind # classification is automatic rather than a default guess. Path labels come from # .github/labeler.yml; this covers the change *type* that paths cannot express. name: Conventional Title Labeler diff --git a/.github/workflows/dependency-licences.yml b/.github/workflows/dependency-licences.yml new file mode 100644 index 0000000..259c173 --- /dev/null +++ b/.github/workflows/dependency-licences.yml @@ -0,0 +1,31 @@ +# Copyright 2026 ResQ Systems, Inc. +# SPDX-License-Identifier: Apache-2.0 +# +# Dependency licence check on pull requests. WARN-ONLY: a dependency under a +# listed licence is reported as a warning in the job log and summary, and the +# job still passes. It informs review; it does not block a merge. +# +# The org security-scan workflow called from security.yml already runs +# dependency-review for vulnerabilities, but it takes no licence inputs, so the +# licence check lives here. vulnerability-check is off so this job does not +# repeat that one. + +name: dependency-licences + +on: + pull_request: + +permissions: {} + +jobs: + licence-check: + name: licence check (warn-only) + runs-on: ubuntu-latest + permissions: + contents: read + steps: + - uses: actions/dependency-review-action@a1d282b36b6f3519aa1f3fc636f609c47dddb294 # v5.0.0 + with: + vulnerability-check: false + deny-licenses: GPL-2.0-only, GPL-2.0-or-later, GPL-3.0-only, GPL-3.0-or-later, AGPL-3.0-only, AGPL-3.0-or-later, SSPL-1.0 + warn-only: true diff --git a/.gitignore b/.gitignore index 8b14544..7064f32 100644 --- a/.gitignore +++ b/.gitignore @@ -4,3 +4,6 @@ node_modules/ test-ledger/ *.so .DS_Store + +# Local agent/tool settings; never tracked. +.claude/settings.local.json diff --git a/SECURITY.md b/SECURITY.md new file mode 100644 index 0000000..83d9c06 --- /dev/null +++ b/SECURITY.md @@ -0,0 +1,43 @@ +# Security Policy + +This repository follows the ResQ organisation's [security policy](https://github.com/resq-software/.github/blob/main/SECURITY.md), which covers scope, response times and disclosure. This file restates how to report a vulnerability in this repository and adds the sections below. + +## Supported versions + +As the organisation policy's [supported-versions table](https://github.com/resq-software/.github/blob/main/SECURITY.md#supported-versions) sets out, security fixes go to the latest published version only. If you run an older one, please check whether the issue still affects the latest version, as it may already be fixed. Reports about older versions are still welcome; say which commit or release tag you tested. + +## Reporting a vulnerability + +**Do not open a public issue for a suspected vulnerability.** Use one of these private channels: + +1. **GitHub private vulnerability reporting** (preferred): [open a draft advisory](https://github.com/resq-software/programs/security/advisories/new) on this repository. +2. **Email**: `security@resq.software`. + +Please include the affected commit SHA or release tag, a short description of the issue and its impact, and steps to reproduce. + +## EU Cyber Resilience Act reporting + +Where the EU Cyber Resilience Act (Regulation (EU) 2024/2847) applies to a product in this repository, ResQ reports through ENISA's Single Reporting Platform, to the CSIRT designated as coordinator and to ENISA: + +- **Actively exploited vulnerabilities:** an early warning within 24 hours of becoming aware of one, a notification within 72 hours, and a final report no later than 14 days after a corrective or mitigating measure is available. +- **Severe incidents** affecting the security of the product: an early warning within 24 hours, a notification within 72 hours, and a final report within one month of the notification. + +We inform affected users as the Act requires. Reporting to us through the private channels above never requires you to contact ENISA yourself. You may also report to a national CSIRT under its coordinated vulnerability disclosure policy. + +## Safe harbour + +If you make a good-faith effort to follow this policy while researching a vulnerability, we will: + +- treat your research as authorised, and not pursue or support legal action against you for it; +- work with you to understand and fix the issue quickly; and +- credit you, unless you ask us not to. + +Good faith means that you: + +- test only against your own accounts, data and installations; +- stop and report as soon as you find a vulnerability; +- access, change or keep no one else's data beyond what's needed to show the issue; +- don't degrade our services or anyone else's; and +- give us reasonable time to fix the issue before you disclose it. + +This safe harbour covers ResQ's own claims only; it cannot bind third parties. diff --git a/resq-airspace/src/error.rs b/resq-airspace/src/error.rs index c49f6e9..f8446b8 100644 --- a/resq-airspace/src/error.rs +++ b/resq-airspace/src/error.rs @@ -1,5 +1,6 @@ /* * Copyright 2026 ResQ + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/resq-airspace/src/instructions/close_permit.rs b/resq-airspace/src/instructions/close_permit.rs index 146a4ec..6dc3e8b 100644 --- a/resq-airspace/src/instructions/close_permit.rs +++ b/resq-airspace/src/instructions/close_permit.rs @@ -1,5 +1,6 @@ /* * Copyright 2026 ResQ + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/resq-airspace/src/instructions/grant_permit.rs b/resq-airspace/src/instructions/grant_permit.rs index 1525f9c..75fd025 100644 --- a/resq-airspace/src/instructions/grant_permit.rs +++ b/resq-airspace/src/instructions/grant_permit.rs @@ -1,5 +1,6 @@ /* * Copyright 2026 ResQ + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/resq-airspace/src/instructions/initialize_property.rs b/resq-airspace/src/instructions/initialize_property.rs index 30249d6..ffa85b6 100644 --- a/resq-airspace/src/instructions/initialize_property.rs +++ b/resq-airspace/src/instructions/initialize_property.rs @@ -1,5 +1,6 @@ /* * Copyright 2026 ResQ + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/resq-airspace/src/instructions/mod.rs b/resq-airspace/src/instructions/mod.rs index 99ab358..a684d67 100644 --- a/resq-airspace/src/instructions/mod.rs +++ b/resq-airspace/src/instructions/mod.rs @@ -2,6 +2,7 @@ /* * Copyright 2026 ResQ + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/resq-airspace/src/instructions/record_crossing.rs b/resq-airspace/src/instructions/record_crossing.rs index eb0dd4d..5a9e3ed 100644 --- a/resq-airspace/src/instructions/record_crossing.rs +++ b/resq-airspace/src/instructions/record_crossing.rs @@ -1,5 +1,6 @@ /* * Copyright 2026 ResQ + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/resq-airspace/src/instructions/transfer_ownership.rs b/resq-airspace/src/instructions/transfer_ownership.rs index 8be33ee..e9a15cb 100644 --- a/resq-airspace/src/instructions/transfer_ownership.rs +++ b/resq-airspace/src/instructions/transfer_ownership.rs @@ -1,5 +1,6 @@ /* * Copyright 2026 ResQ + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/resq-airspace/src/instructions/update_policy.rs b/resq-airspace/src/instructions/update_policy.rs index ad3c2d0..c1254c3 100644 --- a/resq-airspace/src/instructions/update_policy.rs +++ b/resq-airspace/src/instructions/update_policy.rs @@ -1,5 +1,6 @@ /* * Copyright 2026 ResQ + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/resq-airspace/src/instructions/update_treasury.rs b/resq-airspace/src/instructions/update_treasury.rs index 9cf99f5..78ae8d0 100644 --- a/resq-airspace/src/instructions/update_treasury.rs +++ b/resq-airspace/src/instructions/update_treasury.rs @@ -1,5 +1,6 @@ /* * Copyright 2026 ResQ + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/resq-airspace/src/lib.rs b/resq-airspace/src/lib.rs index 56f11c1..c12f50a 100644 --- a/resq-airspace/src/lib.rs +++ b/resq-airspace/src/lib.rs @@ -8,6 +8,7 @@ /* * Copyright 2026 ResQ + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/resq-airspace/src/state/airspace_account.rs b/resq-airspace/src/state/airspace_account.rs index 8888da6..99f8705 100644 --- a/resq-airspace/src/state/airspace_account.rs +++ b/resq-airspace/src/state/airspace_account.rs @@ -1,5 +1,6 @@ /* * Copyright 2026 ResQ + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/resq-airspace/src/state/mod.rs b/resq-airspace/src/state/mod.rs index d552198..84e32ed 100644 --- a/resq-airspace/src/state/mod.rs +++ b/resq-airspace/src/state/mod.rs @@ -1,5 +1,6 @@ /* * Copyright 2026 ResQ + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/resq-airspace/src/state/permit.rs b/resq-airspace/src/state/permit.rs index ce227a7..e95f344 100644 --- a/resq-airspace/src/state/permit.rs +++ b/resq-airspace/src/state/permit.rs @@ -1,5 +1,6 @@ /* * Copyright 2026 ResQ + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/resq-airspace/tests/host_init_regression.rs b/resq-airspace/tests/host_init_regression.rs index b46ed77..de6ed23 100644 --- a/resq-airspace/tests/host_init_regression.rs +++ b/resq-airspace/tests/host_init_regression.rs @@ -1,5 +1,6 @@ /* * Copyright 2026 ResQ + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/resq-airspace/tests/integration.rs b/resq-airspace/tests/integration.rs index 4c44009..2b8408f 100644 --- a/resq-airspace/tests/integration.rs +++ b/resq-airspace/tests/integration.rs @@ -1,5 +1,6 @@ /* * Copyright 2026 ResQ + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/resq-delivery/src/error.rs b/resq-delivery/src/error.rs index a71def3..7db6b3c 100644 --- a/resq-delivery/src/error.rs +++ b/resq-delivery/src/error.rs @@ -1,5 +1,6 @@ /* * Copyright 2026 ResQ + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/resq-delivery/src/instructions/mod.rs b/resq-delivery/src/instructions/mod.rs index 73fab0f..a0bb8ff 100644 --- a/resq-delivery/src/instructions/mod.rs +++ b/resq-delivery/src/instructions/mod.rs @@ -1,5 +1,6 @@ /* * Copyright 2026 ResQ + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/resq-delivery/src/instructions/record_delivery.rs b/resq-delivery/src/instructions/record_delivery.rs index db908c6..2ed3c7a 100644 --- a/resq-delivery/src/instructions/record_delivery.rs +++ b/resq-delivery/src/instructions/record_delivery.rs @@ -1,5 +1,6 @@ /* * Copyright 2026 ResQ + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/resq-delivery/src/lib.rs b/resq-delivery/src/lib.rs index bad728f..317aef9 100644 --- a/resq-delivery/src/lib.rs +++ b/resq-delivery/src/lib.rs @@ -2,6 +2,7 @@ /* * Copyright 2026 ResQ + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/resq-delivery/src/state/delivery_record.rs b/resq-delivery/src/state/delivery_record.rs index 1f2a934..52ff352 100644 --- a/resq-delivery/src/state/delivery_record.rs +++ b/resq-delivery/src/state/delivery_record.rs @@ -1,5 +1,6 @@ /* * Copyright 2026 ResQ + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/resq-delivery/src/state/mod.rs b/resq-delivery/src/state/mod.rs index c54eafd..36b6a93 100644 --- a/resq-delivery/src/state/mod.rs +++ b/resq-delivery/src/state/mod.rs @@ -1,5 +1,6 @@ /* * Copyright 2026 ResQ + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/resq-delivery/tests/integration.rs b/resq-delivery/tests/integration.rs index 2b19149..8fe04ea 100644 --- a/resq-delivery/tests/integration.rs +++ b/resq-delivery/tests/integration.rs @@ -1,5 +1,6 @@ /* * Copyright 2026 ResQ + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/resq-gating/src/lib.rs b/resq-gating/src/lib.rs index 8975bcc..6e8e763 100644 --- a/resq-gating/src/lib.rs +++ b/resq-gating/src/lib.rs @@ -1,5 +1,6 @@ /* * Copyright 2026 ResQ + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/resq-gating/tests/integration.rs b/resq-gating/tests/integration.rs index b34e4eb..b589b82 100644 --- a/resq-gating/tests/integration.rs +++ b/resq-gating/tests/integration.rs @@ -1,5 +1,6 @@ /* * Copyright 2026 ResQ + * SPDX-License-Identifier: Apache-2.0 * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. diff --git a/vendor/solana-keypair/LICENSE b/vendor/solana-keypair/LICENSE new file mode 100644 index 0000000..261eeb9 --- /dev/null +++ b/vendor/solana-keypair/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright [yyyy] [name of copyright owner] + + 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. diff --git a/vendor/solana-program-test/LICENSE b/vendor/solana-program-test/LICENSE new file mode 100644 index 0000000..e83dc12 --- /dev/null +++ b/vendor/solana-program-test/LICENSE @@ -0,0 +1,51 @@ +Apache License +Version 2.0, January 2004 +http://www.apache.org/licenses/ + +TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + +1. Definitions. + +"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document. + +"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License. + +"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity. + +"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License. + +"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files. + +"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types. + +"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below). + +"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof. + +"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution." + +"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work. + +2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form. + +3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed. + +4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions: + +You must give any other recipients of the Work or Derivative Works a copy of this License; and +You must cause any modified files to carry prominent notices stating that You changed the files; and +You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and +If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. + +You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License. +5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions. + +6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file. + +7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License. + +8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages. + +9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability. + +END OF TERMS AND CONDITIONS